使用随机模块管理DNA突变



我想输入一个DNA序列,并使某种生成器产生具有一定突变频率的序列。例如,假设我有DNA链"ATGTCGTCACACACCGCAGATCCGTGTTTGAC",并且我想创建T->频率为5%的突变。我该如何创造它呢?我听说我可以使用随机模块,但我不是一个有经验的程序员,有点困惑,从哪里开始。你知道我该怎么做吗?谢谢。

这很简单:遍历字符串,每当你找到一个可能的突变点时,如果随机数说:

import random
def mutate(string, mutation, threshold):
    dna = list(string)
    for index, char in enumerate(dna):
        if char in mutation:
            if random.random() < threshold:
                dna[index] = mutation[char]
    return ''.join(dna)

如果您想要更花哨,您可以使用列表推导式:

import random
def mutate(string, mutation, threshold):
    return ''.join([mutation[char] if random.random() < threshold 
                                       and char in mutation else char
                                       for char in string])

最新更新