在fasta文件中随机选择行的子集

时间:2018-07-08 09:12:26

标签: python bioinformatics

我的Fasta文件读取了大约1800万次。我把它的头带入Python并构建了一个字典,其中使用带if / else语句的forloop来构造key = readID和value = sequence。

我现在想从原始文件中随机选择10,000个读取的子集。我认为另一个for循环是必要的,但是我不确定从哪里开始。

预先感谢

1 个答案:

答案 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)