如何使用Biopython中的SeqIO打印前几条记录

问题描述 投票:1回答:1

我有一个有几百条记录的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))
python bioinformatics biopython enumerate fasta
1个回答
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))

如果要存储表,可以将描述和长度插入到所选的列表,数组或其他数据结构中,而不是打印。

© www.soinside.com 2019 - 2024. All rights reserved.