从fasta读取头中提取一个数字

时间:2014-10-21 10:07:48

标签: python bioinformatics fasta

我有兴趣提取数字" 4677450"从下面的fasta文件中,把它变成一个变量。我的代码有效,但看起来很难看。我想学习更有效的方法来做到这一点。有人可以教我怎么做?

>gi|47118301|dbj|BA000007.2| (4677450 - 4678851) 
AAACATCTCCCTGAACCGTTCCGCATTCGTGTTATTGAGCCAGTAAAACGTACCACTCGCGCTTATCGTG AAGAGGCAATTATTAAATCCGGTATGAACCCGTTCCTGCTGGATAGCGAAGATG

1 个答案:

答案 0 :(得分:2)

使用BioPython获取读取的描述,然后使用正则表达式进行解析。

from Bio import SeqIO
import re
with open(fasta_path, 'rb') as fin:
    s = SeqIO.parse(fin, 'fasta')
    for r in s:
        num_you_want = int(re.findall('\((\d+) - \d+\)', r.description)[0])