GWAS研究中,表型分两种。第一种是线性的表型,如果身高、体重、智力等;第二种是二元的表型,比如患病和未患病,即通常所说的case和control。对于表型是线性的样本来说,是不存在case和control比例不平衡的情况的,但是对于表型是二元的样本,比如疾病和对照组(健康人群),case和control比例失衡,可能会出现N多的假阳性结果。具体看看下面的例子。

例子1:case和control比例在稍微正常的情况下,比如冠心病(coronaryartery disease,case:control =1:12, N = 408,458),此时,用什么模型计算关联分析结果都OK.

下面分别用三个不同算法(BOLT-LMM, SAIGE-NoSPA 和 SAIGE)计算的GWAS结果,从图下可以看出,当case和control的数量比例不是严重失衡的情况下,这个时候用哪种方法结果都没有区别。

例子2:case和control比例在比较失衡的情况下,比如结直肠癌 (colorectal cancer , case:control = 1:84, N = 387,318),此时,BOLT-LMM和SAIGE-NoSPA显然出现了很多假阳性位点,而SAIGE模型下的GWAS结果则比较正常

例子3:case和control比例在严重失衡的情况下,比如青光眼(glaucoma, case:control = 1:89, N = 402,223),此时,BOLT-LMM和SAIGE-NoSPA显然出现了很多假阳性位点,而SAIGE模型下的GWAS结果则比较正常。

例子4:case和control比例在极其严重失衡的情况下,比如甲状腺癌(thyroid cancer, case:control = 1:1,138, N = 407,757),此时,BOLT-LMM和SAIGE-NoSPA显然出现了非常多的假阳性位点,而SAIGE模型下的GWAS结果则比较正常。

综上,说了这么多,是想告诉大家当手头的case和control比例差别比较悬殊的时候,不要一上来就跑GWAS,而是先考虑一下你的样本适合的模型。像这篇文章里的SAIGE模型就很适合case和control比例严重失衡的情况。

SAIGE的具体用法请参照:

https://github.com/weizhouUMICH/SAIGE

图片出处及参考文献:https://www.nature.com/articles/s41588-018-0184-y

GWAS研究中case和control的比例是有讲究的?的更多相关文章

  1. GWAS:拒绝假阳性之case和control数量比例严重失衡的解决方案(SAIGE模型的应用)

    一.为什么要校正case和control数量比例不平衡情况 试问作为生信届人员,最怕的是什么,当然是统计结果不靠谱.统计结果不靠谱包括两方面:一个是假阴性,一个是假阳性.假阴性可以理解为白天鹅被误当成 ...

  2. ABAP中的Table Control编程

          SAP中,Table Control是在Screen中用的最广泛的控件之一了,可以实现对多行数据的编辑.       简单来说,Table Control是一组屏幕元素在Screen上的重 ...

  3. 在VC++中使用Tab Control控件

    系统环境:Windows 7软件环境:Visual Studio 2008 SP1本次目的:在模态或非模态对话框中使用Tab Control控件,及引申在单/多文档中使用 查阅MSDN文档,对于创建T ...

  4. Data-independent acquisition mass spectrometry in metaproteomics of gut microbiota - implementation and computational analysis DIA技术在肠道宏蛋白质组研究中的方法实现和数据分析 (解读人:闫克强)

    文献名:Data-independent acquisition mass spectrometry in metaproteomics of gut microbiota - implementat ...

  5. MVC3中,在control里面三种Html代码输出形式

    MVC3中,在control里面三种Html代码输出形式:ViewData["msg"] = "<br /> Title <br />" ...

  6. (二)shell中case语句、程序传参、while

    2.2.6.1.case语句(1)shell中的case语句和C语言中的switch case语句作用一样,格式有差异(2)shell中的case语句天生没有break,也不需要break,和C语言中 ...

  7. mysql中 case when的使用

    SELECT a.hsid, a.house_code, a.sale_date, a.pjid, COUNT( sdid ) AS num, b.hsid, b.pscid, b.hscode, b ...

  8. 持续集成:TestNG中case之间的关系

    持续集成:TestNG中case之间的关系   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq: ...

  9. css中如何做到容器按比例缩放

    需求: 一般在响应式中,我们会要求视频的宽高比为16:9或4:3,这么一来就比较头大了.当用户改变浏览器宽度的时候(改变高度不考虑),视频的宽度变了,那么高度也得根据我们要求的16:9或4:3改变. ...

随机推荐

  1. es6基础知识

    1.超引用:(...) 用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中 function fun(...args){ console.log(args); //[1,2,3,4,5,6] ar ...

  2. 小tips:JS的Truthy和Falsy(真值与假值)

    前言 Truthy 不等于 ture,他是指是在Boolean上下文中转换后的值为真的值.我的理解是,在javascript中所有表达式为true的值.同理Falsy指的是在javascript中所有 ...

  3. POST一下就知道:人生苦短,我用Python!

    Python编程笔记---- 背景: “闸机端”简版程序要求: 读取扫描仪得到的userID; 向服务器发送请求进行验证: 根据返回值(True/False)决定闸机的信号. 1. 文件的读取 网上买 ...

  4. Android探究之Gson@SerializedName

    @SerializedName注解的意义 当我们使用Gson解析Json数据时都会创建一个对应实体类,有时候Json数据里面的字段是Java关键词或者Json数据里面的字段太简单,我们想在实体类中自定 ...

  5. RowKey设计之单调递增行键/时序数据

    ​在一个集群中,一个导入数据的进程锁住不动,所有的client都在等待一个region (因而也就是一个单个节点),过了一会后,变成了下一个region…​如果使用了单调递增 或者时序的key便会造成 ...

  6. Python第十四天 序列化 pickle模块 cPickle模块 JSON模块 API的两种格式

    Python第十四天 序列化  pickle模块  cPickle模块  JSON模块  API的两种格式 目录 Pycharm使用技巧(转载) Python第一天  安装  shell  文件 Py ...

  7. 记录Nginx常用命令

    在此记录下Nginx服务器常用命令(CentOS7.2.Nginx1.14.2环境) 启动Nginx:./usr/sbin/nginx Nginx检查语法:nginx -tc /etc/nginx/n ...

  8. AI-2048 注释

    针对2048游戏,有人实现了一个AI程序,可以以较大概率(高于90%)赢得游戏,并且作者在 stackoverflow上简要介绍了AI的算法框架和实现思路. 有博客介绍了其中涉及的算法,讲的很好 其中 ...

  9. SQL 行转列的运用

    适用场景:需要将行数据转换成列数据 例子: 现在有一个学生的成绩表 但是我们需要将每个学生的成绩汇集到一条数据上,这时候就可以用到行转列. 代码如下 一.不使用  PIVOT SELECT ),[St ...

  10. 写一函数,用来求表达式1+2+3+.....+n的值,并编写主函数

    Description 写一函数,用来求表达式1+2+3+.....+n的值,并编写主函数.n由键盘输入. Input 输入一个整数 Output 输出表达式的值 Sample Input 5 Sam ...