基因型填充前的质控条件简介

2023-10-17 04:10

本文主要是介绍基因型填充前的质控条件简介,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

欢迎关注”生信修炼手册”!

影响基因型填充准确率的因素有很多,比如分型结果的质量,填充软件的选择,reference panel的选择,样本量的大小, SNP的密度等等。

为了提高填充的准确率,我们需要在填充前进行质量过滤。对于原始的分型结果,可以根据一些条件进行筛选和过滤,得到高质量的分型结果,用于后续的填充。

分型结果本质上是一张由样本和SNP位点构成的表格,对应的过滤手段也分成了两个大的方向,针对SNP位点的过滤和针对样本的过滤。

这里的质控条件和GWAS分析的质控条件是一致的,本文基于case/control的GWAS分析,讲解下常用的过滤条件。对于SNP位点的过滤,常用的过滤条件如下

1. missingness

在原始的分型结果中,会有部分分型失败的位点,称之为missing data。分型成功的比例称之为call rate, 根据snp call rate进行过滤的代码如下

plink \
--noweb \
--file test \
--geno 0.1 \
--out filter

--geno指定snp位点分型失败比例的阈值,分型失败的比例大于该阈值的位点会被过滤掉。

2.  Hardy-Weinberg equilibrium

GWAS假设样本群体是符合哈温平衡的, 对于不符合哈温平衡的SNP位点,需要过滤掉。

需要注意的是,哈温平衡的计算是针对群体的,在case/control中,如果合并一起计算hwe, 该位点的不平衡很可能是由于两个群体间的差异构成,过滤之后会造成后续分析的假阴性,所以只需要针对control组的样本计算hwe, 然后进行过滤就可以了,代码如下

plink \
--noweb \
--file test \
--hwe 0.000001 \
--out filter

--hwe指定哈温平衡检验pvalue的阈值,小于该阈值的位点会被过滤掉。

3.  minor allele frequency

MAF过低可能是由于分型算法不能够检测到对应的allel引起的, 比如测序深度或者荧光信号强度不够等因素,此时这些位点的分型结果是不太准确的,所以需要过滤。

其次为了能够有效进行后续的GWAS挖掘,要保证不同allel对应的样本量的大小。MAF<1%的突变称之为rare variants, 相比MAF > 5%的common variants,  罕见变异需要更大的样本量,当样本量不足时,会造成后续分析的假阳性,所以在样本量较小的情况下,不能够有效进行罕见变异的GWAS分析,需要去除。

过滤的代码如下

plink \
--noweb \
--file test \
----maf 0.01 \
--out filter

--maf指定MAF过滤的阈值,小于该阈值的位点会被过滤掉。

对于样本的过滤,常用的过滤条件如下

1. missingness

和SNP的call rate类似,只是换成了样本中的比例,过滤的代码如下

plink \
--noweb \
--file test \
----mind 0.01 \
--out filter

--mind指定样本分型失败比例的阈值,分型失败的比例大于该阈值的样本会被过滤掉。

2. gender check

通过样本的分型结果可以判断样本的性别,plink默认F值小于0.2的为女性,大于0.8的为男性,然后与该样本标记的性别进行比较,如果二者不一致,则需要去掉该样本,代码如下

plink \
--noweb \
--file test \
--check-sex 0.2 0.8 \
--allow-no-sex \
--out gender

运行成功后输出一个后缀为genome的文件,在该文件中,如果性别一致显示OK, 否则显示PROBLEM。在某些情况下,默认阈值可能过于严格,可以调整check-sex后面的参数。

识别到不一致的样本之后,可以将对应的样本ID整理到一个文件中,每行一个ID,然后通过下列代码进行过滤

plink \
--noweb \
--file test \
--remove sample.list \
--out filter
3. IBD

IBD用于衡量样本间的亲缘关系,亲缘关系较近的样本分型结果非常相似,极端的例子就是重复样本。GWAS分析的本质是一个无放回的抽样,需要保证样本间的独立性,所以亲缘关系较近的样本需要被去除。计算样本间IBD距离的代码如下

plink \
--noweb \
--file test \
--genome \
--allow-no-sex \
--out ibd
4. heterozygosity and inbreeding

