【发布时间】:2014-05-04 05:58:26
【问题描述】:
在我目前正在处理的代码中,我有一个名为 codon_dict 的字典,其中包含所有三个字母密码子的列表,这些密码子可以翻译成各自的氨基酸。我还有一个名为 rnaCodonTable 的表,它的值是单字母氨基酸,键是它对应的三字母密码子。我想要做的是得到一个每三个碱基对的 rna 碱基字符串,将其识别为我的字典中的密码子,并将其翻译成他们编码的单字母氨基酸。这是我到目前为止的设置:
for i in range (0, len(self.codon_dict), 3):
codon = self.codon_dict[i:i+3]
print (codon)
if codon in NucParams.codon_dict():
self.codon_dict[codon] +=1
#codons are then converted to amino acids.
temp_aa = NucParams.rnaCodonTable(codon)
if temp_aa in self.aa_dict:
self.aa_dict[temp_aa] += 1
我收到此错误消息:codon = self.codon_dict[i:i+3] TypeError: unhashable type: 'slice'
我不确定我在这里做错了什么。有人可以向我解释这个错误吗?
rnaCodonTable 如下所示:
rnaCodonTable = {
# RNA codon table
# U
'UUU': 'F', 'UCU': 'S', 'UAU': 'Y', 'UGU': 'C', # UxU
'UUC': 'F', 'UCC': 'S', 'UAC': 'Y', 'UGC': 'C', # UxC
'UUA': 'L', 'UCA': 'S', 'UAA': '-', 'UGA': '-', # UxA
'UUG': 'L', 'UCG': 'S', 'UAG': '-', 'UGG': 'W', # UxG
# C
'CUU': 'L', 'CCU': 'P', 'CAU': 'H', 'CGU': 'R', # CxU
'CUC': 'L', 'CCC': 'P', 'CAC': 'H', 'CGC': 'R', # CxC
'CUA': 'L', 'CCA': 'P', 'CAA': 'Q', 'CGA': 'R', # CxA
'CUG': 'L', 'CCG': 'P', 'CAG': 'Q', 'CGG': 'R', # CxG
# A
'AUU': 'I', 'ACU': 'T', 'AAU': 'N', 'AGU': 'S', # AxU
'AUC': 'I', 'ACC': 'T', 'AAC': 'N', 'AGC': 'S', # AxC
'AUA': 'I', 'ACA': 'T', 'AAA': 'K', 'AGA': 'R', # AxA
'AUG': 'M', 'ACG': 'T', 'AAG': 'K', 'AGG': 'R', # AxG
# G
'GUU': 'V', 'GCU': 'A', 'GAU': 'D', 'GGU': 'G', # GxU
'GUC': 'V', 'GCC': 'A', 'GAC': 'D', 'GGC': 'G', # GxC
'GUA': 'V', 'GCA': 'A', 'GAA': 'E', 'GGA': 'G', # GxA
'GUG': 'V', 'GCG': 'A', 'GAG': 'E', 'GGG': 'G' # GxG
}
【问题讨论】:
-
您能发布
self.codon_dict包含的内容吗? -
codon_dict = {} for aa in self.rnaCodonTable.keys(): codon_dict[aa] = 0 self.codon_dict = codon_dict
-
而rnaCodonTable中的键是三个字母的密码子
-
如果
codon_dict包含与rnaCodonTable相同的键,那么它的意义何在? -
我想稍后创建codon_dict,当我想找到字符串的密码子组成时,我只需要返回codon_dict。
标签: python