gtool:操作genotype data的利器
- 2019 年 12 月 19 日
- 筆記
有很多的软件可以进行GWAS分析,不同软件要求的输入文件格式不尽相同,最常见的文件格式就是plink中的ped/map文件,除此之外还有gen/sample文件格式。
分型文件保存的是样本中SNP位点的分型结果,有样本和SNP分型结果两类信息,首先来看下ped/map系统,ped文件主要用于记录样本的分型结果和其他的表型信息,内容示意如下
每列之间用空格分隔,第一列为样本对应的family id, 第二列为样本的id, 第三列表示父亲样本的id, 第四列表示母亲样本的id, 第五列表示性别,1是男性,2是女性,第六列表示样本的表型信息,没有就用0填充,后面的每一列代表一个snp位点的分型结果。
map文件用于记录SNP位点的信息,内容如下所示
每列之间用空格分隔,第一列为snp位点所在的染色体名称,第二列为snp id,第三列是snp位点的连锁距离,没有的话用0表示,第四列为snp位点在染色体上的位置。
在ped/map文件系统中,ped文件表示样本的家系关系和分型结果,map文件表示snp位点的metadta, 再来看下gen/sample系统,gen文件的内容示意如下
每列之间用空格分隔,第一列为snp位点所在的染色体名称,第二列为snp id,第三列为染色体的位置,第四列为不同样本中该位点的分型结果,0代表ref allle, 1代表alt allel, 每两列对应一个样本。sample文件内容如下所示
前两行内容固定,后续每一行代表一个样本,,miss表示缺失分型结果的位点比例,以上只是该文件最基本内容的展示,还可以有更多的列,用来描述样本的表型信息。gen/sample系统的命名更加直观,gen就是genotype的简写,表示SNP位点分型的结果,sample则表示样本的信息。
在实际操作中,我们经常要做的就是格式转换,文件格式的转换是非常繁琐却又必须要掌握的一项技能,gtool是一款专门针对genotype data数据进行格式化的小工具,网址如下
https://www.well.ox.ac.uk/~cfreeman/software/gwas/gtool.html
经典的应用场景如下
- 从大的分型结果中提取子集
- 从ped格式转换成gen格式
- 从gen格式转换成ped格式
- 合并多个分型结果
- 对分型结果的正负链进行校正
每个功能对应了一个运行模式,具体用法如下
1. Subset
从分型结果中提取子集,对样本和SNP进行筛选,对应的运行模式为-S
, 基本用法如下
gtool -S --g input.gen --s input.sample --og filter.gen --os filter.sample --sample_id filter.sample.id.txt --inclusion filter.snp.id.txt
-g
和-s
指定输入的genotype data, --og
和--os
指定输出的genotype data, --sample
指定需要保留的样本id, --inclusion
指定需要保留的snp id。
2. PED convert to GEN
将ped格式转换为gen格式,对应的运行模式为-P
, 基本用法如下
gtool -P --ped input.ped --map input.map --og out.gen --os out.sample
3. GEN convert to PED
将gen格式转换为ped格式,对应的运行模式为-G
, 基本用法如下
gtool -G --g input.gen --s input.sample --ped out.ped --map out.map
4. Merge
合并多个分型结果,对应的运行模式为-M
, 基本用法如下
gtool -M --g input1.gen input2.gen --s input1.sample input2.sample --log merge.log
5. Orient
将SNP位点统一调整成正链,对应的运行模式为-O
, 基本用法如下
gtool -O --g input.gen --strand input.strand --og output.gen --log orient.log
--strand
参数指定一个文件,描述SNP位点的方向,是一个空格分隔的两列文件,第一列为SNP在染色体上的位置,第二列为对应的正负链信息,内容示意如下
对于负链的SNP位点会进行反转,在显示allel对应的碱基时以正链进行展示。以上就是gtool的基本用法,更多细节参数请参考官方文档。