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

1.GWAS模型

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

GWAS模型的发展:

1.1卡方检验

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

1.2 相关性系数的t检验

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

1.3 一般线性模型GLM

直接将基因型x和表型y做回归拟合,即y=xb+e。



其中y是表型,x是SNP、Q矩阵和总均值的一个综合变量,e是残差。

1.4 混合线性模型MLM

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

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



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

1.5 压缩混合线性模型CMLM

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

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

1.6 SUPER

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

QTN(数量性状SNP),即控制QTL的SNP。

1.7 FarmCPU

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

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

1.8 Blink

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

模型总结:

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

GWAS常用软件:

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

2.GS模型

GS模型的发展:



河流左侧是以个体为单位进行预测,包含gBLUP,ssBLUP,sBLUP和cBLUP等。

河流右侧是以SNP效应值为单位进行预测,包含rrBLUP,BayesA,B,C,Cπ,Bayes LASSO等。

2.1 MAS

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

2.2 GBLUP

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

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

  • ssBLUP

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

  • sBLUP和cBLUP

    gBLUP(图A)是利用所有建模群体的基因型(GR1-GR5)对试验群体(GI1-GI4)进行预测,这个过程中每个个体间都有相互关系。

    Compression策略(图B)是将个体进行分组,把9个个体(建模群体和试验群体)分成三组,然后对不同组分别进行预测。其中把标记进行压缩,以Bin为单位进行预测的方法和GWAS的SUPER类似,所以叫sBLUP。另外以个体分组的策略跟GWAS的CMLM类似,因此叫cBLUP。

    可以理解为cBLUP对个体进行降维,sBLUP对标记进行降维。

2.4 rrBLUP

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

也就是把模型y=Xb+Zu+e变为y=Xb+Ms+e:

其中M是SNP构建的矩阵(替换个体亲缘关系矩阵Z),s就是标记(替换个体u)。

2.5 rrBLUP的扩展(Bayes类)

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

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

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

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

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

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

2.6 BLUP vs Bayes

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

  • 基于个体的BLUP

  • 基于标记的BLUP

    即Z矩阵替换为M矩阵,个体u替换为标记s。

  • rrBLUP vs GBLUP

  • Bayes vs BLUP

  • 模型性能比较

    模型差异很大,需要测试多个模型选择,涉及怎么选模型的问题。可根据遗传高低和控制基因多少,使用以下策略选择进行分析。



    以个体为预测单位的模型所需时间更少。

GS常用免费开源R包:

  • rrBLUP
  • BAGS
  • BLR
  • BGLR
  • GAPIT

3.GWAS和GS模型比较

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

只是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

GWAS与GS模型介绍与比较的更多相关文章

  1. IO模型介绍

    先理解几个问题: (1)为什么读取文件的时候,需要用户进程通过系统调用内核完成(系统不能自己调用内核)什么是用户态和内核态?为什么要区分内核态和用户态呢? 在 CPU 的所有指令中,有些指令是非常危险 ...

  2. 模型介绍之FastText

    模型介绍一: 1. FastText原理及实践 前言----来源&特点 fastText是Facebook于2016年开源的一个词向量计算和文本分类工具,在学术上并没有太大创新.但是它的优点也 ...

  3. python 全栈开发,Day44(IO模型介绍,阻塞IO,非阻塞IO,多路复用IO,异步IO,IO模型比较分析,selectors模块,垃圾回收机制)

    昨日内容回顾 协程实际上是一个线程,执行了多个任务,遇到IO就切换 切换,可以使用yield,greenlet 遇到IO gevent: 检测到IO,能够使用greenlet实现自动切换,规避了IO阻 ...

  4. {python之IO多路复用} IO模型介绍 阻塞IO(blocking IO) 非阻塞IO(non-blocking IO) 多路复用IO(IO multiplexing) 异步IO(Asynchronous I/O) IO模型比较分析 selectors模块

    python之IO多路复用 阅读目录 一 IO模型介绍 二 阻塞IO(blocking IO) 三 非阻塞IO(non-blocking IO) 四 多路复用IO(IO multiplexing) 五 ...

  5. (zhuan) 深度学习全网最全学习资料汇总之模型介绍篇

    This blog from : http://weibo.com/ttarticle/p/show?id=2309351000224077630868614681&u=5070353058& ...

  6. 深入理解 Java 内存模型(一)- 内存模型介绍

    深入理解 Java 内存模型(一)- 内存模型介绍 深入理解 Java 内存模型(二)- happens-before 规则 深入理解 Java 内存模型(三)- volatile 语义 深入理解 J ...

  7. OSI七层网络模型与TCP/IP四层模型介绍

    目录 OSI七层网络模型与TCP/IP四层模型介绍 1.OSI七层网络模型介绍 2.TCP/IP四层网络模型介绍 3.各层对应的协议 4.OSI七层和TCP/IP四层的区别 5.交换机工作在OSI的哪 ...

  8. IO模型《一》IO模型介绍

    IO模型介绍 为了更好地了解IO模型,我们需要事先回顾下:同步.异步.阻塞.非阻塞 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞 ...

  9. Python socket编程之IO模型介绍(多路复用*)

    1.I/O基础知识 1.1 什么是文件描述符? 在网络中,一个socket对象就是1个文件描述符,在文件中,1个文件句柄(即file对象)就是1个文件描述符.其实可以理解为就是一个“指针”或“句柄”, ...

