读每条蛋白序列的Description,提取每条蛋白序列的位置信息,生成新的位置文件。 比如第一条蛋白的id和Description部分, >AT1G31380.1 | Symbols: no symbol available | no full name available | chr1:11240451-11241099 REVERSE LENGTH=175 将11240451和11241099提取出来,作为这条蛋白的起始和终止位置。 生成如下形式的位置文件,名为At.gff.txt,其中4列数据均用Tab键分开。
时间: 2024-02-18 19:02:45 浏览: 127
可以使用Python的正则表达式来提取位置信息并将其写入GFF文件。以下是一个示例代码,可以读入包含蛋白序列信息的文件,提取位置信息并将其写入GFF文件中。
```python
import re
# 输入文件名
fasta_file = "protein.fasta"
# 输出文件名
gff_file = "At.gff.txt"
# 新建GFF文件并写入表头
with open(gff_file, "w") as f:
f.write("##gff-version 3\n")
# 读入fasta文件
with open(fasta_file, "r") as f:
seq = ""
for line in f:
if line.startswith(">"):
# 提取位置信息
m = re.search(r"(\d+)-(\d+)", line)
if m:
start = m.group(1)
end = m.group(2)
seq_id = line[1:].strip().split()[0]
# 将位置信息写入GFF文件中
with open(gff_file, "a") as gff:
gff.write(f"{seq_id}\t.\t.\t{start}\t{end}\t.\t-\t.\t\n")
else:
seq += line.strip()
```
这段代码会读入一个名为 "protein.fasta" 的fasta文件,提取每条蛋白序列的位置信息,并将其写入名为 "At.gff.txt" 的GFF文件中。请将代码中的文件名替换为你自己的文件名。
阅读全文