【发布时间】:2013-01-17 08:55:42
【问题描述】:
我有这个巨大的 (61GB) FASTQ 文件,我想在其中创建一个随机子集,但我无法将其加载到内存中。 FASTQ 的问题是每四行都属于一起,否则我只会创建一个随机整数列表,并且只将这些整数处的行写入我的子集文件。
到目前为止,我有这个:
import random
num = []
while len(num) < 50000000:
ran = random.randint(0,27000000)
if (ran%4 == 0) and (ran not in num):
num.append(ran)
num = sorted(num)
fastq = open("all.fastq", "r", 4)
subset = open("sub.fastq", "w")
for i,line in enumerate(fastq):
for ran in num:
if ran == i:
subset.append(line)
在转到下一个随机整数之前,我不知道如何到达文件中的下三行。有人可以帮我吗?
【问题讨论】:
-
您可以将代码的前半部分替换为
random.sample。
标签: python file memory line fastq