我想输入一个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])