在一个随机交配产生的符合哈温平衡的群体中, 样本是具有一定的杂合基因型的,近亲繁殖会导致纯合基因型的出现,产生的后代样本杂合度降低,导致群体哈温平衡的偏离,这样的样本需要被去除,保证GWAS分析中群体符合哈温平衡的假设。

另外,杂合度过高的样本可能是实验阶段混合了两个样本的DNA导致的,所以也需要去除。实际操作中,通过近亲系数F来表征, F值的大小与样本杂合度呈负相关,F值越大,对应杂合度越低。通过下列代码可以计算样本的近亲繁殖系数

plink \
--noweb \
--file test \
--het \
--allow-no-sex \
--out het

然后通过F值的分布来确定过滤的条件。

5. population stratification

群体分层指的是在样本中明显分成了多个亚群,亚群之间的差异会影响case/control组间差异的判断,对GWAS分析造成影响。对于群体分层,可以在后续GWAS分析中进行校正,这里的过滤指的是过滤掉个别明显偏离的离群值样本,可以通过主成分分析PCA或者MDS分析来实现,对应的方法比较多,后续在详细讲解。

除了这些过滤条件外,还需要调整SNP的方向,在reference panel中,SNP位点分型结果以参考基因组正链上的碱基表示,而在分型结果中会出现既有正链又有负链的情况,需要统一校正到正链上来。

对原始分型结果进行质控,可以提高基因型填充的准确率,进一步保证后续GWAS分析的准确性。

·end·

—如果喜欢,快分享给你的朋友们吧—

扫描关注微信号,更多精彩内容等着你!

这篇关于基因型填充前的质控条件简介的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/222849

相关文章

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

rust 中的 EBNF简介举例

《rust中的EBNF简介举例》:本文主要介绍rust中的EBNF简介举例,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 什么是 EBNF?2. 核心概念3. EBNF 语法符号详解4. 如何阅读 EBNF 规则5. 示例示例 1:简单的电子邮件地址

Python 异步编程 asyncio简介及基本用法

《Python异步编程asyncio简介及基本用法》asyncio是Python的一个库,用于编写并发代码,使用协程、任务和Futures来处理I/O密集型和高延迟操作,本文给大家介绍Python... 目录1、asyncio是什么IO密集型任务特征2、怎么用1、基本用法2、关键字 async1、async

pandas中位数填充空值的实现示例

《pandas中位数填充空值的实现示例》中位数填充是一种简单而有效的方法,用于填充数据集中缺失的值,本文就来介绍一下pandas中位数填充空值的实现,具有一定的参考价值,感兴趣的可以了解一下... 目录什么是中位数填充?为什么选择中位数填充?示例数据结果分析完整代码总结在数据分析和机器学习过程中,处理缺失数

使用Pandas进行均值填充的实现

《使用Pandas进行均值填充的实现》缺失数据(NaN值)是一个常见的问题,我们可以通过多种方法来处理缺失数据,其中一种常用的方法是均值填充,本文主要介绍了使用Pandas进行均值填充的实现,感兴趣的... 目录什么是均值填充?为什么选择均值填充?均值填充的步骤实际代码示例总结在数据分析和处理过程中,缺失数

Java中Switch Case多个条件处理方法举例

《Java中SwitchCase多个条件处理方法举例》Java中switch语句用于根据变量值执行不同代码块,适用于多个条件的处理,:本文主要介绍Java中SwitchCase多个条件处理的相... 目录前言基本语法处理多个条件示例1:合并相同代码的多个case示例2:通过字符串合并多个case进阶用法使用

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键

SpringBoot条件注解核心作用与使用场景详解

《SpringBoot条件注解核心作用与使用场景详解》SpringBoot的条件注解为开发者提供了强大的动态配置能力,理解其原理和适用场景是构建灵活、可扩展应用的关键,本文将系统梳理所有常用的条件注... 目录引言一、条件注解的核心机制二、SpringBoot内置条件注解详解1、@ConditionalOn

SpringIntegration消息路由之Router的条件路由与过滤功能

《SpringIntegration消息路由之Router的条件路由与过滤功能》本文详细介绍了Router的基础概念、条件路由实现、基于消息头的路由、动态路由与路由表、消息过滤与选择性路由以及错误处理... 目录引言一、Router基础概念二、条件路由实现三、基于消息头的路由四、动态路由与路由表五、消息过滤