构建索引
GTB 索引用于标记每个染色体的坐标范围及指针范围,用于快速判断相应的 GTB/CCF 文件是否有序及定位请求数据所在的指针范围。使用以下指令为 GTB 文件构建索引:
java -jar gbc.jar index <input> [output] [options]
索引文件在 GTB 的各个工具集中并不是强制要求的,因为 GTB 格式坐标读取的速度非常快(读取全基因组的坐标通常可以在 2 秒内完成)。但对于广泛的坐标类型数据库(非 VCF 格式)、坐标区间类型数据库(例如转录本信息),构建索引有助于快速判断该文件是否为“坐标有序”,以及与 GTB 文件形成统一的访问接口。具体而言,常规的 GTB 文件因为坐标在染色体水平是有序的,检索指定的坐标时只需要在确定的范围内搜索,而对于 CCF 格式的文件,索引能够帮助 GBC 程序快速找到搜索截断点。
GTB 索引的染色体标签遵从染色体声明规范,非人类基因组的 GTB 文件构建索引时需要指定相应的染色体声明文件。
[!NOTE|label:示例程序 I|style:callout]
为 1000GP3-EAS-chr4 构建索引:
# 下载文件 wget https://pmglab.top/gbc/download/1kg.phase3.v5.shapeit2.eas.hg19.chr4.gtb # 在终端直接运行 java -jar gbc.jar index 1kg.phase3.v5.shapeit2.eas.hg19.chr4.gtb # 使用 docker 运行 docker run -v `pwd`:`pwd` -w `pwd` --rm -it -m 4g gbc \ index 1kg.phase3.v5.shapeit2.eas.hg19.chr4.gtb
终端输出如下信息:
2023-04-02 08:52:40 INFO [main] GBC - Command Line Interface Succeeded to build index for 1kg.phase3.v5.shapeit2.eas.hg19.chr4.gtb 2023-04-02 08:52:40 INFO [main] GBC - Command Line Interface Total Processing time: 0.837 s ##Source=1kg.phase3.v5.shapeit2.eas.hg19.chr4.gtb ##SourceFileSize=31.340 MB ##SourceLastModifiedTime=2023/04/01 03:17:15 #CHROM POS POINTER chr4 [10006, 191043882] [0, 5732585)
程序参数
语法: index <input> [options]
Java-API: edu.sysu.pmglab.gbc.GTBIndexer
关于: 为坐标有序的 GTB/CCF 文件构建染色体水平的索引.
参数:
--output,-o 设置输出文件.
格式: --output <file>
--chromosome 指定染色体标签文件.
格式: --chromosome <file>
--threads,-t 设置并行线程数.
默认值: 4
格式: --threads <int>
--coordinate-field,-c 设置识别为基因组坐标的字段 (Chromosome 和 Position).
默认值: CHROM,POS
格式: --coordinate-field <CHROM>,<POS>
--position-type,-p 设置坐标类型.
默认值: 1_based
格式: --position-type <string> ([0_based/1_based] or [0/1])
API 工具
管理索引的 API 工具是 edu.sysu.pmglab.gbc.GTBIndexer 类,它提供判断文件是否包含指定的染色体、指定染色体的坐标范围、指定染色体的指针范围等方法。构建和加载索引文件的 API 工具是 edu.sysu.pmglab.gbc.GTBIndexer.Builder。如下示例构造 GTB 文件的索引:
GTBIndexer.Builder.of("/Users/suranyi/project/GBC/GBC-stable-1.0/docs/web-docs/1kg.phase3.v5.shapeit2.eas.hg19.chr4.gtb")
.build();
对于 CCF 格式的数据库文件,使用 .setCoordinateFields
设置识别为基因组坐标的字段,使用 .mapRecordToVariant
将 CCF 记录映射到变异位点,以实现为更广泛的数据文件构建索引。