胚系变异与联合分型#
haplotyper#
胚系 SNP 和 indel 检测(GATK HaplotypeCaller),输出 VCF 或 gVCF。默认复现 GATK 4.6.2.0,--gatk-version 可选择其他版本;输出与对应版本的 HaplotypeCaller 逐条记录相同,表头除 ##GATKCommandLine 外逐行相同。GPU 版加 --device gpu 在 GPU 上计算,输出与 CPU 逐字节相同。
baizegen haplotyper -R REFERENCE -I DEDUPED_BAM -O OUTPUT [选项]
必需参数#
| 参数 | 说明 |
|---|---|
-I, --input FILE |
按坐标排序并带索引的 BAM / CRAM。一个 BAM 中有多个样本(读组 SM 不同)时输出多样本 VCF |
-R, --reference FILE |
参考基因组 FASTA |
-O, --output FILE |
输出文件:.vcf、.vcf.gz(同时写 .tbi)、.g.vcf.gz、.bcf |
常用参数#
| 参数 | 说明 | 默认 |
|---|---|---|
-L, --interval STR|FILE |
只分析指定区间:chr:start-end,或 .bed / .interval_list / .list / .intervals 文件;可重复 |
全基因组 |
-t, --threads INT |
线程数 | 1 |
--ploidy INT |
样本倍性 | 2 |
-q, --bqsr-recal-file FILE |
校正表:读取 reads 时即时应用 BQSR,不需要先生成校正后的 BAM。不要用于已经校正过的 BAM | |
-A, --annotation NAME |
只接受 StrandBiasBySample:VCF 模式下也输出 FORMAT 中的 SB 字段。HaplotypeCaller 的默认注释总是输出,其他注释名会报错 |
|
--device cpu|gpu |
gpu:在 GPU 上计算(仅 GPU 版),输出与 CPU 逐字节相同 |
cpu |
--gpus N|all |
--device gpu 时使用的显卡数。多卡时每张卡一个进程,按染色体连续分配,-t 在各进程间均分,最后合并为一个文件,记录和索引与单进程相同(VCF / gVCF 输出,不含 BCF)。被其他进程占用的卡不使用;部分占用的卡按剩余显存规划;没有可用的卡时在 CPU 上计算 |
all |
-OVI, --create-output-variant-index true|false |
为 .vcf.gz / .g.vcf.gz 写 .tbi 索引(染色体超过 2^29 时写 .csi) |
true |
gVCF 输出#
| 参数 | 说明 | 默认 |
|---|---|---|
--emit-mode MODE |
none(VCF)、gvcf、bp_resolution(逐碱基),不区分大小写 |
none |
-ERC, --emit-ref-confidence MODE |
同上,GATK 写法:NONE、GVCF、BP_RESOLUTION |
NONE |
--gvcf-gq-bands INT[,INT...] |
参考块的 GQ 分段边界 | 1..60,70,80,90,99 |
--floor-blocks |
参考块输出所在分段的下界 GQ,而不是块内最小 GQ | 关闭 |
--gvcf-deflate auto|gpu|cpu |
.g.vcf.gz 的压缩位置:gpu(记录相同、字节不同,文件约大 4%;需要 GPU 版和显卡)、cpu(htslib)、auto(--device gpu 且有显卡时用 GPU) |
auto |
--gvcf-compression N |
.g.vcf.gz 的压缩级别 1–9 |
6 |
组装与似然参数#
| 参数 | 说明 | 默认 |
|---|---|---|
--kmer-size INT |
组装的 k-mer 长度,可重复 | 10、25 |
--prune-factor INT |
组装图剪枝阈值 | 2 |
--adaptive-pruning |
使用 AdaptiveChainPruner(默认 LowWeightChainPruner) | 关闭 |
--min-base-qual INT |
最低碱基质量 | 10 |
--base-quality-score-threshold INT |
PairHMM 中的碱基质量上限 | 18 |
--max-reads-per-alignment-start INT |
每个起始位置保留的最多 reads 数(下采样),0 关闭 |
50 |
复现指定的 GATK 版本与运行环境#
| 参数 | 说明 | 默认 |
|---|---|---|
--gatk-version V |
要复现的 GATK 版本:4.0.12.0、4.1.8.0、4.1.9.0、4.2.6.1、4.3.0.0、4.4.0.0、4.5.0.0、4.6.2.0。--device gpu 支持全部版本 |
4.6.2.0 |
-pairHMM, --pair-hmm-implementation IMPL |
FASTEST_AVAILABLE:GKL 的原生 PairHMM(GATK 在 x86 上的默认;AVX_LOGLESS_CACHING、AVX_LOGLESS_CACHING_OMP 与它相同);LOGLESS_CACHING:GATK 的 Java PairHMM,逐位复现(仅 CPU)。GATK 的其他 Java 实现(ORIGINAL、EXACT、ARRAY_LOGLESS)不支持 |
FASTEST_AVAILABLE |
--gatk-host-simd avx2|avx512 |
GATK 当时运行的 CPU:avx512 复现 GATK 在 AVX-512 机器上的原生 PairHMM 结果(任何支持 FMA 的 CPU 都能计算,GPU 版也支持) |
avx2 |
--gatk-host-glibc V |
GATK 进程当时使用的 glibc 版本:原生 PairHMM 的 log10f / log10 按该版本计算(2.17、2.28 及以后;2.41 起 log10f 正确舍入) |
本程序自带的数学库 |
用法见复现已有的 GATK 结果。
诊断与兼容参数#
以下参数为兼容 GATK 的命令行而保留,接受但不起作用(不影响结果),一般不需要设置。
| 参数 | 说明 | 默认 |
|---|---|---|
--native-pair-hmm-threads INT |
GATK 原生 PairHMM 每次调用的 OpenMP 线程数。只检查是整数,结果与它无关 | |
--smith-waterman IMPL |
GATK 的 Smith-Waterman 实现:FASTEST_AVAILABLE、AVX_ENABLED、JAVA。只检查取值,这几种实现的比对结果相同 |
combinegvcfs#
把多个 gVCF 合并为一个多样本 gVCF(GATK CombineGVCFs 4.6.2.0)。输出与 GATK 逐条记录相同,表头除 ##GATKCommandLine 外也相同。可以在同一次运行中完成联合分型(--genotype-out)。
baizegen combinegvcfs -R REFERENCE -V A.g.vcf.gz [-V B.g.vcf.gz ...] -O COHORT.g.vcf.gz [选项]
| 参数 | 说明 | 默认 |
|---|---|---|
-R, --reference FILE |
参考基因组 FASTA(需要 .fai)。必需 |
|
-V, --variant FILE |
输入 gVCF(单样本或多样本),可重复,按给出的顺序。输入顺序会影响输出中等位基因的顺序(与 GATK 相同)。以 .list 结尾的文件按路径列表读入,就地展开(与 GATK 相同) |
|
--variant-list FILE |
gVCF 路径列表文件,每行一个(排在 -V 之后);每行去掉首尾空白,空行和以 # 开头的行跳过(与 GATK 的 .list 相同) |
|
-O, --output FILE |
合并后的 gVCF:.g.vcf.gz 写 BGZF 压缩文件和索引,其他扩展名写文本。必需 |
|
--genotype-out FILE |
同时输出群体 VCF:等于对合并结果运行 gvcftyper,逐字节相同(gVCF 照常写出) |
|
-L, --intervals STR|FILE |
只处理这些区间(可重复;.bed / .interval_list / .list),需要输入有索引 |
|
-XL, --exclude-intervals STR|FILE |
排除这些区间(可重复) | |
-D, --dbsnp FILE |
dbSNP(CombineGVCFs 只在表头中声明 INFO DB) | |
--ignore-variants-starting-outside-interval |
丢弃起点在区间外的记录 | 关闭 |
--break-bands-at-multiples-of N |
在 N 的整数倍位置切断参考块 | 不切断 |
--convert-to-base-pair-resolution |
每个位置单独一条记录 | 关闭 |
--disable-sequence-dictionary-validation |
同 GATK:同名染色体长度不一致、或某个输入与参考基因组没有共同染色体时默认拒绝运行,加此参数则继续。输入表头里有而参考基因组里没有的染色体不会被拒绝;落在这类染色体上的记录跳过并给出警告(GATK 运行到这类记录时会中途退出) | 关闭 |
--compression-level N |
BGZF 压缩级别 0–9(解压后的文本与级别无关) | 5 |
-t, --threads N |
线程数。N ≥ 2 且输出为 .gz 时按基因组区段(或 -L / -XL 区间)并行,输出文本与单线程相同 |
1 |
--device cpu|gpu |
gpu:合并、分型、文本生成和压缩在 GPU 上进行(仅 GPU 版),输出文本相同 |
cpu |
--gpus N|all |
--device gpu 时使用的显卡 |
全部可见的卡 |
--merge-ties-by-input |
同一位置的多个记录按 -V 顺序合并,而不是 GATK 的顺序。速度更快,但输出不再与 GATK 相同(约 2% 的 VCF 位点等位基因顺序不同,约 0.002% 的位点结果不同;详见加速选项) |
关闭 |
-OVI, --create-output-variant-index true|false |
写 .tbi / .csi 索引 |
true |
--allow-old-rms-mapping-quality-annotation-data |
--genotype-out 时,从 RAW_MQ(GATK 3 / 4.0 的 gVCF)计算 MQ,同 gvcftyper |
关闭 |
--resume |
断点续跑(下一个发布包起提供):在染色体起点写检查点,运行失败时保留已写出的部分,用同一条命令再次运行即从最后一个检查点继续,结果与一次跑完逐字节相同。见中途出错后继续运行 | 关闭 |
--ignore-variants-starting-outside-interval、--disable-sequence-dictionary-validation、--allow-old-rms-mapping-quality-annotation-data 后面可以跟 true / false(GATK 写法),不跟时等于 true。
输入中表头没有声明的 INFO 字段(例如某些 gVCF 中未声明的 ClippingRankSum)按 GATK --lenient 的方式处理:合并结果和 --genotype-out 的 VCF 中照样带上,表头不补声明。GATK 不加 --lenient 时会在第一条这样的记录处退出。
中途出错后继续运行#
大队列的合并往往要跑数小时。加上 --resume 后,中途出错不必从头再跑。--resume 从下一个发布包起提供。
- 写检查点:每当一条染色体全部写完,且距上一个检查点已超过约 10 分钟,就在
<输出名>.resume/目录中记一个检查点。间隔可以用环境变量BG_COMBINE_RESUME_EVERY_S(秒)调整。 - 失败时:运行失败或进程被杀死时,以下内容都会保留,不会删除:
<输出名>.partial;--genotype-out的.partial;- 检查点目录。
- 续跑:用同一条命令(同样带
--resume)再运行一次,就从最后一个检查点所在的染色体接着跑。成功结束后,检查点目录自动删除。 - 检查点作废:输入文件、参考基因组、影响输出内容的参数或程序本身有变化时,检查点作废,程序给出警告后从头运行。
-t、--device、--gpus可以改。 - 结果:续跑得到的 gVCF、VCF 和两个索引,与不中断、一次跑完的结果逐字节相同。
- 例外:
--device gpu显存不够、部分分片转到 CPU 上处理时,哪些块由 GPU 压缩取决于运行时的时机。这种情况下,即使不中断,两次运行的压缩字节和索引也可能不同,但解压后的内容相同。 - 带
--resume时,VCF 的压缩块在每条染色体结尾处断开。因此它与不带--resume的 VCF 字节不同,但解压后的内容相同。 - gVCF 不受影响。
- 例外:
检查点只写在染色体起点。中断后需要重算的,是最后一个检查点之后的部分,最多约为一条染色体加上一个检查点间隔的工作量。
下列情况不写检查点(给出警告,照常运行):
- 单线程 CPU 运行(-t 1 且不用 GPU);
- 输出不是 .gz;
- 带 -L / -XL;
- --genotype-out 不是 .vcf.gz;
- 某个输入不是 BGZF 压缩,或没有索引。续跑时要靠输入的索引找到接着读的位置。
暂不支持:--call-genotypes。不支持(给出时报错退出,合并时总是使用 GATK 的默认注释):--input-is-somatic、--drop-somatic-filtering-annotations、注释相关参数(-A, --annotation、-G, --annotation-group、-AX, --annotations-to-exclude)。
gvcftyper#
对 gVCF 做联合分型,输出 VCF(GATK GenotypeGVCFs 4.6.2.0),输出与 GATK 逐条记录相同;-t N 的输出与 -t 1 逐字节相同。
baizegen gvcftyper -r REFERENCE -v INPUT.g.vcf.gz -O OUTPUT.vcf.gz [选项]
| 参数 | 说明 | 默认 |
|---|---|---|
-r, --reference FILE |
参考基因组 FASTA,需要同时有 .fai 和 .dict。必需 |
|
-v, --variant FILE |
输入 gVCF(单样本或多样本),只接受一个文件。多个样本请先用 combinegvcfs 合并。必需 |
|
-O, --output FILE |
输出:.vcf、.vcf.gz、.bcf。必需 |
|
-d, --dbsnp FILE |
dbSNP VCF(tabix 索引),用于 ID 列和 DB 注释,不影响分型 | |
-L, --intervals STR|FILE |
只分型与这些区间重叠的记录(可重复;contig、contig:start-end、.bed / .interval_list / .list);需要索引,没有时自动建立;每条记录只输出一次 |
|
-XL, --exclude-intervals STR|FILE |
排除这些区间(可重复;单独使用时为全部染色体减去这些区间) | |
--merge-input-intervals |
每条染色体只遍历一个区间:从第一个 -L 的起点到最后一个的终点。没有 -L / -XL 时忽略 |
关闭 |
--variant-output-filtering MODE |
只输出与区间满足关系的位点:STARTS_IN、ENDS_IN、OVERLAPS、CONTAINED、ANYWHERE(不区分大小写)。ANYWHERE 以外的模式需要 -L / -XL |
ANYWHERE |
--only-output-calls-starting-in-intervals |
等于 --variant-output-filtering STARTS_IN,两者不能同时使用 |
关闭 |
--ploidy N(也可写作 --sample-ploidy、-ploidy) |
gVCF 中没有 GT 的样本的倍性(GenotypeGVCFs 的 --sample-ploidy)。其他样本按其自身 GT 的倍性分型,支持任意倍性和混合倍性 |
2 |
--allow-old-rms-mapping-quality-annotation-data |
从 RAW_MQ(GATK 3 / 4.0 的 gVCF)按 GATK 的旧规则计算 MQ。不加时,遇到只有 RAW_MQ 的记录会像 GenotypeGVCFs 一样报错退出(退出码 2) |
关闭 |
-OVI, --create-output-variant-index true|false |
为 .vcf.gz 写 .tbi、为 .bcf 写 .csi |
true |
-t, --threads N |
线程数。N ≥ 2 时按基因组区段并行,需要输入有 tabix 索引(没有时自动建立;输入不是 BGZF 压缩、无法建立索引时单线程运行) | 1 |
--merge-input-intervals、--only-output-calls-starting-in-intervals、--allow-old-rms-mapping-quality-annotation-data 后面可以跟 true / false(GATK 写法),不跟时等于 true。
输出中样本按名称排序,与 GenotypeGVCFs 相同。
输入中表头没有声明的 INFO 字段按 GenotypeGVCFs --lenient 的方式带到输出中(表头不补声明);GATK 不加 --lenient 时会在第一条这样的记录处退出。输出为 .bcf 时无法写入这类字段,会丢弃并给出警告。
等位基因超过 50 个(参考等位基因和 * 都计入)的位点与 GenotypeGVCFs 一样不分型、不输出;combinegvcfs --genotype-out 相同。
诊断与兼容参数#
-t N(N ≥ 2)时的分区参数,不影响输出,一般不需要设置。
| 参数 | 说明 | 默认 |
|---|---|---|
--gvcf-region-size N |
每个并行区段的长度(bp) | 10000000 |
--gvcf-lookback N |
每个区段起点前的预读长度(bp),用于还原跨区段的缺失。遇到长于它且跨过区段边界的缺失时程序报错退出,此时加大该值或改用 -t 1 |
100000 |
variantfiltration#
按 JEXL 表达式、SNP 聚集和区间掩码给变异记录加 FILTER 标记(GATK VariantFiltration 4.6.2.0;下一个发布包起提供),输出与 GATK 逐条记录相同(表头除 ##GATKCommandLine 外逐行相同),参数名与 GATK 相同,流程中可以直接替换。
baizegen variantfiltration -V INPUT.vcf.gz -O OUTPUT.vcf.gz \
-filter "QD < 2.0" --filter-name QD2 -filter "FS > 60.0" --filter-name FS60 -filter "MQ < 40.0" --filter-name MQ40
| 参数 | 说明 | 默认 |
|---|---|---|
-V, --variant FILE |
输入 VCF(.vcf 或 bgzip 压缩的 .vcf.gz,单样本或多样本)。必需 |
|
-O, --output FILE |
输出:.vcf.gz(同时写 .tbi)或 .vcf。必需 |
|
-filter, --filter-expression EXPR |
JEXL 表达式,记录满足时在 FILTER 中加上对应的名字(可重复) | |
--filter-name NAME |
每个表达式的名字,与 --filter-expression 按顺序一一对应、数目相同 |
|
-invfilter, --invert-filter-expression |
反过来:不满足表达式的记录加 FILTER | 关闭 |
--missing-values-evaluate-as-failing |
表达式用到的注释在某条记录中缺失时,算作满足(加 FILTER);默认算作不满足 | 关闭 |
--invalidate-previous-filters |
先清空输入中已有的 FILTER | 关闭 |
-window, --cluster-window-size N |
开启 SNP 聚集过滤:任一长度小于 N bp 的窗口内有 --cluster-size 个 SNP 时,标记 SnpCluster |
0(关闭) |
-cluster, --cluster-size N |
构成聚集的 SNP 数,至少 2 | 3 |
--mask FILE |
掩码区间(BED 或 VCF),与之重叠的记录标记 --mask-name |
|
--mask-extension N / --mask-name NAME / --mask-description TEXT |
掩码区间两侧的延伸长度、FILTER 名字、表头说明 | 0 / Mask |
--filter-not-in-mask |
反过来:不在掩码内的记录加 FILTER | 关闭 |
-G-filter, --genotype-filter-expression EXPR |
基因型层面的 JEXL 表达式(可用 GT、GQ、DP、AD、isHet、isHomVar、g.getDP() 等,样本中没有的字段取 INFO 中的同名值);已分型(不是 ./.)的样本满足时,在其 FT 中加上对应的名字(可重复) |
|
-G-filter-name, --genotype-filter-name NAME |
每个基因型表达式的名字,按顺序一一对应 | |
-invG-filter, --invert-genotype-filter-expression |
反过来:不满足基因型表达式的样本加 FT | 关闭 |
--set-filtered-genotype-to-no-call |
FT 中有名字的样本改为未分型(./.),并按新的基因型重算 AC、AN、AF |
关闭 |
-L, --intervals / -XL, --exclude-intervals |
只处理(排除)这些区间,写法同 gvcftyper |
|
-R, --reference FILE |
用其 .fai 解释 -L;不给时用输入 VCF 表头中的 contig |
|
-OVI, --create-output-variant-index true|false |
为 .vcf.gz 写 .tbi |
true |
-t, --threads N |
解析、判断、写出记录和 BGZF 压缩/解压的线程数;任意线程数输出相同 | 1 |
开关类参数后面可以跟 true / false(GATK 写法),不跟时等于 true。
JEXL 表达式的取值和比较方式与 GATK 完全一致,有两点容易出乎意料:
- 整数常量:
QD < 2会让 GATK 本身报错退出(GATK 按整数解析25.36这样的小数注释,NumberFormatException),variantfiltration也在同一处报错退出。小数注释请写成QD < 2.0。 - 组合表达式中的缺失注释:
QD < 2.0 || MQRankSum < -12.5在没有MQRankSum的记录上整体算作"缺失",默认不加 FILTER,即使QD < 2.0成立。需要分别判断时,把条件拆成多个-filter(每个配自己的--filter-name),这也是 GATK 推荐的写法。注释值为.(例如QD=.)时 GATK 同样报错退出。
可以使用的写法:注释名(INFO 中的键)、QUAL、CHROM、POS、TYPE(SNP、INDEL、MIXED、MNP、SYMBOLIC、NO_VARIATION)、FILTER、FILTER 中已有的名字、N_ALLELES、ALLELES;比较 < <= > >= == !=(也可写作 lt le gt ge eq ne)、=~(正则匹配)、&& || !(and or not)、算术 + - * / %、empty()、size(),以及 vc.isSNP()、vc.isIndel()、vc.getAttributeAsDouble("QD", 0.0) 等记录方法。超出这些的写法(赋值、函数、构造等)启动即报错(退出码 2),不会按近似方式运行。
输出中每条记录与 GATK 的写法相同:FILTER 中的名字按字母排序,没有任何 FILTER 时写 PASS(加 --invalidate-previous-filters 且没有新 FILTER 时写 .);INFO 按键排序;QUAL 保留两位小数(整数时去掉 .00)。由 GATK 产生的 VCF,除 FILTER 外其他列不变。
使用基因型过滤、--set-filtered-genotype-to-no-call,或表达式用到 homRefCount、hetCount、homVarCount 时,样本列与 GATK 一样按标准写法重写:FORMAT 中的键 GT 在前、其余按字母排序,各样本末尾缺失的字段省略,记录中有样本带 FT 时其余样本写 PASS。表头中标准字段(如 AD、PL、FT、AC、AF、DP)的 Number 或 Type 与标准不同时,与 GATK 一样替换为标准定义。
尚不支持(启动即报错):--apply-allele-specific-filters。输入表头中没有声明的 INFO 字段与 GATK 一样报错退出。GATK 要求输入和 --mask 带索引才能使用聚集过滤和掩码,variantfiltration 不要求。
selectvariants#
按变异类型、表达式、样本等条件选取记录(GATK SelectVariants 4.6.2.0;下一个发布包起提供),输出与 GATK 逐条记录相同(表头除 ##GATKCommandLine 外逐行相同),参数名与 GATK 相同。
# 只要 SNP;只要某个样本、并去掉该样本中没有变异的位点
baizegen selectvariants -V cohort.vcf.gz -select-type SNP -O snps.vcf.gz
baizegen selectvariants -V cohort.vcf.gz -sn NA12878 --exclude-non-variants --remove-unused-alternates -O NA12878.vcf.gz
| 参数 | 说明 | 默认 |
|---|---|---|
-V, --variant FILE / -O, --output FILE |
输入、输出 VCF(输出 .vcf.gz 时同时写 .tbi)。必需 |
|
-select-type, --select-type-to-include TYPE |
只保留这些类型:SNP、INDEL、MIXED、MNP、SYMBOLIC、NO_VARIATION(可重复) |
全部 |
-xl-select-type, --select-type-to-exclude TYPE |
去掉这些类型;--ignore-non-ref-in-types 判断类型时忽略 gVCF 的 <NON_REF> |
|
-select, --select EXPR |
JEXL 表达式(写法同 variantfiltration),只保留满足的记录;给多个时满足任意一个即保留 |
|
-select-genotype, --select-genotype-expressions EXPR |
基因型层面的表达式,任意一个样本满足即保留 | |
-invert-select, --invertSelect |
反过来:保留不满足表达式的记录 | 关闭 |
-jexl-first, --apply-jexl-filters-first |
在按样本取子集之前判断表达式(默认之后,即按子集重算的 AC/AN 判断) | 关闭 |
-sn, --sample-name NAME / -se, --sample-expressions REGEX |
只保留这些样本(可重复;正则表达式在样本名中任意位置匹配即可);AC、AN、AF 按保留样本重算(不计 FT 被过滤的基因型),DP 为保留样本 DP 之和,去掉 MLEAC、MLEAF | 全部 |
-xl-sn, --exclude-sample-name / -xl-se, --exclude-sample-expressions |
去掉这些样本 | |
--allow-nonoverlapping-command-line-samples |
-sn 中不在 VCF 里的样本忽略(默认报错退出) |
关闭 |
--exclude-non-variants |
去掉保留样本中都没有替代等位基因的位点 | 关闭 |
--exclude-filtered |
去掉 FILTER 不是 PASS / . 的记录 |
关闭 |
--restrict-alleles-to ALL|BIALLELIC|MULTIALLELIC |
只保留双等位 / 多等位位点 | ALL |
-ids, --keep-ids ID / -xl-ids, --exclude-ids ID |
按 ID 保留 / 去掉 | |
--max-indel-size N / --min-indel-size N |
indel 长度范围 | |
--max-filtered-genotypes N / --min-filtered-genotypes N |
FT 被过滤的样本数超出范围的记录去掉 | 不限 |
--max-fraction-filtered-genotypes F / --min-fraction-filtered-genotypes F |
同上,按比例(与 GATK 相同,比例按整数相除计算) | 1.0 / 0.0 |
--max-nocall-number N / --max-nocall-fraction F |
未分型样本数 / 比例超过时去掉记录 | 不限 / 1.0 |
--set-filtered-gt-to-nocall |
FT 被过滤的样本改为未分型 | 关闭 |
--remove-unused-alternates |
去掉保留样本中没有出现的替代等位基因;PL、GQ、AD(及 SAC)按保留的等位基因重算 | 关闭 |
--preserve-alleles |
取样本子集后不修剪等位基因 | 关闭 |
--keep-original-ac / --keep-original-dp |
取子集时保留原始值为 AC_Orig、AF_Orig、AN_Orig、DP_Orig |
关闭 |
-DA, --drop-info-annotation KEY / -DGA, --drop-genotype-annotation KEY |
去掉这些 INFO / FORMAT 字段 | |
-L, --intervals / -XL, --exclude-intervals |
只处理(排除)这些区间,写法同 gvcftyper |
|
-R, --reference FILE |
表头的 contig 行取自参考基因组的 .dict(带 assembly),并写 ##reference 行(--suppress-reference-path 只写文件名) |
|
--fail-on-unsorted-genotype |
输入的样本没有按名称排序时报错退出 | 关闭 |
-OVI, --create-output-variant-index true|false |
为 .vcf.gz 写 .tbi |
true |
-t, --threads N |
解析、判断、写出记录和 BGZF 压缩/解压的线程数;任意线程数输出相同 | 1 |
-sn、-xl-sn、-ids、-xl-ids、-DA、-DGA 的值可以是以 .list 或 .args 结尾的文件,每行一个。
与 GATK 相同的细节:输出中的样本按名称排序;表头中同一类型的说明行(如多个 ##source)只保留排序最前的一行,再加 ##source=SelectVariants;AC、AF、AN、DP 的表头说明替换为标准写法;contig 行按序列字典重写(只保留 ID 和长度)。-select 表达式中出现 JEXL 错误(例如把多等位位点的 AC 列表与数字比较)时,与 GATK 一样报错退出,而不是像 variantfiltration 那样当作缺失值。
尚不支持(启动即报错):-disc, --discordance、-conc, --concordance、-mv, --mendelian-violation、--invert-mendelian-violation、-ped, --pedigree、-fraction, --select-random-fraction、--remove-fraction-genotypes、--fully-decode。