我的Fasta文件读取了大约1800万次。我把它的头带入Python并构建了一个字典,其中使用带if / else语句的forloop来构造key = readID和value = sequence。
我现在想从原始文件中随机选择10,000个读取的子集。我认为另一个for循环是必要的,但是我不确定从哪里开始。
预先感谢
答案 0 :(得分:2)
使用FASTQfiles时,实际上应该使用BioPython。它支持读取FASTQ文件并将其转换为字典,而无需for循环。 For taking random samples, use the random
module from the standard library。
from Bio import SeqIO
import random
record_dict = SeqIO.to_dict(SeqIO.parse("example.fastq", "fastq"))
random_reads = random.sample(record_dict.items(), 10000)
for readID, sequence in random_reads:
print(readID, sequence)