zoukankan      html  css  js  c++  java
  • GWAS与GS模型介绍与比较


    最近看了不少统计基因组方面的资料,以为懂了,其实懵逼。实在是因为统计学基础太菜,似懂非懂,似是而非。记录下自己的理解,求轻喷。

    1.GWAS模型

    GWAS是表型和基因型之间的相关性分析,然而这个相关性用什么统计方法?

    GWAS模型的发展:
    image.png

    1.1卡方检验

    实际比例是否符合预期分离比例,若不符合则认为基因与表型相关。计算量大。

    1.2 相关性系数的t检验

    首先计算基因和表型之间的相关性(如pearson),再经过r换算为t值,进行t检验。计算量小。

    1.3 一般线性模型GLM

    直接将基因型x和表型y做回归拟合,即y=xb+e。
    image.png
    其中y是表型,x是SNP、Q矩阵和总均值的一个综合变量,e是残差。

    1.4 混合线性模型MLM

    GLM模型中,如果两个表型差异很大,但群体本身还含有其他的遗传差异(如地域等),则那些与该表型无关的遗传差异也会影响到相关性。MLM模型可以把群体结构的影响设为协方差,把这种位点校正掉。此外,材料间的公共祖先关系也会导致非连锁相关,可加入亲缘关系矩阵作为随机效应来矫正,即y=Xb+Zu+e,Z为亲缘关系矩阵,u为个体育种值,其他同GLM。
    image.png

    GLM是固定效应模型。MLM除了固定效应,还加入了随机效应,即亲缘关系矩阵。所谓的固定效应是有限水平的,易控制的,关心的是水平上的影响;而随机效应有很多水平,关心的是水平背后的群体(如均值,方差等)。
    image.png
    image.png

    有种只可意会,不可言传的感觉。我百度了下,认为它解释的还可以:随机效应模型

    1.5 压缩混合线性模型CMLM

    MLM的矫正过于严格,会把一些真实相关的SNP标记也过滤掉,因此CMLM模型目的是重新检测到那些假阴性SNP标记。

    方法是根据个体遗传关系的相似性将其分组,然后将压缩后的组当做协变量,替换原来的个体。组内个体的亲缘关系都是一样的。

    image.png

    1.6 SUPER

    问题来了,CMLM应该选择哪些SNP来计算亲缘关系矩阵,答案是使用所有跟表型相关的SNP(且排除了检测到的那个SNP)来构建亲缘关系矩阵的效果最好,这就是SUPER(Settlement of Kinship Under Progressively Exclusive Relationship, 逐步排他性亲缘关系解决方案)。
    QTN(数量性状SNP),即控制QTL的SNP。
    image.png

    1.7 FarmCPU

    GWAS的瓶颈一是计算速度,二是统计准确性。FarmCPU能提升速度和准确性,首先把随机效应的亲缘关系矩阵(Kinship)转换为固定效应的关联SNP矩阵(S矩阵/QTNs矩阵),使计算速度大大加快;其次利用QTN矩阵当做协变量,重新做关联分析,提升准确率。

    SUPER和FarmCPU都是把bin(一段区域,比如10kb)当做SNP单位,而不是单个SNP。

    image.png

    Blink是进阶版GWAS,也是为提高速度和准确率。如下图所示:先用上方的GLM模型获得QTNs,然后用右侧的GLM以QTNs当做协变量进行SNP检测,得到的SNP根据LD信息确定QTNs的信息(根据染色体实际位置来选择对应的bin大小),进而利用左侧的GLM以BIC(Bayesian information criterion)策略进行QTNs准确性检测,排除假设错误的部分,保留真实的QTNs,不断循环这一过程,直到检测到所有关联SNP(即QTNs)。
    image.png

    模型总结:
    这里是以张志武老师《统计基因组学》课程整理,所以重点介绍的是他们课题组开发的模型。
    image.png

    GWAS常用软件:

    • Plink
    • Tassel
    • GAPIT
    • Emmax
    • GEMMA
    • GCTA

    2.GS模型

    GS模型的发展:
    image.png
    河流左侧是以个体为单位进行预测,包含gBLUP,ssBLUP,sBLUP和cBLUP等。
    河流右侧是以SNP效应值为单位进行预测,包含rrBLUP,BayesA,B,C,Cπ,Bayes LASSO等。

    2.1 MAS

    当控制表型的基因数量比较少,同时遗传力比较高的性状,可以用少量标记对表型进行很好的预测。

    2.2 GBLUP

    利用个体亲缘关系构建协变量矩阵,然后根据个体育种值对表型进行预测。
    image.png

    2.3 GBLUP的扩展(ssBLUP,sBLUP,cBLUP)

    • ssBLUP
      构建H矩阵求解,动物中居多,不适合植物,不多介绍,可看之前的综述文献推文。
      image.png

    • sBLUP和cBLUP
      gBLUP(图A)是利用所有建模群体的基因型(GR1-GR5)对试验群体(GI1-GI4)进行预测,这个过程中每个个体间都有相互关系。
      Compression策略(图B)是将个体进行分组,把9个个体(建模群体和试验群体)分成三组,然后对不同组分别进行预测。其中把标记进行压缩,以Bin为单位进行预测的方法和GWAS的SUPER类似,所以叫sBLUP。另外以个体分组的策略跟GWAS的CMLM类似,因此叫cBLUP。
      可以理解为cBLUP对个体进行降维,sBLUP对标记进行降维。
      image.png

    2.4 rrBLUP

    如果把GBLUP中构建协变量的个体亲缘关系矩阵换成SNP标记构成的关系矩阵,构建模型,然后对个体进行预测,就是rrBLUP的思路。

    也就是把模型y=Xb+Zu+e变为y=Xb+Ms+e:
    其中M是SNP构建的矩阵(替换个体亲缘关系矩阵Z),s就是标记(替换个体u)。
    image.png

    2.5 rrBLUP的扩展(Bayes类)

    rrBLUP假设所有标记效应符合一个正态分布,同时标记效应的方差(σ^2)相等,这可能与基因的实际效应值不相符。

    这时引入了贝叶斯的分析方法:预期控制表型的基因数目未知,基因效应值的分布未知。根据预先假定基因的数量和基因效应值分布的不同,建立了不同的贝叶斯模型,如BayesianA,B,C,Cπ,LASSO等。

    其差别主要在于:标记效应是否符合相同分布;是否所有标记都有效应值;标记效应方差服从什么分布。

    image.png

    不同贝叶斯模型的假设和分布可参考之前的推文:[# 【GS文献】基因组选择技术在农业动物育种中的应用](https://www.cnblogs.com/jessepeng/p/14139862.html)

    用图形直观表示不同的贝叶斯方法,下图中π表示没有标记效应的比例。

    image.png

    岭回归的所有标记效应方差都相等;贝叶斯A是所有标记都有效应方差,但不同标记有不同的效应方差;贝叶斯B是部分标记有效应方差,同时具有差异;贝叶斯Cπ是部分标记效应有方差,同时所有方差都相等。

    2.6 BLUP vs Bayes

    • GS模型理论经历的一些发展:
      image.png

    • 基于个体的BLUP
      image.png

    • 基于标记的BLUP
      即Z矩阵替换为M矩阵,个体u替换为标记s。
      image.png

    • rrBLUP vs GBLUP
      image.png

    • Bayes vs BLUP
      image.png

    • 模型性能比较
      模型差异很大,需要测试多个模型选择,涉及怎么选模型的问题。可根据遗传高低和控制基因多少,使用以下策略选择进行分析。
      image.png
      以个体为预测单位的模型所需时间更少。
      image.png

    GS常用免费开源R包:

    • rrBLUP
    • BAGS
    • BLR
    • BGLR
    • GAPIT

    3.GWAS和GS模型比较

    如果GWAS使用的是MLM模型及其进阶版,那么它和GS用的其实是同一模型。
    image.png

    只是GWAS的重点在挖掘显著性位点,关注固定效应Xb,加入随机效应只是为了控制与表型显著相关位点的假阳性;而GS重点在计算育种值,关注随机效应Zu,加入固定效应是为了控制不同个体相同的部分。

    两种方法虽然模型一样,但应用方向不同,所以视为不同技术,实际上是一回事儿。我们可以将二者结合起来,比如先用GWAS找出显著位点,再加入GS的固定效应中,可能会使预测的准确性更高。或者是如果标记数目太多,我们不想过滤掉一些无关标记,就可以结合GWAS的结果来过滤。

    在GS和GWAS的结合方面,也已经有了一些模型和算法,如SSGBLUP,GS + de novo GWAS,GS + historical GWAS等。

    致谢:
    感谢张志武老师提供的最新教程以及开发的工具,感谢知乎张帆的课程总结。教程PPT参考:[## Statistical Genomics: 2020](http://zzlab.net/StaGen/2020/index.html)

    参考资料:
    https://zhuanlan.zhihu.com/p/138185705
    https://www.jianshu.com/p/2006b4aaf729

  • 相关阅读:
    C语言实现时间差、星期、天数算日期(转)
    windbg 源码调试设置
    Windbg调试命令详解
    突破session 0隔离 和 劫持exe注入(转自梦无极)
    debug : StartService failed, getlasterror = 0x7f(127) 转
    反调试技巧总结-原理和实现
    关于Win7 x64下过TP保护(内核层)(转)
    python将dict中的unicode打印成中文
    Python 获取接口数据,解析JSON,写入文件
    python提取网页中json数据
  • 原文地址:https://www.cnblogs.com/jessepeng/p/14146526.html
Copyright © 2011-2022 走看看