У меня есть список идентификаторов refseq (keys_list), которые я использую, чтобы вывести записи последовательности с помощью BioPython Entrez. Я хотел бы получить доступ только к последовательности из записей fasta, но я не хочу писать записи в файл, чтобы сделать это.Элемент последовательности доступа из записи fasta с использованием Biopython Entrez
Я пытаюсь код foloowing
for key in key_list:
Entrez.email = "myemailaddress"
handle = Entrez.efetch(db='nuccore', id=key, rettype='fasta')
record = SeqIO.parse(handle, "fasta")
for seq_record in SeqIO.parse(record, "fasta"):
print seq_record.seq
Когда я запускаю это я получаю сообщение об ошибке:
File "/usr/lib64/python2.6/site-packages/Bio/SeqIO/__init__.py", line 538, in parse
yield r
File "/usr/lib64/python2.6/contextlib.py", line 34, in __exit__
self.gen.throw(type, value, traceback)
File "/usr/lib64/python2.6/site-packages/Bio/File.py", line 59, in as_handle
yield handleish
File "/usr/lib64/python2.6/site-packages/Bio/SeqIO/__init__.py", line 537, in parse
for r in i:
File "/usr/lib64/python2.6/site-packages/Bio/SeqIO/FastaIO.py", line 37, in FastaIterator
line = handle.readline()
AttributeError: 'generator' object has no attribute 'readline'
Если я вернуть всю запись с handle.read()
, я могу получить все fasta, но на этом этапе я просто хотел бы получить доступ к нуклеотидной последовательности.
Может ли кто-нибудь помочь мне с этой проблемой?
Большое спасибо заранее.