热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

富集分析集锦

链接:https:www.jianshu.comp988d90484f77不管是转录组,还是芯片数据,或者其他有关基因的组学分析,每当数据分析到后面,要想得到结果,都躲不过这个富集

链接:https://www.jianshu.com/p/988d90484f77
不管是转录组,还是芯片数据,或者其他有关基因的组学分析,每当数据分析到后面,要想得到结果,都躲不过这个富集分析,因为它是帮助我们从庞杂的组学数据中发掘规律重要的一环,对基因功能进行富集分析,就有可能发现在生物学过程中起关键作用的生物通路,并且帮助理解生物学过程的分子机制。

现在的高通量测序带来的巨大数据量,让我们眼界大开,局限于单纯的某个基因的做法越来越行不通,但是想要从庞大的关系网络中挑选出有效信息,比如将某几个基因和某个期待的生物学现象结合起来,这个事直接做是很困难的。因此为了降低研究的复杂度,将不同生物学现象与基因的对应关系做成了多个数据库。于是,当我们手上有成百个差异基因时,就去不同数据库比对,这个过程就叫做富集分析。
简而言之,基因富集分析是在一组基因中找到具有一定基因功能特征和生物过程的基因集,在研究差异表达基因、筛选基因的后续分析中经常使用。
基因集也叫gene set,也就是一系列具有相同功能的基因构成的集合,比如某一条代谢通路(pathway),其中有很多的基因,因此位于同一通路下的基因就构成了一个基因集合。
组成基因集的最基本元素就是一个一个的基因,在芯片分析中,结果往往是差异表达的探针,需要先将探针映射到基因上。注意:在映射的过程中,必须考虑到基因和探针之间的对应关系,会有多个探针对应一个基因情况,虽然比重不大,却还是要考虑。比如分析甲基化数据时,由于大部分的基因具有多个CpG位点,因此会对应多个探针ID,因此会有多个探针ID。有时A、B探针都有探针比对上,但不能就这样认为它们的差异量一样,因为A、B的差异CpG位点有时不同,B却只有3个,他们虽然都叫差异基因,但差异也分大小,不能一概而论。(这里没读懂)

1.富集分析目的

万事万物皆有其因,事实上,我们做这个富集分析的目的主要包括:
目前正在研究某个基因,想看它在不同样本中的表达差异,也就是我们有和课题相关的目标基因,你认为这个基因是处理和对照产生不同的原因之一,但是口说无凭,需要佐证。此时你需要富集分析。
跑程序得到的差异基因上千个,你知道他们是哪些类的,和物种什么生物过程相关,你会把基因一个一个放到注释数据库去调查吗?此时你需要富集分析。
研究某个基因的上下游调控关系时,你可能对KEGG的那个通路图不陌生,这就是富集分析。
它是快速调查目标基因集倾向性的方法之一。因此你可能听说过通路分析(pathway)、功能分析。就是说,手里有基因、蛋白的,都要经历这一步。

举个生活中的例子:城市中都有生活公园,清晨你会看到许多老人在锻炼身体,上午游人来玩耍,小商贩也不能放过这个机会,下午到了放学的点,孩子们蜂拥而至,而到了晚上,中年人群广场舞激情飘扬。现在想看看公园哪个时间段更吸引人。假如一天来公园的共1000人,现在把这些人都聚集在一起,从中抽取200人,结果看到70%以上都是老人,那么基本可以确定清晨公园人流量更大。然后针对主要公园人群——老年人,公园管理部门就可以安排更便民的措施。当然,这个例子只是为了理解下面的内容
我们上面不同年龄的人群,就对应不同的功能的基因集,当然人群中的每个人都可能不同时间光顾公园,当然基因集中的不同基因也可以但与好几个生物过程。我们这里做的富集分析,不是为了分析个体,而是看群体。先判断出哪些群体的差异是我们想要的,再看其中的个体~就是这么个过程!

2.富集分析算法

任何软件、分析背后都是一套算法,了解算法才能真正坐观云卷云舒。具体的方法介绍可以参考:Progress in Gene Functional Enrichment Analysis这篇文章。大体上富集分析有四类算法:ORA、FCS、PT、NT。
《富集分析集锦》

富集分析四类算法

1.【最常用】ORA(Over Representation Analysis):过表达分析

