如何解决KeyError:在相关代码中找不到“ mtD”时出现“ mtD”
我正在使用一个简单的函数将DNA序列转换为氨基酸序列。在较高的级别上,代码看起来还不错,但是每当我运行程序时,我都会收到错误KeyError: 'mtD'
,该错误的来源显然在第26行(if table[seq[i:i+3]] == "_" :
)。我的程序中唯一提到的是“ mtD”,这是我将数据集简单地打印到控制台时的问题,这使问题更加令人困惑。我的代码如下所示。
#Creating the protein sequence column for the data
Protein_Sequence = []
#dna to protein sequence function
def translate11(seq):
table = {"TTT" : "F","CTT" : "L","ATT" : "I","GTT" : "V","TTC" : "F","CTC" : "L","ATC" : "I","GTC" : "V","TTA" : "L","CTA" : "L","ATA" : "I","GTA" : "V","TTG" : "L","CTG" : "L","ATG" : "M","GTG" : "V","TCT" : "S","CCT" : "P","ACT" : "T","GCT" : "A","TCC" : "S","CCC" : "P","ACC" : "T","GCC" : "A","TCA" : "S","CCA" : "P","ACA" : "T","GCA" : "A","TCG" : "S","CCG" : "P","ACG" : "T","GCG" : "A","TAT" : "Y","CAT" : "H","AAT" : "N","GAT" : "D","TAC" : "Y","CAC" : "H","AAC" : "N","GAC" : "D","TAA" : "_","CAA" : "Q","AAA" : "K","GAA" : "E","TAG" : "_","CAG" : "Q","AAG" : "K","GAG" : "E","TGT" : "C","CGT" : "R","AGT" : "S","GGT" : "G","TGC" : "C","CGC" : "R","AGC" : "S","GGC" : "G","TGA" : "_","CGA" : "R","AGA" : "R","GGA" : "G","TGG" : "W","CGG" : "R","AGG" : "R","GGG" : "G"
}
pro_sequence =" "
for i in range(0,len(seq)-(3+len(seq)%3),3):
if table[seq[i:i+3]] == "_" :
break
pro_sequence += table[seq[i:i+3]]
return pro_sequence
newthang = df.mtDNA_Sequence
for thang in newthang:
x = translate11(thang)
Protein_Sequence.append(x)
解决方法
您的功能对我有用,我尝试了一个短核苷酸序列并给出了适当的翻译
for循环以1个氨基酸结尾,因此您可以删除3+:
ngOnInit() {
this.serv1.getdata1()
this.serv2.getdata2()
zip(this.serv1.getData1Listener(),this.serv2.getData2Listener())
.pipe(first())
.subscribe(([data1,data2]) => {
this.data1 = data1;
this.data2 = data2;
functionY(data1,data2)
})
}
当您声明pro_sequence时,以空字符串for i in range(0,len(seq)-(len(seq)%3),3):
而不是空格字符""
因此,在进行了这些微小的更改之后,我尝试了以下操作:
" "
那是正确的翻译
因此,您要提供功能的输入之一(来自sequence = "tactgtggctactcagctgtgcgcatggcccgcctgctgtcaccaggggcgaggctcatcaccatcgagatcaaccccgactgtgccgccatcacccagcggatggtggatttcgctggcatgaaggacaag"
print translate11(sequence.upper())
# YCGYSAVRMARLLSPGARLITIEINPDCAAITQRMVDFAGMKDK
)必须以“ mtD”开头或包含字母“ mtD”,而不仅仅是一个核苷酸串
尝试添加另一个条件,如果字符不是可识别的密码子,则该条件会超出for循环
df.mtDNA_Sequence
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。