Biopython翻译错误:TypeError:';发电机&x27;对象没有属性'__获取项目';

Biopython翻译错误:TypeError:';发电机&x27;对象没有属性'__获取项目';,python,biopython,Python,Biopython,我的代码有问题,这让我很沮丧 #!usr/bin/python import os,sys import Bio from Bio import SeqIO from Bio.Seq import Seq from Bio.SeqRecord import SeqRecord from Bio.Alphabet import IUPAC fastaname = sys.argv[1] in_put = open(fastaname,"rU") out_put = open(fastaname[:

我的代码有问题,这让我很沮丧

#!usr/bin/python
import os,sys
import Bio
from Bio import SeqIO
from Bio.Seq import Seq
from Bio.SeqRecord import SeqRecord
from Bio.Alphabet import IUPAC
fastaname = sys.argv[1]
in_put = open(fastaname,"rU")
out_put = open(fastaname[:-6] + "pro.fa","w")
m_record = SeqIO.parse(in_put, "fasta")
x = str(m_record)
start = x.find("ATG")
n = m_record[start:]
pro_records = (rec.translate(id = rec.id, to_stop = True) for rec in n)
SeqIO.write(pro_records, out_put, "fasta")
in_put.close()
out_put.close()
使用

$ python script test.fasta
Traceback (most recent call last):
File "translation.py", line 14, in <module>
n = m_record[start:]
TypeError: 'generator' object has no attribute '__getitem__'

与错误消息状态一样,
m_record
是一个生成器

如果你想把它当作一个列表来使用,你应该先从中创建一个列表

m_record = list(SeqIO.parse(in_put, "fasta"))

我用了你提到的。不过还是一样的错误,谢谢。但是当我运行这个脚本时,结果文件是空的。有什么建议吗?@HailongYang您在搜索startindex时出错
m_记录
SeqRecord
的列表。使用
str
查找子序列的开头,在索引中生成big,因此
n
为空;以及
pro_记录
。您需要找到另一种方法来找到您想要的子序列。
m_record = list(SeqIO.parse(in_put, "fasta"))