Python RNA转录本中的Begginer用于DNA序列列表

2024-09-29 21:25:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我是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'] 

Tags: the列表序列mappingdnarnasequencechar
3条回答

这是地图功能的主要示例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)

您可以使用^{}

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']

上述内容相当于^{}循环:

In [630]: rna1 = []

In [631]: for i in dna1:
     ...:     rna1.append(to_rna(i))
     ...: 

In [632]: rna1
Out[632]: ['UGGACUGA', 'UUAACAGA']
 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']

相关问题 更多 >

    热门问题