この巨大な (61GB) FASTQファイルがあり、ランダムなサブセットを作成したいのですが、メモリにロードできません。FASTQ の問題は、4 行ごとに 1 つに属していることです。それ以外の場合は、ランダムな整数のリストを作成し、これらの整数の行のみをサブセット ファイルに書き込みます。
これまでのところ、私はこれを持っています:
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)
次のランダム整数に進む前に、ファイル内の次の 3 行に到達する方法がわかりません。誰かが私を助けることができますか?