首页 > 解决方案 > 随机选择 fasta 文件中的行子集

问题描述

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

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

提前致谢

标签: pythonbioinformatics

解决方案


当您使用 FASTQfiles 时,您应该真正使用BioPython。它支持读取 FASTQ 文件并将它们转换为字典,无需 for 循环。要获取随机样本,请使用random标准库中的模块

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)

推荐阅读