我对Python非常陌生,我正在尝试获取DNA序列的RNA转录。虽然我能够为一个DNA序列做这件事,但我正试图找到一种方法来做一个DNA序列列表。我希望你能给我一些指导。
# Given this DNA sequence, get the RNA sequence:
dna = 'ACCTGACT'
# Defining the RNA transcription formula
def to_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 transcript= UGGACUGA我一直想做的是,从DNA序列列表中得到一个RNA转录的列表。我已经尝试过修改上面的代码,但是我无法实现任何解决方案。我想知道你能不能帮我解决这个问题。
投入将是:
dna1= ['ACCTGACT','AATTGTCT']预期成果:
rna1 = ['UGGACUGA','UUAACAGA'] 发布于 2021-03-27 05:19:09
您可以使用List Comprehension
In [623]: def to_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
...:
In [626]: rna1 = [to_rna(i) for i in dna1]
In [627]: rna1
Out[627]: ['UGGACUGA', 'UUAACAGA']上面的内容相当于一个for循环:
In [630]: rna1 = []
In [631]: for i in dna1:
...: rna1.append(to_rna(i))
...:
In [632]: rna1
Out[632]: ['UGGACUGA', 'UUAACAGA']发布于 2021-03-27 06:08:09
mapping = {'G':'C', 'C':'G', 'T':'A', 'A':'U'}
dna1= ['ACCTGACT','AATTGTCT']
rna_word_list = [
"".join((mapping[dna_char] for dna_char in dna_word))
for dna_word in dna1
]
print(rna_word_list)['UGGACUGA', 'UUAACAGA']发布于 2021-03-27 07:01:18
这是映射函数的一个主要例子。,map‘接受函数f和列表l,并将f应用于l的每个元素。
dnas = ['ACCTGACT' , 'ATTA']
mapping = {'G':'C', 'C':'G', 'T':'A', 'A':'U'}
def to_rna(dna):
return ''.join(map(lambda x: mapping[x], dna))
rnas = list(map(to_rna, dnas))
print(rnas)https://stackoverflow.com/questions/66828236
复制相似问题