人工VCF贯通变异分类与提取 - SpiralKernel/bioinfo-wiki GitHub Wiki
人工VCF贯通变异分类与提取
更新:2026-10-14;状态:可用;验证范围:bcftools1.22与HTSlib1.22人工VCF/SAM案例已执行;真实检测性能及其他专业软件未实测。
用固定人工输入实际运行小变异调用、VCF标准化、类型/区域/样本提取与质量处理。
下载与第一次运行
从项目仓库 Code → Download ZIP,或直接下载ZIP,解压到同时含README.md、examples和scripts的根目录。进入目录的方法见R与Python路径文件与项目组织。
先按bcftools变异操作与表达式安装独立variants环境。在项目根目录的系统终端执行:
conda run -n variants python examples/variant_extraction_demo.py
已有能运行的bcftools及Python时也可直接python3 examples/variant_extraction_demo.py;非PATH工具用--bcftools "/你的实际路径/bcftools"。脚本需+fill-tags插件,基础代码只用Python标准库。
输入、输出与运行范围
examples/data/variants/保存固定人工参考及fai、calls.vcf、regions.bed、samples.txt、toy.sam。VCF有16条记录、3个样本;SAM有40条已人工构造的比对。脚本复制到输出目录后运行,原始输入不被改写。
输出在examples/output/variants/:标准化VCF及索引、各类提取VCF、掩蔽/重算结果、variants/cnv/str表、toy_called.vcf、summary.json和commands.json。重复运行覆盖输出同名文件。--input-dir与--output分别指定输入副本与独立输出,不能把输入目录当输出。
本机Linux、Python3.14.8、bcftools1.22/HTSlib1.22实际运行。Conda安装及所有操作系统未逐一实测;专业调用器未运行。人工SAM没有经过真实read mapper,不能当完整重测序基准。
核对结果
| 操作 | 本例实际结果 |
|---|---|
| 多等位拆分/标准化 | 16→17条;插入200左移至179 |
| 序列类型提取 | SNV5、Indel3、MNV1 |
| 符号/标记集合 | DEL/INV/DUP/CNV/STR/TE各1,BND2条对应1事件 |
| 接受FILTER | 仅PASS15;PASS或未评估16 |
| 目标位置302 | 按记录跨度1条;仅POS命中0条 |
| 选择S01后再筛ALT携带 | 15条,排除该样本缺失与纯合参考记录 |
| 同一样本与跨样本质量表达式 | 16条与17条 |
| 人工SAM调用 | chrToy:100 G→A,GT=0/1 |
这些筛选不是连续过滤的漏斗,而是从同一个输入回答不同问题。类型表按本例构造的分类统计;CNV、TE或STR在生物学上可与SV交叉,不能把本例分组当通用互斥分类法。
本例SNV选S01后AC/AN为1/2,旧AF仍可能为0.833333,重算后0.5。低质量样本掩蔽后仍保留记录。CN示例2/1/3与重复次数10/12等均为人工指定输入,不是从reads检测所得。
配图和继续练习
配图另需Matplotlib。按R包Python包与可复现环境建立.venv、安装教学依赖,然后在项目根目录执行.venv/bin/python examples/plot_variant_extraction.py。这里面向Linux/macOS或WSL;只运行基础案例不需要安装绘图库。

先复制输入目录到独立练习目录,再用--input-dir指向副本;把SNV的REF改成错误碱基,程序应停止,而不是自动修复。改samples.txt后需同步调整演示的固定结果断言;这是有预期真值的教学程序,不是任意生产VCF的通用包装器。
PAV状态整理另运行python3 examples/pav_matrix_demo.py,见PAV检测与存在缺失矩阵。详细操作由变异检测分型与提取学习路线连接。VCF案例源码,固定输入。