我正在尝试使用BioPython从fasta文件中提取基因位置,但是功能.location不起作用。我想避免使用正则表达式,因为此函数必须使用不同的文件,并且所有文件的头文件都略有不同。
标题看起来像: > X dna:染色体染色体:GRCh38:X:111410060:111411807:-1
我希望输出为: 开始= 111410060 结束= 111411807
答案 0 :(得分:1)
如果不同Fasta文件的标题始终以' ... chr:start:end:strand '结尾,并且不同部分之间用':'分隔您可以尝试用.split(":")
分隔.description并选择结果列表的倒数第二和倒数第二的位置。
下面的示例标题对我有用:
from Bio import SeqIO
path = 'fasta_test.fasta'
records = SeqIO.parse(open(path), 'fasta')
record = next(records)
parts = record.description.split(":")
print('start =', parts[-3], 'end =', parts[-2])