【问题标题】:How to print the first few records using SeqIO from Biopython如何使用 Biopython 中的 SeqIO 打印前几条记录
【发布时间】:2019-03-06 00:36:44
【问题描述】:

我有一个包含数百条记录的 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】:

    有很多方法可以做到这一点。与您当前的结构最相似的是在索引达到 19 时添加 break(即自 0 开始计数以来的第 20 个数字):

    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))
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-01
      • 1970-01-01
      相关资源
      最近更新 更多