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. 剑指前端(前端入门笔记)——Date类型

    Date类型 ECMAScript中的Date类型是在早期Java中的java.util.Date类基础上构建的.为此,Date类型使用自UTC(国际协调时间)1970年1月1日午夜(零时)开始经过的 ...

  2. 利用Navicat高效率postgresql转mysql数据库

    本人很喜欢postgresql数据库,也一直认为postgresql比mysql要更好更强大. 可生态环境太差了,无奈,最近要把一个小站转成mysql数据库. 小站主要表数据110万,pg_dump备 ...

  3. .net core 命令行(仅作记录)

    命令大全:dotnet 命令 创建NuGet包:如何使用 .NET Core 命令行接口 (CLI) 工具创建 NuGet 包

  4. 芒果绿的blog

    --------------------------------------------------------------这是芒果绿的blog!!-------------------------- ...

  5. MyCP(课下作业)

    一.作业要求 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.bin 用来把文本文件(内 ...

  6. ASP.NET Core 下自定义权限验证

    效果图: 如果没有权限时,显示: 代码: public class AuthorizeAdminAttribute : TypeFilterAttribute { #region 字段 private ...

  7. Python多线程操作

    多线程是一门编程语言的重要操作. GIL(全局解释器锁)存在于python解释器中,用来确保当前只有一个线程被执行,当一个线程获得GIL后,这个线程将被执行,退出时释放GIL,由下一个获得GIL的线程 ...

  8. IdentityServer4实战 - 与API单项目整合

    一.前言 我们在实际使用 IdentityServer4 的时候,可能会在使用 IdentityServer4 项目添加一些API,比如 找回密码.用户注册.修改用户资料等,这些API与Identit ...

  9. 挥舞的手臂(mixly+二次开发)

    从vb6到vb.net,一路c#, java, python, nn, c,对技术的切换早已经没有害怕的感觉了,一直有的是技术的热情和我所认为的技术信仰. 扯完,开始正文. 看看效果图: 使用的是Ar ...

  10. 类ArrayList

    什么是ArrayList类 Java提供了一个容器 java.util.ArrayList 集合类,他是大小可变的数组的实现,存储在内的数据称为元素.此类提供一些方法来操作内部存储的元素. Array ...