染色体标签声明

与多数使用染色体的名称(字符串格式,如 "chr1")或染色体索引(整数)作为染色体的标记不同,GBC 通过全局静态类 Chromosome 声明染色体。GBC 内置了人类基因组的染色体标签声明规则(见下表)。在该染色体标签声明规则下,所有的整数被识别为染色体的索引,从 0 到 24 依次关联到 chr1 到 chrUn。在同一行中,任意的可选染色体名及其索引都被识别为同一个实体,使用相同地址的染色体对象(Java 内存对象)进行表示。

在染色体标签声明规则文件中,simpleNamefullName 是强制的字段,alternativeNames 是可选字段。染色体水平的其他参数信息(例如染色体的长度、是否为性染色体等)也可以使用 TAB 分隔的形式创建新列储存。对于其他补充的字段信息,在 Java 中使用 chromosome.getProperty(String fieldName) 读取其参数。

灵活的染色体标签声明规则允许用户根据自己的研究需要进行扩展,为染色体添加属性信息或增加染色体水平的属性。

#simpleName fullName alternativeNames
1 chr1 Chr1,CHR1,CM000663.1,CM000663.2,NC_000001.10,NC_000001.11
2 chr2 Chr2,CHR2,CM000664.1,CM000664.2,NC_000002.11,NC_000002.12
3 chr3 Chr3,CHR3,CM000665.1,CM000665.2,NC_000003.11,NC_000003.12
4 chr4 Chr4,CHR4,CM000666.1,CM000666.2,NC_000004.11,NC_000004.12
5 chr5 Chr5,CHR5,CM000667.1,CM000667.2,NC_000005.9,NC_000005.10
6 chr6 Chr6,CHR6,CM000668.1,CM000668.2,NC_000006.11,NC_000006.12
7 chr7 Chr7,CHR7,CM000669.1,CM000669.2,NC_000007.13,NC_000007.14
8 chr8 Chr8,CHR8,CM000670.1,CM000670.2,NC_000008.10,NC_000008.11
9 chr9 Chr9,CHR9,CM000671.1,CM000671.2,NC_000009.11,NC_000009.12
10 chr10 Chr10,CHR10,CM000672.1,CM000672.2,NC_000010.10,NC_000010.11
11 chr11 Chr11,CHR11,CM000673.1,CM000673.2,NC_000011.9,NC_000011.10
12 chr12 Chr12,CHR12,CM000674.1,CM000674.2,NC_000012.11,NC_000012.12
13 chr13 Chr13,CHR13,CM000675.1,CM000675.2,NC_000013.10,NC_000013.11
14 chr14 Chr14,CHR14,CM000676.1,CM000676.2,NC_000014.8,NC_000014.9
15 chr15 Chr15,CHR15,CM000677.1,CM000677.2,NC_000015.9,NC_000015.10
16 chr16 Chr16,CHR16,CM000678.1,CM000678.2,NC_000016.9,NC_000016.10
17 chr17 Chr17,CHR17,CM000679.1,CM000679.2,NC_000017.10,NC_000017.11
18 chr18 Chr18,CHR18,CM000680.1,CM000680.2,NC_000018.9,NC_000018.10
19 chr19 Chr19,CHR19,CM000681.1,CM000681.2,NC_000019.9,NC_000019.10
20 chr20 Chr20,CHR20,CM000682.1,CM000682.2,NC_000020.10,NC_000020.11
21 chr21 Chr21,CHR21,CM000683.1,CM000683.2,NC_000021.8,NC_000021.9
22 chr22 Chr22,CHR22,CM000684.1,CM000684.2,NC_000022.10,NC_000022.11
X chrX ChrX,CHRX,x,chrx,Chrx,CHRx,CM000685.1,CM000685.2,NC_000023.10,NC_000023.11
Y chrY ChrY,CHRY,y,chry,Chry,CHRy,CM000686.1,CM000686.2,NC_000024.9,NC_000024.10
M chrM MT,chrMT,ChrM,CHRM,ChrMT,CHRMT,m,chrm,mt,chrmt,CHRm,Chrmt,NC_001807.4,J01415.2,NC_012920.1
Un chrUn ChrUn,CHRUn

自定义染色体标签声明文件

对于非人类的基因组,GBC 需要一个不同的染色体标签声明文件。以狗为例,在 dog10K 网站中下载 VCF 文件:

wget -c -O dogGenomeSnp.vcf.gz ftp://download.big.ac.cn/dogsd/dog10k/variations/58indiv.unifiedgenotyper.recalibrated_95.5_filtered.pass_snp.vcf.gz -t 0 -T 60

该文件包含染色体 chr1~chr38 和 chrX,制作对应的染色体标签声明文件文本格式,使用如下指令构建染色体标签声明文件的二进制格式:

# 下载狗的染色体标签声明文件
wget https://pmglab.top/gbc/download/dog-chromosome.txt

# 构建染色体标签声明文件, 在终端直接运行
java -jar gbc.jar chromosome --build dog-chromosome.txt

