我的GWAS学习笔记

作者: TOP生物信息 | 来源:发表于2019-08-03 20:29 被阅读100次

    上个月中旬,出于对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学习笔记

        本文链接:https://www.haomeiwen.com/subject/tbxsdctx.html