Как напечатать первые несколько записей, используя SeqIO из Biopython - PullRequest
1 голос
/ 06 марта 2019

У меня есть файл 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))

1 Ответ

0 голосов
/ 06 марта 2019

Есть множество способов сделать это. Наиболее похожим на вашу текущую структуру будет добавление break, когда индекс достигает 19 (это 20-е число, поскольку отсчет начинается с 0):

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

Вместо печати вы можете вставить описания и длины в список, массив или другую структуру данных по вашему выбору, если вы хотите сохранить таблицу.

...