【GWAS】GAPIT使用教程
GAPIT(genome association and prediction integrated tool)华盛顿大学等于 2012 年开发的软件(软件主页:http://www.zzlab.net/GAPIT/)。GAPIT 是个.R
文件,一共 16317 行,可以在多平台使用。截至 2020-03-27,被引了 853 次。引用的文章中不乏 Nature genetics、Nature Biotechnology 等。
GAPIT 的使用真的是超级简单,一般只需要表型文件和基因型文件即可,一行代码即可完成所有的分析,自动生成所有结果文件。
简介
GAPIT 使用 EMMA(高效混合模型关联)、CMLM(混合线性模型)和 P3D(population parameters previously determined)完成 GWAS 分析和基因组预测。GAPIT 能够快速完成 1000,000SNP×10,000 样本的分析。在最短的时间内用最少的代码完成大数据集的分析。GAPIT 支持多种形式的基因型数据,能够将基因型数据拆分成多个文件,减少计算压力。GAPIT 导出的结果包括.csv
格式的表和.pdf
格式的图。
安装
在使用 GAPIT 之前需要安装依赖包:
if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager")BiocManager::install("multtest")install.packages("gplots")install.packages("LDheatmap")install.packages("genetics")install.packages("ape")install.packages("EMMREML")install.packages("scatterplot3d") #The downloaded link at: http://cran.r-project.org/package=scatterplot3d
在官网上 GAPIT 是一个.txt
文件,直接 source 即可:
source("http://zzlab.net/GAPIT/gapit_functions.txt")
最后需要 source EMMA 的代码:
source("http://zzlab.net/GAPIT/emma.txt")
为了方便,可以直接将这两个文件保存成了.R
格式的文件,在往后使用的时候就不用考虑网速等因素的影响了。
输入文件
官方推荐所有的输入文件都保存成.txt
格式的文件,以 Tab
进行分割。
表型文件
官方给出的示例如下:
输入的表型文件的第一列是样品名称,往后的列是不同的表型数据,表型数据中有缺失值的需要用 NaN 或 NA 进行填充。读入的表型文件是需要有表头的。
读入表型文件示例:
myY <- read.table("mdp_traits.txt", head = TRUE)
基因型文件
基因型文件对 GWAS 是必须的,如果是基因组预测,则不需要基因型文件。GAPIT 接受多种格式的基因型文件。
HapMap
SNP 信息常用 HapMap 格式的文件进行存储。其中前 11 列是 SNP 的信息,往后的列是样品的 SNP 信息。前 11 列中必须有的列是:rs,SNP 编号;chrom,SNP 所在染色体信息;pos,SNP 位置信息。这三列是必须有的,剩下的 8 列可以用 NA 进行填充。基因型缺失的数据需要用 NN 或 N 进行填充。需要注意的是这种基因型文件读入 R 时, 是不能将第一行作为表头的。
数字格式
GAPIT 也可以使用数字型的基因型文件。行是样品,列是 SNP 数据。纯合子用 0
和 2
表示,杂合子用 1
表示。但是这个表里面只包含了样品的 SNP 数据,并没有 SMP 的信息数据,所以需要另外一个文件来存储 SNP 的详细信息。
Kinship
Kinship 矩阵比较特殊的是第一列是样品信息,但是没有表头。
协变量
可以是种群结构的 Q 矩阵。比如可以是种群数据的 PCA 值。同样第一列是样品名称,后面就是对于的协变量的数据。
输出文件
GAPIT 的输出文件包括.csv
的表格和.pdf
的图。
GAPIT 的详细参数
下表就是 GAPIT 的参数及参数定义等信息。
示例
次处只演示最简单的使用情况,其他使用情况请参照官方文档或查看 GitHub:
# 下载好的GAPIT文件进行source#source("http://zzlab.net/GAPIT/gapit_functions.txt")source('code/gapit_functions.R')# 下载好的EMMA文件进行source#source("http://zzlab.net/GAPIT/emma.txt")source('code/emma.R')# A Basic Scenario#Step 1: 读入表型文件和基因型文件myY <- read.table("data/mdp_traits.txt", head = TRUE)myG <- read.table("data/mdp_genotype_test.hmp.txt" , head = FALSE)#Step 2: 运行GAPITsetwd('results/A_Basic_Scenario/') # 设置结果保存的目录myGAPIT <- GAPIT( Y = myY, G = myG, PCA.total = 3# 展示PCA的主成分数量)setwd('../../') # 返回到上上级目录,方便其他分析
结果解读
如果是进行 GWAS 分析,不同的性状会生成的对应的 GWAS 结果文件。通常只关注几个结果图表:性状分布情况、PCA 结果、曼哈顿图、Q-Q 图等。
表型数据展示
PCA 图
GAPIT 结果提供了二维和三维的 PCA 图。
曼哈顿图
GAPIT 提供的曼哈顿图不是那么好看,可以自己重新进行绘制。
res = read.csv('results/A_Basic_Scenario/GAPIT.MLM.EarHT.GWAS.Results.csv', header = T)colnames(res)[1:4] = c('SNP','CHR','BP','P')library(qqman)manhattan(res[,1:4],col = c("blue","orange"), main="Manhattan plot", annotatePval = .01, suggestiveline = -log10(2e-03), genomewideline = -log10(5e-04))
Q-Q 图
示例数据、代码等下载地址:https://github.com/lixiang117423/PLANTOMIX/tree/master/20200330%E3%80%90GWAS%E3%80%91GAPIT%E7%9A%84%E4%BD%BF%E7%94%A8