# 构建染色体标签声明文件, 使用 docker 运行
docker run -v `pwd`:`pwd` -w `pwd` --rm -it -m 4g gbc \
chromosome --build dog-chromosome.txt

为该 VCF 文件构建 GTB 存档:

# 在终端直接运行
java -jar gbc.jar chromosome vcf2gtb ./dogGenomeSnp.vcf.gz --chromosome ./dog-chromosome.txt.ccf

# 使用 docker 运行
docker run -v `pwd`:`pwd` -w `pwd` --rm -it -m 4g gbc \
vcf2gtb ./dogGenomeSnp.vcf.gz --chromosome ./dog-chromosome.txt.ccf

使用 GTBIndexer 为该文件构建坐标索引:

# 在终端直接运行
java -jar gbc.jar index ./dogGenomeSnp.gtb

# 使用 docker 运行
docker run -v `pwd`:`pwd` -w `pwd` --rm -it -m 4g gbc \
index ./dogGenomeSnp.gtb

终端输出如下信息:

dogGenomeSnpIndexer

程序参数

语法: chromosome [options]
关于: 构建染色体标签声明文件.
参数:
  --build  构建染色体标签声明文件.
           格式: --build <file> (Exists,File)
  --view   访问染色体标签声明文件.
           格式: --view <file> (Exists,File)

---------------------染色体标签文件格式示例----------------------
#simpleName    fullName    alternativeNames
1    chr1    Chr1,CHR1,CM000663.1,CM000663.2,NC_000001.10,NC_000001.11
2    chr2    Chr2,CHR2,CM000664.1,CM000664.2,NC_000002.11,NC_000002.12
3    chr3    Chr3,CHR3,CM000665.1,CM000665.2,NC_000003.11,NC_000003.12
4    chr4    Chr4,CHR4,CM000666.1,CM000666.2,NC_000004.11,NC_000004.12
5    chr5    Chr5,CHR5,CM000667.1,CM000667.2,NC_000005.9,NC_000005.10
6    chr6    Chr6,CHR6,CM000668.1,CM000668.2,NC_000006.11,NC_000006.12
7    chr7    Chr7,CHR7,CM000669.1,CM000669.2,NC_000007.13,NC_000007.14
8    chr8    Chr8,CHR8,CM000670.1,CM000670.2,NC_000008.10,NC_000008.11
9    chr9    Chr9,CHR9,CM000671.1,CM000671.2,NC_000009.11,NC_000009.12
10    chr10    Chr10,CHR10,CM000672.1,CM000672.2,NC_000010.10,NC_000010.11
11    chr11    Chr11,CHR11,CM000673.1,CM000673.2,NC_000011.9,NC_000011.10
12    chr12    Chr12,CHR12,CM000674.1,CM000674.2,NC_000012.11,NC_000012.12
13    chr13    Chr13,CHR13,CM000675.1,CM000675.2,NC_000013.10,NC_000013.11
14    chr14    Chr14,CHR14,CM000676.1,CM000676.2,NC_000014.8,NC_000014.9
15    chr15    Chr15,CHR15,CM000677.1,CM000677.2,NC_000015.9,NC_000015.10
16    chr16    Chr16,CHR16,CM000678.1,CM000678.2,NC_000016.9,NC_000016.10
17    chr17    Chr17,CHR17,CM000679.1,CM000679.2,NC_000017.10,NC_000017.11
18    chr18    Chr18,CHR18,CM000680.1,CM000680.2,NC_000018.9,NC_000018.10
19    chr19    Chr19,CHR19,CM000681.1,CM000681.2,NC_000019.9,NC_000019.10
20    chr20    Chr20,CHR20,CM000682.1,CM000682.2,NC_000020.10,NC_000020.11
21    chr21    Chr21,CHR21,CM000683.1,CM000683.2,NC_000021.8,NC_000021.9
22    chr22    Chr22,CHR22,CM000684.1,CM000684.2,NC_000022.10,NC_000022.11
X    chrX    ChrX,CHRX,x,chrx,Chrx,CHRx,CM000685.1,CM000685.2,NC_000023.10,NC_000023.11
Y    chrY    ChrY,CHRY,y,chry,Chry,CHRy,CM000686.1,CM000686.2,NC_000024.9,NC_000024.10
M    chrM    MT,chrMT,ChrM,CHRM,ChrMT,CHRMT,m,chrm,mt,chrmt,CHRm,Chrmt,NC_001807.4,J01415.2,NC_012920.1
Un    chrUn    ChrUn,CHRUn

API 工具

管理染色体对象的 API 工具是 edu.sysu.pmglab.gbc.variant.Chromosome 类,它支持直接进行重定义:

// 清除原有的染色体定义
Chromosome.clear();

// 新建染色体标签
Chromosome chromosome1 = Chromosome.addChromosome(new Chromosome("1", "chr1"));

// 设置染色体属性
chromosome1.setProperty("length", 249250621);

// 获取染色体属性
chromosome1.getProperty("length");
Copyright ©张柳彬 all right reserved文档修订时间: 2023-04-10 18:01:17

results matching ""

    No results matching ""