我有一个 FASTA 文件,可以很容易地被SeqIO.parse
.
我对提取序列 ID 和序列长度感兴趣。我用这些线来做,但我觉得它太重了(两次迭代,转换等)
from Bio import SeqIO
import pandas as pd
# parse sequence fasta file
identifiers = [seq_record.id for seq_record in SeqIO.parse("sequence.fasta",
"fasta")]
lengths = [len(seq_record.seq) for seq_record in SeqIO.parse("sequence.fasta",
"fasta")]
#converting lists to pandas Series
s1 = Series(identifiers, name='ID')
s2 = Series(lengths, name='length')
#Gathering Series into a pandas DataFrame and rename index as ID column
Qfasta = DataFrame(dict(ID=s1, length=s2)).set_index(['ID'])
我只需要一次迭代就可以做到,但我得到了一个 dict :
records = SeqIO.parse(fastaFile, 'fasta')
我不知何故无法DataFrame.from_dict
上班...
我的目标是迭代 FASTA 文件,并DataFrame
通过每次迭代将 id 和序列长度放入 a 中。
这是一个简短的 FASTA 文件,供那些想要提供帮助的人使用。