GBC 是什么?
GenoType Block Compressor (GBC) 是一个基因型数据压缩、访问和管理工具集,它主要包含一种全新的基因型数据区块结构(GenoType Block,GTB)、一套支持该结构的高并行 IO 框架。GTB 是一种可快速寻址的、统一字节编码的数据结构,能帮助用户高效地存储和管理超大规模基因型数据。同时,GBC 可以通过优化的并行压缩和解压缩过程,提高区块数据的读写速度,实现对海量基因型数据的超快访问和管理。使用 GTB 格式替代传统的 VCF 或 GZ 格式,可以显著减少硬盘空间占用,实现更快速的数据访问与提取,更方便的群体文件管理以及更高效的数据分析功能。
[!TIP|label:引用|style:callout]
Zhang, L., Yuan, Y., Peng, W. et al. GBC: a parallel toolkit based on highly addressable byte-encoding blocks for extremely large-scale genotypes of species. Genome Biol 24, 76 (2023). https://doi.org/10.1186/s13059-023-02906-z
为什么要用GBC?
- 普通用户:轻松管理和快速访问超大规模(百万量级样本)的全基因组基因型数据和注释数据资源,并直接通过 KGGSeq 等工具(或使用 GBC 的格式转换功能,如:对 PLINK 的转换支持 gtb2bed)直接快速分析位点和基因型数据。
- 开发人员:提供了丰富且性能卓越的 Java API 函数库, Java、Python(JPype)、R(rJava)、C++ 等语言都可以基于其搭建自己的高效分析超大规模样本的流程和工具。
GBC 有哪些功能和突出特点?
- 高效压缩:单线程压缩时内存占用 < 2 GB,速度高达 25000000 genotypes/s,突出的压缩比,支持使用多线程提升速度。
- 快速访问和查询:查询连续/随机位点,按照等位基因频数/频率过滤位点,按照字段条件过滤位点,提取子集样本等。
- 加速计算:加速计算大规模样本位点间的连锁不平衡系数。
- 质量控制:位点水平、基因型水平、群体等位基因频率水平质量控制,并保留扩展接口。
- 文件管理:合并、连接、拆分、提取样本子集、排序等。
- 单倍体/二倍体位点多等位基因型统一编码:统一编码位点的所有基因型,方便基因型数据的合并与交换。
- HTTP/HTTPS 访问:除了高速读取本地输入数据外,还可以直接通过网络读取远端数据。
- 多类输出格式支持:支持 GTB、VCF,TSV,CSV,PLINK-BED 等格式输出及自定义列(列名、列类型、列格式化等),方便下游分析之间的文件协议交换。
[!NOTE|label:多种文件转换支持|style:callout]
GBC 目前已经支持 VCF、MAF、TSV、BED 格式并行地、直接地与 GTB 格式进行相互转换。如果您有需要实现的格式规范,请将算法的实施细节和相关的参考论文发送至张柳彬 suranyi.sysu@gmail.com,我们将在后续的功能更新版本中进行实现。
您也可以参考 edu.sysu.pmglab.gbc.toolkit.bed 实现自己的文件格式转换,我们也欢迎您积极地将方法实现的 Java 脚本发送至 张柳彬 suranyi.sysu@gmail.com,我们将在测试后加入 GBC 的更新版本中。
基准测试
数据压缩性能
我们在 UKBB-exome-chr1(包含 469,835 受试者的 1,890,165 个变异位点)上实施了 GBC 与 BGT (Heng Li, 2016)、GTShark (Sebastian Deorowicz, 2019)、Genozip (Divon Lan et al., 2020) 和 BCFTools (Heng Li, 2010) 在基因型压缩性能上比较。
软件 | 压缩存档大小 [GB] | 压缩时间 [hour] | 解压时间 [hour] |
---|---|---|---|
GBC | 11.598 | 3.558 | 2.732 |
BGT | 32.073 | 18.810 | 8.975 |
GTShark | 9.886 | 6.230 | 9.005 |
Genozip | 9.244 | 10.620 | 17.694 |
BCFTools | 25.682 | 8.990 | 6.467 |
Notes:
- 与 GBC 类似提供快速访问功能的 GTC (Sebastian Deorowicz, 2018)、PBWT (Richard Durbin, 2014) 无法为此数据集构建压缩存档(GTC 压缩时间 > 2 个月;PBWT 内存开销 > 100 GB)。
- 所有的软件压缩与解压都工作在 2 线程下(如果可能)。对于不支持并行解压为 BGZF 格式的工具,我们对标准输出的 VCF 文本信息使用管道和重定向进行处理
| bgzip -c -l 5 > $output
。- 在本实验中,通过与第 86920 号申请的合作,从 UK Biobank 获取了全外显子组基因型。研究人员在向 UK Biobank 申请后可以获得数据。这些基因型首先使用 GBC 的默认参数进行处理(包含基因型和位点的质量控制,这些质控参数遵循官方指南和 KGGSeq 的实践经验进行设置),以剔除非基因型数据,之后重新转换为 VCF 格式供所有软件进行测试。
数据访问性能
使用上述构建的压缩存档分别进行提取指定个数的样本、按照坐标区间提取位点、按照指定的坐标提取位点、按照指定等位基因频数进行变异位点过滤四项性能测试,结果如下: