我有一个fasta文件,其中包含数百条记录,但是我试图返回仅包含前20条记录(记录描述,AA长度和名称)的表。
我的代码无法正常工作,我想知道如何仅返回前20条记录-最好以表格格式返回。
这是我的python代码:
#!/usr/local/bin/python3
import cgi
import re
form = cgi.FieldStorage()
from Bio import SeqIO
for index, record in enumerate(SeqIO.parse("e_coli_k12_dh10b.faa", "fasta")): print(record.description, len(record.seq))
答案 0 :(得分:0)
有很多方法可以做到这一点。与您当前的结构最相似的是,当索引达到19(从计数开始于0开始的第20个数字)时,添加一个break
:
from Bio import SeqIO
for index, record in enumerate(SeqIO.parse("e_coli_k12_dh10b.faa", "fasta")):
print(record.description, len(record.seq))
if index == 19:
break
但是,我更喜欢使用样式方式是使用itertools.islice
:
from itertools import islice
from Bio import SeqIO
records = SeqIO.parse("e_coli_k12_dh10b.faa", "fasta")
for record in islice(records, 20):
print(record.description, len(record.seq))
如果要存储表,可以将描述和长度插入到所选择的列表,数组或其他数据结构中,而不用进行打印。