[英]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.