我需要使用一个字符串来将RNA转换为蛋白质,并给出这样一个kay值对的字典。开始制造蛋白质需要在字符串中检测“AUG”,结束时需要检测“UAA”、“UAG”和“UGA”以停止该过程
例如,在访问名为codon2amino的字典中的键、值对时,translate(“AUGUAA”)将给出“M”,translate(“agagugagecccugagg”)将给出“MP”
def get_mapping(csvfilename):
mapping = read_csv(csvfilename)
return dict(map(lambda x : (x[0],x[3]),mapping))
这是我尝试过的,但我被困在从这里走到哪里:
def translate(rna_strand):
codon2amino = get_mapping("codon_mapping.csv")
start_codon = "AUG"
start_index = rna_strand.find(start_codon)
stop_codons = ["UAA", "UAG", "UGA"]
acid_list=[]
if start_codon and "UAA" not in rna_strand:
return None
elif start_codon and "UAG" not in rna_strand:
return None
elif start_codon and "UGA" not in rna_strand:
return None
else:
codons = [rna_strand[i:i+3] for i in range(start_index+3, len(rna_strand), 3)]
for codon in codons:
if codon in stop_codons:
break
acid_list.append(codon2amino[codon])
amino_acid = ''.join(amino_list) + "_"
return amino_acid
假设每个密码子长度为3个字符,您可以使用以下方法从
rna_strand
检索每个密码子:然后,您可以使用映射将每个密码子映射到其氨基:
最后,你可以将它们结合形成氨基酸:
在一行中,它看起来像:
但是正如@Yatin所提到的,关于输入/输出以及映射
codon2amino
的更多细节编辑: 您可以首先使用以下命令搜索起始密码子:
然后,将其余部分分成密码子:
然后你可以迭代它们,直到找到一个末端密码子:
您可以使用
textwrap
将您的RNA代码划分为密码子列表:现在您可以轻松地迭代它们
相关问题 更多 >
编程相关推荐