用GAPIT进行GWAS过程及出现问题

目录

〇、参考GAPIT网址中的说明文档

一、数据准备(以文档中的数据为例)

二、导入GAPIT(Import library and GAPIT functions run this section each time to start R)

【报错1】显示多个程辑包需要载入​编辑

【报错2】“不存在叫‘LDheatmap’这个名字的程辑包” 或 “package ‘LDheatmap’ is not available for this version of R”

三、导入文件数据

四、GWAS运行

五、结果分析


写在前面:这是我第一次跑GWAS,所以就把这个过程记录下来啦,有什么不足之处可以指出来~(也参考了一些文章,如果不可以用的话可以联系我删掉)


、参考GAPIT网址中的说明文档

https://zzlab.net/GAPIT/gapit_help_document.pdficon-default.png?t=N2N8https://zzlab.net/GAPIT/gapit_help_document.pdf


一、数据准备(以文档中的数据为例)

下载data:http://zzlab.net/GAPIT/GAPIT_Tutorial_Data.zip

(!解压缩之后的数据文件位置一定要与当前工作目录保持一致,可以用一下操作查询或更改路径)

getwd() #查看当前工作目录位置
setwd("目标路径") #如果你不想把文件放在当前目录,可以使用该命令更改路径~

二、导入GAPIT(Import library and GAPIT functions run this section each time to start R)

source("http://zzlab.net/GAPIT/GAPIT.library.R")

报错1】显示多个程辑包需要载入

--解决方法:

if(!require(gplots)) install.packages("gplots")
if(!require(LDheatmap)) install.packages("LDheatmap")
if(!require(genetics)) install.packages("genetics")
if(!require(ape)) install.packages("ape")
if(!require(compiler)) install.packages("compiler")
if(!require(grid)) install.packages("grid")
if(!require(bigmemory)) install.packages("bigmemory")
if(!require(EMMREML)) install.packages("EMMREML")
if(!require(scatterplot3d)) install.packages("scatterplot3d")
if(!require(lme4)) install.packages("lme4")
# if(!require(rgl)) install.packages("rgl")

if(!'multtest'%in% installed.packages()[,"Package"]){
	if (!requireNamespace("BiocManager", quietly = TRUE))
   install.packages("BiocManager")
   BiocManager::install("multtest")
   BiocManager::install("snpStats")
}

报错2】“不存在叫‘LDheatmap’这个名字的程辑包” 或 “package ‘LDheatmap’ is not available for this version of R”

--解决方法

install.packages("LDheatmap", repos='https://mran.microsoft.com/snapshot/2019-02-01/')
library("LDheatmap")

不报错之后重新运行一下

source("http://zzlab.net/GAPIT/GAPIT.library.R")
source("http://zzlab.net/GAPIT/gapit_functions.txt")

√ 下一步


三、导入文件数据

myY <- read.table("http://zzlab.net/GAPIT/data/mdp_traits.txt", head = TRUE) #Phenotype
myG <-read.table("mdp_genotype_test.hmp.txt", head = FALSE)
myGD=read.table(file="http://zzlab.net/GAPIT/data/mdp_numeric.txt",head=T) #Genotype Data in Numeric Format 
myGM=read.table(file="http://zzlab.net/GAPIT/data/mdp_SNP_information.txt",head=T) #Genotype Map for Numeric Format 
myKI <-read.table("KSN.txt", head = FALSE) #Kinship Matrix
myCV <-read.table("mdp_population_structure.txt", head = TRUE) #Covariate Variables

1、Phenotypic Data

格式如下,第一列必须是Taxa names,其他列是个体表型值,NaN或NA表示缺失的数据,第一行是列标签。

2、Genotypic Data

(1)Hapmap Format

存储序列数据的常用格式,其中SNP信息存储在行中,第一行包含标题标签;单元信息存储在列中,前11列显示了SNP的属性(事实上GAPIT只使用了其中3列:rs列、chrom列、pos列,分别是SNP名称、SNP染色体、SNP的碱基对(bp)位置,余下的列可以用NA填写),其余列显示了每个分类单元在每个SNP上观察到的核苷酸。

(2)Numeric Format

该格式下需要为GAPIT提供两个单独文件,一个文件包含numeric genotypic data (称为GD文件),另一个文件包含基因组上每个SNP的位置(称为GM文件)。

GD文件中纯合子用0和2表示,杂合子用1表示。0到2之间的任何数值都可以表示估算的SNP基因型。第一行是是SNP names,第一列是taxa names。如下图:

GM(genetic map)文件包含每个SNP的名称和位置。第一列是SNP id,第二列是染色体,第三列是碱基对位置

3、Kinship

亲缘矩阵文件(KI)被格式化为n × (n+1)矩阵,其中第一列是taxa name,其余是方阵对称矩阵。注意:亲缘矩阵文件的第一行不包含头文件。

4、Covariate variables

包含协变量的文件(CV)包含population structure(通常称为Q矩阵)等信息。格式与表型文件类似。第一列由taxa names组成,其余列包含协变量值。第一行由column labels组成。第一列可以标记为Taxa,其余列应该是协变量名称。


四、GWAS运行

GAPIT可使用GLM、MLM、MLMM、SUPER、FarmCPU、BLINK等模型,介绍与选择见文档。

GAPIT句法:

 GAPIT参数:

 【场景】对于umeric Genotype Format(包含GD文件与GM文件),GAPIT运行命令如下:

myGAPIT=GAPIT(
Y=myY[,c(1,2,3)], #fist column is ID
GD=myGD, #genotypic data文件
GM=myGM, #genetic map文件
PCA.total=3,
model=c("FarmCPU", "Blink"), #FarmCPU、Blink模型
Multiple_analysis=TRUE)

其余场景见文档Part 6:Tutorials


五、结果分析

1、表型分布图

 (上图为Blink模型下的EarHT性状)

2、PCA结果

 (左:2-D;右:3-D)

3、曼哈顿图

 

超过阈值的信号峰位置表示此处SNP和表型性状有着很强的相关信号,但不能直接认为这些位点就与表型显著相关的。

这是由于在基因组上引起基因位点的突变有自然突变和遗传漂变,只有自然突变是GWAS研究所关心的,要想排除遗传漂变的影响,需要通过QQ-plot图进一步观察。

(参考文章:如何理解GWAS中Manhattan plot和QQ plot所传递的信息 - 知乎

4、QQ-plot 图

该图形的左下角相关程度低位点中p value的期望值和观察值相等,说明了模型的合理性,右上角翘起来则说明找到了dpoll表型的显著关联位点。

 (对QQ-plot结果分析参考QQ-plot图 - 简书)

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值