覆盖度计算¶
识别网工作簿中的种基因组覆盖度 = 原始 reads 以 ≥1× 深度覆盖物种参考基因组的
比例(minimap2 + samtools,移植自原来的 calculate_coverage.py 流程)。
流程¶
top-N 物种 → 参考基因组 FASTA(manifest / ref-dir)
reads(原始数据,未质控——与旧流程一致)
→ minimap2 -ax <preset> -c … | samtools sort → BAM
→ samtools depth -a(全部位置,含零深度)
→ 每物种:平均深度 + 1x/5x/10x 覆盖比例
深度行单遍流式聚合——不用 numpy 数组,内存占用与基因组大小无关。
合并模式 vs 逐参考模式¶
默认(合并):每样本把参考基因组拼接成一条参考、只比对一次——多物种样本 约快 10 倍。多物种可比到多处相同的 reads 只会计入一个最优匹配。
--per-species:每个参考独立比对——严格独立的估计,慢约 N 倍。
需要知道的细节¶
- 用的是原始 FASTQ(
--reads-dir),不是质控/去宿主后的文件——与旧版calculate_coverage.py的口径一致,跨批次可比。 - 读长有影响:minimap2
-x sr需要 ≥50 bp 读段;ONT/PacBio 数据必须传--preset map-ont/--preset map-pb。 - 参考解析顺序:manifest 按
species_taxid→--ref-dir里{accession}*.fna→ manifestfile_path→{taxid}*.fna通配。解析不到的 taxid 覆盖度留空。 --min-depths 1,5,10控制审核明细 sheet 记录的阈值;上报 sheet 固定用 1×。