从 VCF 文件构建 GTB 存档
GBC 为标准的单倍体或二倍体物种的 VCF 文件(参考:VCF 文件规范)构建 GTB 存档,以实现基因型数据的快速寻址和访问。由于基因型质量在下游分析中并不常用,默认情况下 GBC 并不保存基因型的质量信息,取而代之的,GBC 对变异位点和基因型进行质控,以确保储存的位点和基因型是质量可靠的。在命令行中,使用如下指令为基因组 VCF 文件构建 GTB 存档:
java -jar gbc.jar vcf2gtb <input> [output] [options]
文件构建完成后 GBC 将检查 GTB 文件是否依坐标有序,无序文件将调用 GTBSorter 进行排序。其他物种的 VCF 文件储存支持请参阅:染色体标签声明。
[!NOTE|label:示例程序 I|style:callout]
使用 GBC 为示例文件
https://pmglab.top/gbc/download/assoc.hg19.vcf.gz
构建存档,并设置以下参数:
- 基因型设置为 phased;
- 压缩器压缩级别设置为 16;
- 将参考基因组的版本从 hg19 提升到 hg38。
完成该任务的命令行指令如下:
# 下载数据文件 wget https://pmglab.top/gbc/download/assoc.hg19.vcf.gz -O assoc.hg19.vcf.gz # 在终端直接运行 java -jar gbc.jar vcf2gtb ./assoc.hg19.vcf.gz ./assoc.hg38.gtb \ -p -l 16 --liftover hg19ToHg38 # 使用 docker 运行 docker run -v `pwd`:`pwd` -w `pwd` --rm -it -m 4g gbc \ vcf2gtb ./assoc.hg19.vcf.gz ./assoc.hg38.gtb \ -p -l 16 --liftover hg19ToHg38
[!NOTE|label:示例程序 II|style:callout]
使用 GBC 为示例文件
https://pmglab.top/gbc/download/rare.disease.hg19.vcf.gz
构建存档,并保存所有的字段:# 在终端直接运行 java -jar gbc.jar vcf2gtb https://pmglab.top/gbc/download/rare.disease.hg19.vcf.gz -f ALL # 使用 docker 运行 docker run -v `pwd`:`pwd` -w `pwd` --rm -it -m 4g gbc \ vcf2gtb https://pmglab.top/gbc/download/rare.disease.hg19.vcf.gz -f ALL
[!TIP|label:为指定目录下的所有 VCF 文件构建 GTB 存档|style:callout]
在 Macos、Linux 的终端环境下运行时,可以使用以下语句为文件夹
$DATA_PATH
下的所有以.vcf.gz
为扩展名的文件构建 GTB 存档。DATA_PATH="/Data" OUTPUT_PATH="/Data" for file in ${DATA_PATH}/*.vcf.gz do java -jar gbc.jar vcf2gtb ${file} ${OUTPUT_PATH}/$(basename "$file" .vcf.gz).gtb done
程序参数
语法: vcf2gtb <input> [output] [options]
Java-API: edu.sysu.pmglab.gbc.VCF2GTB
关于: 为 VCF 文件压缩和构建 GTB 文件.
参数:
--chromosome 指定染色体标签文件.
格式: --chromosome <file>
--threads,-t 设置并行线程数.
默认值: 4
格式: --threads <int>
--level,-l 设置使用 ZSTD 压缩的级别.
默认值: 16
格式: --level <int> (0 ~ 22)
GTB 存档参数:
--add-meta 添加元信息到输出文件.
格式: --add-meta <key>=<value> <key>=<value> ...
--phased,-p 设置基因型向型为 phased.
--liftover 对坐标进行版本转换. 转换文件从http://hgdownload.cse.ucsc.edu/goldenPath/<version>/liftOver 下载.
格式: --liftover <string> ([hg19ToHg38/hg38ToHg19/hg18ToHg19/hg18ToHg38] (忽略大小写))
--field,-f 添加 VCF 文件中需要储存到输出文件的字段.
默认值: GENOTYPE
格式: --field <string>,<string>,... ([META/ID/QUAL/FILTER/INFO/GENOTYPE/ALL/NONE] (忽略大小写))
质量控制参数:
--no-qc 禁用所有质量控制功能.
--allele-num 排除可变等位基因数不在 [minAlleNum, maxAlleNum] 范围的变异位点.
默认值: 0-15
格式: --allele-num <minAlleleNum>-<maxAlleleNum> (0 ~ 255)
--gty-gq 排除最小基因型质量 (Phred Quality Score) < minGq 的基因型.
默认值: 20
格式: --gty-gq <minGq> (>= 0)
--gty-dp 排除最小基因型 reads 深度 (Phred Quality Score) < minDp 的基因型.
默认值: 8
格式: --gty-dp <minDp> (>= 0)
--gty-pl 排除标准化后的次级基因型 Phred-scaled 似然比 < minPl 的基因型. 否则, 会出现混淆的基因型.
默认值: 20
格式: --gty-pl <minPl> (>= 0)
--gty-ad-hom-ref 排除 reads 覆盖的替代等位基因比例 > maxAdHomRef 的参考等位基因纯合基因型 (reference-allele homozygous genotype).
默认值: 0.05
格式: --gty-ad-hom-ref <maxAdHomRef> (0.0 ~ 1.0)
--gty-ad-hom-alt 排除 reads 覆盖的替代等位基因比例 < minAdHomAlt 的替代等位基因纯合基因型 (alternative-allele homozygous genotype).
默认值: 0.75
格式: --gty-ad-hom-alt <minAdHomAlt> (0.0 ~ 1.0)
--gty-ad-het 排除 reads 覆盖的替代等位基因比例 < minAdHet 的杂和基因型.
默认值: 0.25
格式: --gty-ad-het <minAdHet> (0.0 ~ 1.0)
--seq-qual 排除最低总体测序质量分数 (Phred Quality Score) < minQual 的变异位点.
默认值: 30.0
格式: --seq-qual <minQual> (>= 0.0)
--seq-fs 排除整体链偏差 Phred-scaled p-value (使用 Fisher 精确检验) > maxFs 的变异位点.
格式: --seq-fs <maxFs> (>= 0.0)
--seq-mq 排除最小总体映射质量评分 (Mapping Quality Score) < minMq 的变异位点.
默认值: 20.0
格式: --seq-mq <minMq> (>= 0.0)
--seq-info 排除 INFO 中包含/不包含 (以 ^ 开头) 指定字符串的变异位点.
格式: --seq-info <string> <string> ...
--seq-ac 排除替代等位基因计数 (AC) 不在 [minAc, maxAc] 范围内的变异位点.
格式: --seq-ac <minAc>-<maxAc> (>= 0)
--seq-af 排除替代等位基因频率 (AF) 不在 [minAf, maxAf] 范围内的变异位点.
格式: --seq-af <minAf>-<maxAf> (0.0 ~ 1.0)
--seq-an 排除非缺失等位基因数 (AN) 不在 [minAn, maxAn] 范围内的变异位点.
默认值: 1-
格式: --seq-an <minAn>-<maxAn> (>= 0)
API 工具
将 VCF 文件转换为 GTB 文件的 API 工具是 edu.sysu.pmglab.gbc.VCF2GTB,使用示例如下:
VCF2GTB.of("https://pmglab.top/gbc/download/assoc.hg19.vcf.gz")
.setOutputFile(new File("./assoc.hg38.gtb"))
.storeOriginMeta(true)
.liftOverWith(RefGenomeVersion.hg19, RefGenomeVersion.hg38)
.setThreads(4)
.convert();