Мой код выглядит следующим образом:Entrez и SeqIO «никаких записей не найдено в ручке»
import re
from Bio import SeqIO
from Bio import Entrez
Entrez.email = "[email protected]" # My e-mail address
handle1 = Entrez.efetch(db="pubmed", id=pmid_list_2010, rettype="gb", retmode="text")
data1 = handle1.read()
handle1.close()
handle2 = Entrez.efetch(db="pubmed", id=pmid_list_2011, rettype="gb", retmode="text")
data2 = handle2.read()
handle2.close()
handle3 = Entrez.efetch(db="pubmed", id=pmid_list_2012, rettype="gb", retmode="text")
data3 = handle3.read()
handle3.close()
handle4 = Entrez.efetch(db="pubmed", id=pmid_list_2013, rettype="gb", retmode="text")
data4 = handle4.read()
handle4.close()
handle5 = Entrez.efetch(db="pubmed", id=pmid_list_2014, rettype="gb", retmode="text")
data5 = handle5.read()
handle5.close()
handle6 = Entrez.efetch(db="pubmed", id=pmid_list_2015, rettype="gb", retmode="text")
data6 = handle6.read()
handle6.close()
out_handle = open("test2.gb", "w")
out_handle.write(data1)
out_handle.write(data2)
out_handle.write(data3)
out_handle.write(data4)
out_handle.write(data5)
out_handle.write(data6)
out_handle.close()
in_handle = open("test2.gb", "r")
record = SeqIO.read(in_handle,"genbank")
in_handle.close()
Предпоследняя последней строки дает мне эту ошибку:
ValueError: No records found in handle
Мой файл выглядит нормально - это не пусто или ничего. Есть много записей и, насколько я могу судить, это в правильном формате. Что я делаю неправильно?
Я заметил, что это работает с другими базами данных - например, «нуклеотид». Это проблема с Pubmed? Это требует другого формата? Благодарю.
Если есть содержание в файле, но вы получаете эту ошибку, это. предполагает, что он * не *, фактически, в правильном формате. Можете ли вы добавить несколько строк 'test2.gb'? – SiHa
Что такое ** правильный ** формат? Можете ли вы восстановить последовательности из PubMed? – Markus