相关疑难解决方法(0)

使用生成器解析fasta文件(python)

我试图解析一个大的fasta文件,我遇到了内存错误.一些改进数据处理的建议将不胜感激.目前程序正确打印出名称,但部分通过文件我得到一个MemoryError

这是发电机

def readFastaEntry( fp ):
    name = ""
    seq = ""
    for line in fp:
        if line.startswith( ">" ):
            tmp = []
            tmp.append( name )
            tmp.append( seq )
            name = line
            seq = ""
            yield tmp
        else:
            seq = seq.join( line )
Run Code Online (Sandbox Code Playgroud)

这部分工作后,这里是调用者存根

fp = open( sys.argv[1], 'r' )

for seq in readFastaEntry( fp ) :
    print seq[0]
Run Code Online (Sandbox Code Playgroud)

对于那些与fasta格式不相似的人来说,这是一个例子

>1 (PB2)
AATATATTCAATATGGAGAGAATAAAAGAACTAAGAGATCTAATGTCACAGTCTCGCACTCGCGAGATAC
TCACCAAAACCACTGTGGACCACATGGCCATAATCAAAAAGTACACATCAGGAAGGCAAGAGAAGAACCC
TGCACTCAGGATGAAGTGGATGATG
>2 (PB1)
AACCATTTGAATGGATGTCAATCCGACTTTACTTTTCTTGAAAGTTCCAGCGCAAAATGCCATAAGCACC
ACATTTCCCTATACTGGAGACCCTCC
Run Code Online (Sandbox Code Playgroud)

每个条目以">"开头,表示名称等,然后接下来的N行是数据.除了在开头有">"的下一行之外,没有定义的数据结尾.

python parsing file fasta

10
推荐指数
2
解决办法
1万
查看次数

标签 统计

fasta ×1

file ×1

parsing ×1

python ×1