Python 使用随机模块管理DNA突变
我想输入一个DNA序列,然后制作某种生成器,生成具有特定突变频率的序列。例如,假设我有DNA链“ATGTCGTCACACCGCAGATCCGTTTGAC”,我想创建一个T->频率为5%的突变。我将如何着手创建这个?我听说我可以使用random模块,但我不是一个有经验的程序员,对于从哪里开始有点困惑。我能做些什么?谢谢 这很简单:遍历字符串,无论何时发现可能的突变点,如果随机数表示: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):
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感谢大家的帮助有人能创造出一种随机变异频率固定的代码吗?正如凯文最初评论的那样?