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

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. 第五课第四周实验一:Embedding_plus_Positional_encoding 嵌入向量加入位置编码

    目录 变压器预处理 包 1 - 位置编码 1.1 - 位置编码可视化 1.2 - 比较位置编码 1.2.1 - 相关性 1.2.2 - 欧几里得距离 2 - 语义嵌入 2.1 - 加载预训练嵌入 2. ...

  2. [技术博客] BeautifulSoup4分析网页

    [技术博客] BeautifulSoup4分析网页 使用BeautifulSoup4进行网页文本分析 前言 进行网络爬虫时我们需要从网页源代码中提取自己所需要的信息,分析整理后存入数据库中. 在pyt ...

  3. alertmanager的使用

    alertmanager的使用 一.Alertanager的安装 1.下载 2.安装 3.启动 4.alertmanager和prometheus的整合 二.告警分组 1.告警规则 2.alertma ...

  4. Nginx(三):Linux环境(Ubuntu)下Nginx的安装

    Nginx 是一位俄罗斯人 Igor Sysoev(伊戈尔·塞索斯夫)编写的一款高性能HTTP和反向代理服务器. Nginx 主要是有C编写的,安装Nginx需要GCC编译器(GNU Compiler ...

  5. Spring IOC:BeanDefinition加载注册流程(转)

    BeanFactory接口体系 以DefaultListableBeanFactory为例梳理一下BeanFactory接口体系的细节 主要接口.抽象类的作用如下: BeanFactory(根据注册的 ...

  6. C++构造函数注意事项

    1.匿名对象 首先应该明确匿名对象,匿名对象是之没有对象名,调用完构造函数后即析构的对象.下面通过代码捕捉类的构造函数和析构函数,以进行说明: #include <iostream> us ...

  7. Linkerd 2:5 分种厘清 Service Mesh 相关术语

    API Gateway(API 网关) API gateway 位于应用程序的前面,旨在解决身份验证和授权.速率限制以及为外部消费者提供公共访问点等业务问题. 相比之下,service mesh 专注 ...

  8. cf18B Platforms(仔细谨慎题)

    题意: In one one-dimensional world there are n platforms. Platform with index k (platforms are numbere ...

  9. (一)lamp 环境搭建之编译安装apache

    apache的编译安装: 安装步骤大概参考:http://www.cnblogs.com/iyoule/archive/2013/10/24/3385540.html 简单的将分为三步: (1)安装a ...

  10. 修改linux 两种时间的方法

    1,整理了一下怎么修改linux 两种时间的方法. 硬件时间:hwclock 或者clock,设置的方法是 hwclock --set --date="05/12/2018 12:30:50 ...