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