按区域样本与基因型提取变异 - SpiralKernel/bioinfo-wiki GitHub Wiki
按区域样本与基因型提取变异
更新:2026-10-14;状态:可用;验证范围:bcftools1.22与HTSlib1.22人工VCF/SAM案例已执行;真实检测性能及其他专业软件未实测。
明确坐标和筛选顺序,先定义样本集合,再判断基因型并重算相应统计。
区域:锚点与跨度
先运行人工VCF贯通变异分类与提取,从项目根目录进入examples/output/variants并使用同一bcftools环境。regions.bed是0-based半开区间chrToy:[301,302),对应VCF位置302:
bcftools view -R regions.bed --regions-overlap record -Ov -o overlap.record.vcf normalized.vcf.gz
bcftools view -R regions.bed --regions-overlap pos -Ov -o overlap.pos.vcf normalized.vcf.gz
前者1条small_del,后者0条:删除记录POS为300,受影响碱基包括302。BCFtools还支持variant重叠语义;选项改变的是问题,不应只选结果最多的一种。
BED后缀、坐标规则、染色体名称、排序与索引先核对。BND的远端、插入位置及不精确断点需按定义另处理,单个区间命中并不保证完整事件。
样本与携带状态:分两步
samples.txt每行一个样本名,本例为S01:
bcftools view -S samples.txt -Ov -o selected.sample.vcf normalized.vcf.gz
bcftools +fill-tags selected.sample.vcf -Ov -o selected.sample.tags.vcf -- -t AC,AN,AF
bcftools view -i 'GT="alt"' -Ov -o selected.nonref.vcf selected.sample.tags.vcf
提取样本列仍可保留在该样本纯合参考或缺失的记录;最后一步才筛携带ALT的记录。本例剩15条,排除S01的missing与cnv记录。若把样本筛选和表达式写在同一view命令,表达式评估顺序可能不等于想象中的“先只看S01”,因此用分步输出更容易核查。
频率与导出
本例SNV原AC=5、AN=6、AF≈0.833333。view子集后AC/AN更新为1/2,但旧AF仍可能保留0.833333;fill-tags重算后AF=0.5。记录外部人群AF与本队列AF的来源,不要覆盖后混用。
query导出时保留样本名/列顺序、GT、REF/ALT及参考信息,见官方字段提取教程。缺失、部分缺失、倍性和相位不能直接当作完整二倍体剂量。