Как скачать _full_ RefSeq запись с помощью Efetch? - PullRequest
1 голос
/ 20 марта 2019

У меня проблема с загрузкой полной записи из Nucleotide db. Я использую:

from Bio import Entrez
from Bio import SeqIO

with Entrez.efetch(db="nuccore", rettype="gb", retmode="full", id="NC_007384") as handle:
    seq_record = SeqIO.read(handle, "gb") 

print(seq_record)

, который дает мне короткую версию файла gb, поэтому команда:

seq_record.features

не возвращает функции.

Для сравнения, нет проблем, когда я делаю то же самое с GenBank ID:

with Entrez.efetch(db="nuccore", rettype="gb", retmode="full", id="CP014768.1") as handle:
    seq_record = SeqIO.read(handle, "gb") 

print(seq_record)

После этого я могу извлечь каждую аннотированную функцию из списка seq_record.features.

Есть ли способ загрузить полные записи RefSeq с помощью Efetch?

1 Ответ

1 голос
/ 28 марта 2019

Вам нужно либо использовать style="withparts", либо изменить rettype на gbwithparts, чтобы получить все функции. Эта таблица содержит некоторую информацию.

>>> from Bio import Entrez
>>> from Bio import SeqIO
>>> Entrez.email = 'someone@email.com'
>>> with Entrez.efetch(db="nuccore", rettype="gb", retmode="full", id="NC_007384") as handle:
...     seq_record = SeqIO.read(handle, "gb") 
... 
>>> len(seq_record.features)
1
>>> with Entrez.efetch(db="nuccore", rettype="gbwithparts", retmode="full", id="NC_007384") as handle:
...     seq_record = SeqIO.read(handle, "gb") 
... 
>>> len(seq_record.features)
10616
>>> with Entrez.efetch(db="nuccore", rettype="gb", style="withparts", retmode="full", id="NC_007384") as handle:
...     seq_record = SeqIO.read(handle, "gb")
... 
>>> len(seq_record.features)
10616
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...