启动 GBC
GBC 现整合到 KGGA 工具包下,GBC 整体上更专注于基因型数据的处理(包括内存编码、存储编码、计算编码,以提升特定环节下的处理性能)和高效的坐标查找算法设计。使用以下指令进入 GBC 的命令行工具:
java -jar kgga.jar gbc
所有指令都可以通过传入 --help 呼出命令行文档。
GBC 的核心指令是 convert
, 提供了常用基因组分析文件格式之间的==并行==相互转换、筛选、过滤、 LiftOver 、 Biallelic 、质控、排序、串联等功能。
格式转换
语法:java -jar kgga.jar gbc convert <source>2<target> [options]
例如: vcf2gtb, plink2gtb, gtb2vcf
PLINK-PGEN 需要额外的扩展支持 (参考下文).
从 VCF 文件输入, 获得 GTB 文件
示例:
java -jar kgga.jar gbc convert vcf2gtb ~/ukb24310_c1_b6089_v1.vcf.gz \
--field \
--prune \
--seq-an 1~ --seq-af 0.000001~0.999999 \
-o /Users/suranyi/ukb24310_c1_b6089_v1.3.gtb
此时将执行 VCF 到 GTB 文件的转换,该步骤包含默认的质控:GQ >= 20
, DP >= 8
, MQ >= 40
, PL >= 20
, LPL >= 20
, FT == PASS
, AD_HOM_REF <= 0.05
, AD_HOM_ALT >= 0.75
, AD_HET >= 0.25
等。--field
后没有跟随任何参数,表示移除 VCF 文件中的 INFO、FILTER 等字段;--prune
表示修剪位点 AC=0 的 ALT 突变。
使用 --disable-qc
禁用质控, 有关质控参数的说明和设置, 使用 java -jar kgga.jar gbc convert -h
查看文档说明
从 VCF 文件输入, 获得 PLINK-PGEN 文件
示例:
java -Djava.library.path=$(pip3 show jep | grep Location | awk '{print $2"/jep"}') \
-jar kgga.jar gbc convert vcf2plink ./ukb24310_c1_b6089_v1.vcf.gz \
-o ./ukb24310_c1_b6089_v1 \
--output-type pgen
多个文件输入,产生单独的文件
java -jar kgga.jar gbc convert vcf2gtb 1kg.phase3.v5.shapeit2.amr.hg19.chr*.vcf.gz -o ~/tmp/AMR.hg38.gtb --liftover hg19ToHg38
解压、访问、筛选个体或特定位点的基因型
在上述语法基础上, 使用 --individual <string>,<string>,...
, --pos [expression]
, --index-range <min>~<max>
, --allele-num <min>~<max>
, --seq-ac <minAc>~<maxAc>
, --seq-af <minAf>~<maxAf>
表示进行子集提取.
示例:
java -Djava.library.path=$(pip3 show jep | grep Location | awk '{print $2"/jep"}') \
-jar kgga.jar gbc convert plink2vcf ./ukb24310_c1_b6089_v1 \
--input-type pgen \
--individual 1718672,2380098,5176706,4729017,1930596 \
--seq-an 1~ \
-o ./ukb24310_c1_b6089_v1.s5.vcf.gz
其他命令行功能
- 队列合并:
java -jar kgga.jar gbc merge <file1> <file2> -o <output>
- 多文件纵向合并 (常用于合并不同染色体文件):
java -jar kgga.jar gbc concat <input> <input> ... --output <output>
- LD 计算:
java -jar kgga.jar gbc ld
- 图形界面显示:
java -jar kgga.jar gbc gui
- 制作数据库文件:
java -jar kgga.jar gbc make-database
基因组注释、分析功能目前集成在 KGGA 中 (http://pmglab.top/kgga).
扩展功能: PLINK, BGEN
在终端中执行:
pip install jep zstandard pgenlib bgen_reader
启动时使用以下指令:
java -Djava.library.path="$(pip3 show jep | grep Location | awk "{print \$2\"/jep\"}")" -jar
# 该指令等效于: java -Djava.library.path=/opt/homebrew/lib/python3.13/site-packages/jep -jar
对于 Windows 用户或使用非标准安装路径的用户,可以通过运行以下命令获取 'jep' 的父目录路径:
pip3 show jep
然后,将 /jep
附加到输出结果中的 Location
路径后,即可获得正确的 <jep目录路径>
值,用于 -Djava.library.path
参数。
备注
- 4.x 版本的 CCF 架构进行了更松散的行列分块架构设计,以及更细粒度的并行化以提升性能(尤其是内存开销,目前我们能够在 1GB/线程下实施 UK Biobank 全基因组基因型的编码、过滤),其文件格式与 3.x 版本不兼容。
- 目前 KGGA 和 CCF 的开发专注于提升系统化工程的性能(以 Java-API 开发为主),命令行功能仅作为扩展功能提供,可能存在实践易用性不足的问题,这部分内容预计在下一个小版本(ccf-4.6)中进行解决。
- 文件合并功能目前仅实现了简单的功能,通过校验坐标、REF 一致和标准碱基(其等位基因由ATCG 四种碱基组成)进行合并。后续会进一步优化合并性能,多等位基因位点拆分合并重组,按坐标取交集、并集、补集、左对齐等合并模式。