使用python制作随机的人类基因组

时间:2018-04-03 01:12:28

标签: python genome

我需要帮助制作一个程序,创建一个随机排序的基因组文本文件,使用字母'A''C''T'和'G'。 最终目标是产生大约100万个随机测序的基因组,然后使用另一个程序搜索导致特定疾病的已知模式。然后,我将从我的python代码中收集统计信息,并将它们与现实代码进行比较。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,生成一个随机的人类基因组将非常简单。以下将产生10个碱基的随机基因组(仅示例):

import numpy as np

random_genome = np.random.choice(list('ACTG'), 10)

>>> random_genome
array(['C', 'A', 'C', 'C', 'G', 'C', 'A', 'C', 'C', 'C'],
      dtype='<U1')

你可以用这样的简单函数包装它:

def create_genome(n=1000000):
    return np.random.choice(list('ACTG'), n)

这样您就可以定义基因组使用参数n的时间长度。

当您正在寻求简化代码时,我将上述函数计时大约需要1.2秒来创建100个随机基因组,每个基因组包含1,000,000个字母。

编辑:如果您的目标是写入.txt文件而不是使用python中的随机基因组,那么最好先将基因组连接到单个字符串:

def create_genome(n=1000000):
    return ''.join(np.random.choice(list('ACTG'), n))

因此,您可以轻松快速地将其写入文件:

with open('filename.txt', 'w') as f:
    f.write(random_genome)

以这种方式生成随机基因组需要更长的时间,但如果您的目标是拥有.txt,那么这可能会更好地将其保存为np.array