Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用随机模块管理DNA突变_Python_Python 3.x_Bioinformatics - Fatal编程技术网

Python 使用随机模块管理DNA突变

Python 使用随机模块管理DNA突变,python,python-3.x,bioinformatics,Python,Python 3.x,Bioinformatics,我想输入一个DNA序列,然后制作某种生成器,生成具有特定突变频率的序列。例如,假设我有DNA链“ATGTCGTCACACCGCAGATCCGTTTGAC”,我想创建一个T->频率为5%的突变。我将如何着手创建这个?我听说我可以使用random模块,但我不是一个有经验的程序员,对于从哪里开始有点困惑。我能做些什么?谢谢 这很简单:遍历字符串,无论何时发现可能的突变点,如果随机数表示: import random def mutate(string, mutation, threshold):

我想输入一个DNA序列,然后制作某种生成器,生成具有特定突变频率的序列。例如,假设我有DNA链“ATGTCGTCACACCGCAGATCCGTTTGAC”,我想创建一个T->频率为5%的突变。我将如何着手创建这个?我听说我可以使用random模块,但我不是一个有经验的程序员,对于从哪里开始有点困惑。我能做些什么?谢谢

这很简单:遍历字符串,无论何时发现可能的突变点,如果随机数表示:

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)
随机导入
def突变(字符串、突变、阈值):
dna=列表(字符串)
对于索引,枚举中的字符(dna):
如果出现突变:
如果为random.random()<阈值:
dna[索引]=突变[字符]
返回“”。加入(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])
随机导入
def突变(字符串、突变、阈值):
返回“”。加入([mutation[char]if random.random()<阈值
和其他字符中的字符
对于字符串中的字符])

提示:
如果是随机的。随机()<0.05:
将在5%的时间内为真。如果T只变异为a,这是一个很好的解决方案。如果T变异为5%的时间,变异为G 15%的时间,变异为C 23%的时间,可能需要更复杂的东西。是的,这将更复杂。幸运的是,由于DNA的工作原理,每对DNA只可能有一个突变。因此,需要做的是,让突变保持其阈值,而不是通过一个阈值。同学们,一定要爱他们!“一种可能的突变”是指
T->A
A->T
T
永远不会变异到
C
G
:D感谢大家的帮助有人能创造出一种随机变异频率固定的代码吗?正如凯文最初评论的那样?