-3

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

4

1 回答 1

2

如果我理解正确,产生一个随机的人类基因组将非常简单。以下将产生 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

于 2018-04-03T01:16:49.697 回答