[英]How to transcribe a list of DNA sequences to RNA in Python
我正在尝试返回从 DNA 序列转录的 RNA 序列列表。 理想情况下,它应该如下所示:
DNA_seq = ['AGGTC','TTGACT','ATGGCA']
RNA_seq = ['UCCAG','AACUGA','UACCGU']
根据我的理解,字典应该有助于存储每个核苷酸及其相应碱基对的键值对。 这是我到目前为止所拥有的:
def RNA(DNA_strand):
mapping = {'G':'C', 'C':'G', 'T':'A', 'A':'U'}
rna_strand = ''
for char in DNA_strand:
rna_strand += mapping[char]
return rna_strand
RNA_seq = []
for x in DNA_seq:
RNA_seq.append(RNA(x))
我有点拼凑起来,但我似乎仍然不够有效。 任何帮助将非常感激!
您可以利用str.maketrans
创建映射,然后使用str.translate
执行替换:
mapping = str.maketrans("GCTA", "CGAU")
for dna in "AGGTC", "TTGACT", "ATGGCA":
print(dna.translate(mapping))
输出:
UCCAG
AACUGA
UACCGU
>>>
str.maketrans
返回有序键值对的字典。
映射绝对是这里的正确方法。 但是,您可以在一行中完成所有这些任务,而无需进行所有循环:
RNA_seq = ["".join([mapping[char] for char in DNA_strand]) for DNA_strand in DNA_seq]
此外,这将显着提高效率,因为:
str
连接;list.append()
调用的开销。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.