首先这个名字很奇怪,但是既然人家取了这个名字,就一定有原因。这个部分很重要,需要重点理解采用“理论联系实际”的方法

理论:什么是ORA方法?它是检验某类功能在一个数据子集中是否表现过度。又称为”2×2”算法,像上图一样,做一个列联表。上图中的ORA中,蓝圈内是感兴趣基因(8个),绿圈内是某个通路的基因(5个);灰点是既不感兴趣又不在通路内的(6个),蓝点是感兴趣但不在通路内的(5个),绿点是在通路内但不感兴趣的(2个),红点是既感兴趣又在通路内的(3个),于是就能做出来2×2列联表。再利用费舍尔精确检验或超几何分布得到p值。

简而言之,需要4类数据:总共的基因数(作为背景基因)、总共属于某分类的基因数、样本包含的基因数(也就是用的差异基因)、样本中属于某分类的基因数。

优点:出现的最早,做常用,有完善的统计学基础,结果比较可靠;

缺点:仅仅使用了基因的数目,但是基因的不同表达水平没有考虑,为了得到差异基因,需要人为设置阈值,没有一个设置规定,因此结果因人而异;

适用于差异最显著的基因,而差异不显著的基因就会被忽略,检测灵敏度会降低。

ORA利用统计学假设每个基因相互独立,但就生物体本身而言,忽略了内部的复杂的相互作用,并且每个基因在不同的生物学过程中发挥的作用大小不一样,同样看待结果可能会不准确。

实际:实际上就是把我们感兴趣的基因背景基因做一个交集。

感兴趣的基因也就是差异基因了,包括上调、下调表达的(利用原始表达矩阵中p值和logFC进行筛选),一般人类芯片数据会有几百个

背景基因就是在KEGG等数据库中有注释的基因【人类基因组有2万个左右基因,现在总共有已知功能的是7000左右,随着研究的深入,背景基因数量会越来越多,结果也会越来越全面】
《富集分析集锦》
enrichKEGG结果

举个例子,KEGG通路hsa05206指的是MicroRNAs in Cancer,包括150个基因,背景基因使用了6517个;GSE17708芯片得到的差异基因数是547个,在KEGG能注释上的有80个,其中就有10个是MicroRNA通路的,概率高达12.5%(enrichKEGG都是用能在KEGG注释上的基因,比如这里是用80而不是547),那么这个通路是不是在下调基因中被显著改变?需要把全部的80个下调基因,在KEGG的530个通路中注释一遍,再一个一个进行超几何分布检验,得到p值。hsa05206通路在背景基因中查到的概率是150/6517,是显著低于12.5%的

超几何分布属于统计学上一种离散概率分布。它描述了由有限个物件中抽出n个物件,成功抽出指定种类的物件的个数(不归还)。n = 1,茶几和分布还原为伯努利分布;n 接近 ∞,超几何分布视为二项分布

2.FCS(Functional Class Scoring)功能集打分法

它比ORA的进步就是基本假设做了改变,考虑的更加全面。它认为尽管单个基因的改变会造成显著性影响,但是和它类似的微效基因叠加在一起也能行。也就是说,FCS不再像ORA一样,强调个人英雄主义,而是把目光转向人民,“星星之火,可以燎原”

Ten Years of Pathway Analysis:Current Approaches and Outstanding Chanllenges这篇文章有详细的描述。

操作方法:

要求的输入是一个排序的基因列表和一个基因集合,不需要设置阈值。

计算单个基因表达水平的统计值,采用如衡量差异基因的ANOVA、Q-statistic、t检验、Z-score、信噪比(不懂),进行打分或排序,或者直接使用排序好的基因表达谱。

同一通路上所有基因的表达水平统计值进行整合,汇集成单个通路水平的分数或统计值,采用基因水平统计的和、均值或中位数,Wilcoxon rank sum, Maxmean statistic, Kolmogorov-Smirnov statistic(不懂)。

对通路水平的显著性进行评估:利用重抽样(bootstrap)的统计学方法。

优点:考虑了基因表达值的个体差异化信息,更加全面

缺点:FCS仍然和ORA一样,只能独立分析每一条通路,但是同一个基因可能涉及多个通路,不能分析这种情况:它只是根据特定的通路为差异基因进行排序,比如按基因A、B的一条通路检测得到它们的表达量分别改变3倍、10倍,但是换其它通路,可能排名就发生改变,不会一直保持B>A


