2016-05-18 2 views
1

У меня возникли трудности с загрузкой последовательности fasta для множественных номеров доступа в текстовом файле с использованием скрипта python. Я могу сделать это КИ для одного номера например:Как я могу возвращать соответствующие последовательности белка fasta из ncbi из нескольких номеров доступа в python?

import sys 
from Bio import Entrez 
Entrez.email = "[email protected]" 
handle = Entrez.efetch(db="protein", id="EAS03220", rettype="fasta") 
print(handle.read()) 

Но когда я пытаюсь дать ему файл в виде списка (см ниже), то я получаю ошибки.

import sys 
from Bio import Entrez 
Entrez.email = "[email protected]"  

accessions = [] 
for line in open(sys.argv[1],"r"): 
    line = line.strip() 
    accessions.append(line) 

for num in accessions: 
    handle = Entrez.efetch(db="protein", id="num", rettype="fasta") 
    print(handle.read()) 

Вот и пример того, как мой входной файл выглядит:

EAS06781 
EAS07087 
EAS07113 
EAS07200 
EAS07226 
EAS07230 

Я уверен, что решение легко, но я читал форумы, NCBI справки-страницы и питон для начинающих книг часов и никуда не денутся! Заранее спасибо.

ответ

2

Вы передаете num как string, а не как переменную. Попробуйте удалить кавычки, и он должен работать.

handle = Entrez.efetch(db="protein", id=num, rettype="fasta") 
+0

Спасибо! Знал, что это будет простая ошибка. – wl284

Смежные вопросы