我的GWAS学习笔记

上个月中旬,出于对GWAS的好奇,我参加了一个培训班,之后又花了一周的时间来整理听课笔记,感觉现在对GWAS已经有了一个比较全面的认识。

在call SNP之后,做GWAS之前,需要对数据做些什么?我前面的两篇笔记做了一些说明:
用Beagle做基因型填充
基因型填充之后如何过滤

0.小白眼中的GWAS

第一次听说GWAS是在统计课上,当时的认识是这样的:依次对成千上万个SNP位点,讨论不同基因型在有特定性状和没有特定性状的群体中的比例,做统计检验看是否有显著差异。比如,在某个位点上AA基因型在患病人群中存在的比例是90%,在健康人群中的比例为10%,卡方测验表明有显著差异,于是就推测该位点与该疾病关联。

现在看来,我上面这种理解应该是GWAS最简单的理解。实际情况比这个复杂很多,因此才发展出了很多模型和算法。

1.GWAS模型

群体结构(Q矩阵或主成分分析)
全基因组关联分析的理论基础是SNP标记与目的基因关联(LD),这里的SNP只是作为标记,本身是否有生物学意义还不知道。研究的群体可能内部还存在分层,有一些基因的频率在不同亚群之间就是不一样,LD也不相同。这些都需要校正。考虑了群体结构的模型称为一般线性模型(GLM)

个体间亲缘关系矩阵(Kinship)
用来校正群体内复杂的亲缘关系。用Kinship可以求得一个加性遗传效应值/育种值,以此作为随机效应。考虑了群体结构和Kinship的模型就是混合线性模型MLM

2.做一个GWAS分析

软件安装
Microsoft R Open
https://mran.microsoft.com/download
微软开发的R的增强版,在矩阵运算上要快很多,具体介绍见Microsoft R Open 简介。

MVP
https://github.com/XiaoleiLiuBio/rMVP
一款很好用的GWAS分析软件
使用体验:整合了多种模型和算法;应对大数据(并行计算)更快;内存使用高效;出图美观;使用简单(基本上两步就可以得到结果;用vcf就可以,不需要转换各种格式)

# 安装 ----------------------------------------------------------------------
a <- installed.packages()
b <- a[,"Package"]
pkg <- setdiff(c("RcppEigen", "RcppProgress", "RcppArmadillo", "bigmemory"), b)
install.packages(pkg)
#这里批量安装R包的方法可以借鉴

setwd("E:\\Computational_Biologist\\生信积累\\培训\\GWAS.华农.2019.7\\软件包")
#getwd()
install.packages("rMVP_0.99.14.1.tar.gz", repos = NULL)
setwd("E:\\Computational_Biologist\\生信积累\\培训\\GWAS.华农.2019.7\\GWAS_test")
#这里采用github上面说明的第二种方法来安装

必须提供的有表型、基因型数据
亲缘关系矩阵、主成分作为选项,可提供,也可不提供程序可以自己算。如果只想算这两个,可以用函数MVP.Data.Kin、MVP.Data.PC

##Step1_a: 数据格式转换
#如果是从vcf文件开始该如何导入?
#假如我有test_imp_qc.vcf和test.phe两个文件,分别表示基因型文件和表型文件,其中表型文件第一列是样本ID,第二列是表型观测值
MVP.Data(filePhe = "test.phe", fileVCF = "test_imp_qc.vcf", out = "mytest")
#会生成5个文件
dir()         
[1] "mytest.geno.bin"  "mytest.geno.desc" "mytest.geno.ind"  "mytest.geno.map" 
[5] "mytest.phe"

##Step1_b: 读取转换好的数据
pheno <- read.table("mytest.phe", header = TRUE)       
#第一列是样本ID,其他列是性状的观测值
geno <- attach.big.matrix("mytest.geno.desc")         
#rMVP使用的基因型文件是 .geno.desc 和 .geno.bin 两个文件一组,前者储存的是元数据,后者是以二进制格式储存的基因型数据
map <- read.table("mytest.geno.map", header = TRUE)  
#3列,分别为SNP编号、chr、position

##Step2: 进行分析
mytest_mvp <- MVP(phe=pheno, geno=geno, map=map, method=c("GLM", "MLM", "FarmCPU"))
#自动出图,形式各样,总有一款适合你。这也太厉害了吧!
#而且返回了画图用到的数据表格,利用提供的单个的绘图函数,可以对图形做一些精修;当然也能用别的软件来再次画图;
str(mytest_mvp)

#我的发现:

#MVP()命令不能在Windows下面的RStudio运行,说无法生成矩阵,可以在MRO上面运行。我猜测RStudio上面不能运行大计算量的任务

#Linux下也能用MVP,需要预先安装MRO。参考前面提到的,"Microsoft R Open 简介",即用管理员的conda(自己的也可以)创建一个自己的conda环境,保存在~/.conda/envs/mro_env下面,切换环境,conda安装mro,进入mro,然后安装mvp,github上面两种安装方法都可以。

这款软件是这次培训的老师开发的,刚做完,还没有发文章,不过github上面已经有近80个star了,确实很好用

你可能感兴趣的:(我的GWAS学习笔记)