推荐阅读
  • 丽江客栈选择问题
    本文介绍了一道经典的算法题,题目涉及在丽江河边的n家特色客栈中选择住宿方案。两位游客希望住在色调相同的两家客栈,并在晚上选择一家最低消费不超过p元的咖啡店小聚。我们将详细探讨如何计算满足条件的住宿方案总数。 ... [详细]
  • 本题探讨了在一个有向图中,如何根据特定规则将城市划分为若干个区域,使得每个区域内的城市之间能够相互到达,并且划分的区域数量最少。题目提供了时间限制和内存限制,要求在给定的城市和道路信息下,计算出最少需要划分的区域数量。 ... [详细]
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 智慧城市建设现状及未来趋势
    随着新基建政策的推进及‘十四五’规划的实施,我国正步入以5G、人工智能等先进技术引领的智慧经济新时代。规划强调加速数字化转型,促进数字政府建设,新基建政策亦倡导城市基础设施的全面数字化。本文探讨了智慧城市的发展背景、全球及国内进展、市场规模、架构设计,以及百度、阿里、腾讯、华为等领军企业在该领域的布局策略。 ... [详细]
  • 在现代Web应用中,当用户滚动到页面底部时,自动加载更多内容的功能变得越来越普遍。这种无刷新加载技术不仅提升了用户体验,还优化了页面性能。本文将探讨如何实现这一功能,并介绍一些实际应用案例。 ... [详细]
  • 本文探讨了如何在iOS开发环境中,特别是在Xcode 6.1中,设置和应用自定义文本样式。我们将详细介绍实现方法,并提供一些实用的技巧。 ... [详细]
  • 反向投影技术主要用于在大型输入图像中定位特定的小型模板图像。通过直方图对比,它能够识别出最匹配的区域或点,从而确定模板图像在输入图像中的位置。 ... [详细]
  • 利用决策树预测NBA比赛胜负的Python数据挖掘实践
    本文通过使用2013-14赛季NBA赛程与结果数据集以及2013年NBA排名数据,结合《Python数据挖掘入门与实践》一书中的方法,展示如何应用决策树算法进行比赛胜负预测。我们将详细讲解数据预处理、特征工程及模型评估等关键步骤。 ... [详细]
  • 在项目部署后,Node.js 进程可能会遇到不可预见的错误并崩溃。为了及时通知开发人员进行问题排查,我们可以利用 nodemailer 插件来发送邮件提醒。本文将详细介绍如何配置和使用 nodemailer 实现这一功能。 ... [详细]
  • 本文详细探讨了JavaScript中的作用域链和闭包机制,解释了它们的工作原理及其在实际编程中的应用。通过具体的代码示例,帮助读者更好地理解和掌握这些概念。 ... [详细]
  • 采用IKE方式建立IPsec安全隧道
    一、【组网和实验环境】按如上的接口ip先作配置,再作ipsec的相关配置,配置文本见文章最后本文实验采用的交换机是H3C模拟器,下载地址如 ... [详细]
  • 本教程详细介绍了如何使用 TensorFlow 2.0 构建和训练多层感知机(MLP)网络,涵盖回归和分类任务。通过具体示例和代码实现,帮助初学者快速掌握 TensorFlow 的核心概念和操作。 ... [详细]
  • 本文介绍了数据库体系的基础知识,涵盖关系型数据库(如MySQL)和非关系型数据库(如MongoDB)的基本操作及高级功能。通过三个阶段的学习路径——基础、优化和部署,帮助读者全面掌握数据库的使用和管理。 ... [详细]
  • Redux入门指南
    本文介绍Redux的基本概念和工作原理,帮助初学者理解如何使用Redux管理应用程序的状态。Redux是一个用于JavaScript应用的状态管理库,特别适用于React项目。 ... [详细]
  • Python库在GIS与三维可视化中的应用
    Python库极大地扩展了GIS的能力,使其能够执行复杂的数据科学任务。本文探讨了几个关键的Python库,这些库不仅增强了GIS的核心功能,还推动了地理信息系统向更高层次的应用发展。 ... [详细]
author-avatar
杨仕卫123
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有