我有这个巨大的 (61GB) FASTQ文件,我想为其创建一个随机子集,但我无法将其加载到内存中。FASTQs 的问题是每四行都属于一起,否则我只会创建一个随机整数列表,并且只将这些整数的行写入我的子集文件。
到目前为止,我有这个:
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)
在转到下一个随机整数之前,我不知道如何到达文件中的下三行。有人能帮我吗?