У меня есть файл с номерами GI, и я хочу получить FASTA
последовательности от ncbi.
from Bio import Entrez
import time
Entrez.email ="[email protected]"
f = open("C:\\bioinformatics\\gilist.txt")
for line in iter(f):
handle = Entrez.efetch(db="nucleotide", id=line, retmode="xml")
records = Entrez.read(handle)
print ">GI "+line.rstrip()+" "+records[0]["GBSeq_primary-accession"]+" "+records[0]["GBSeq_definition"]+"\n"+records[0]["GBSeq_sequence"]
time.sleep(1) # to make sure not many requests go per second to ncbi
f.close()
Этот сценарий работает нормально, но я внезапно получаю это сообщение об ошибке после нескольких последовательностей.
Traceback (most recent call last):
File "C:/Users/Ankur/PycharmProjects/ncbiseq/getncbiSeq.py", line 7, in <module>
handle = Entrez.efetch(db="nucleotide", id=line, retmode="xml")
File "C:\Python27\lib\site-packages\Bio\Entrez\__init__.py", line 139, in efetch
return _open(cgi, variables)
File "C:\Python27\lib\site-packages\Bio\Entrez\__init__.py", line 455, in _open
raise exception
urllib2.HTTPError: HTTP Error 500: Internal Server Error
Конечно, я могу использовать http://www.ncbi.nlm.nih.gov/sites/batchentrez
, но я пытаюсь создать конвейер и хотел бы что-то автоматизированное.
Как я могу помешать ncbi «выгнать меня»