У меня проблема с моим кодом.Я пытаюсь перебрать список генов файла genbank с помощью BioPython.Вот как это выглядит:
class genBank:
gbProtId = str()
gbStart = int()
gbStop = int()
gbStrand = int()
genBankEntries = list()
for seq_record in SeqIO.parse(genBankFile, "genbank"):
for seq_feature in seq_record.features:
genBankEntry = genBank
if seq_feature.type == "CDS":
genBankEntry.gbProtId = seq_feature.qualifiers['protein_id']
genBankEntry.gbStart = seq_feature.location.start # prodigal GFF3 output is 1 based indexing
genBankEntry.gbStop = seq_feature.location.end
genBankEntry.gbStrand = seq_feature.strand
genBankEntries.append(genBankEntry)
Похоже, что это должно работать, но когда я его запускаю, результирующая структура genBankEntries
представляет собой просто огромный стек размером с число генов в файле genbankно только с последним значением в seq_record.features в качестве каждого элемента списка:
00 = {type} <class '__main__.genBank'>
gbProtId = {list} ['BAA31840.1']
gbStart = {ExactPosition} 90649
gbStop = {ExactPosition} 91648
gbStrand = {int} 1
...
82 = {type} <class '__main__.genBank'>
gbProtId = {list} ['BAA31840.1']
gbStart = {ExactPosition} 90649
gbStop = {ExactPosition} 91648
gbStrand = {int} 1
Это особенно запутанно, потому что оба цикла for работают правильно:
for seq_record in SeqIO.parse(genBankFile, "genbank"):
for seq_feature in seq_record.features:
print(seq_feature)
Почему это