随机推荐

  1. 一文看懂JVM内存区域分布与作用

    那么我们在开始介绍Java内存区域之前,我们先放一张内存区域的图,方便我们后面介绍的时候可以对照着看. 须知,本文是根据JDK8来介绍的. 程序计数器 首先它是线程私有的,它也称为代码的行号指示器,字 ...

  2. Java:并发笔记-05

    Java:并发笔记-05 说明:这是看了 bilibili 上 黑马程序员 的课程 java并发编程 后做的笔记 4. 共享模型之内存 本章内容 上一章讲解的 Monitor 主要关注的是访问共享变量 ...

  3. abstract使用方式

    springMVC中的 LocalContextHolder是一个 abstract类.里边方法都是static 的. 不能被继承.不能实例化.只能调用其定义的static 方法.这种 abstrac ...

  4. Alpha阶段发布声明

    发布声明 Alpha 1.Alpha版本功能说明 功能列表和详情图 模块 功能 展示 首页 查看首页博文,搜索博文,可供未登录用户使用 动态 查看推荐动态给未登录用户使用,登录用户可以查看关注动态.我 ...

  5. 微信小程序的实现原理

    一.背景 网页开发,渲染线程和脚本是互斥的,这也是为什么长时间的脚本运行可能会导致页面失去响应的原因,本质就是我们常说的 JS 是单线程的 而在小程序中,选择了 Hybrid 的渲染方式,将视图层和逻 ...

  6. Java并发:Condition接口

    Condition 接口与 Lock 配合实现了等待 / 通知模式,这个和 Object 的监视器方法(wait.notify.notifyAll 等方法)一样,都是实现了等待 / 通知模式,但这两者 ...

  7. ArrayList集合底层原理

    目录 ArrayList集合特点及源码分析 ArrayList源码分析 成员变量 构造函数 增加方法 add(E e)方法 add(int index, E element)方法 删除方法 remov ...

  8. 转载:10G以太网光口与Aurora接口回环实验

    10G以太网光口与高速串行接口的使用越来越普遍,本文拟通过一个简单的回环实验,来说明在常见的接口调试中需要注意的事项.各种Xilinx FPGA接口学习的秘诀:Example Design.欢迎探讨. ...

  9. hdu 2201 熊猫阿波的故事(简单概率。。)

    题意: 阿波上了飞机,飞机上有座位1,2,....,N.第i个乘客本应坐在第i个座位上. 可是阿波随便找了个座位就坐了下来,接下来大家也都随便找了个座位坐了下来. 问:第i个乘客坐到原座位的概率是多少 ...

  10. Vue2高级原理

    <div id="app">     <input type="text" v-model="username"> ...