热门标签 | 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


推荐阅读
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • “你永远都不知道明天和‘公司的意外’哪个先来。”疫情期间,这是我们最战战兢兢的心情。但是显然,有些人体会不了。这份行业数据,让笔者“柠檬” ... [详细]
  • 本文介绍了PhysioNet网站提供的生理信号处理工具箱WFDB Toolbox for Matlab的安装和使用方法。通过下载并添加到Matlab路径中或直接在Matlab中输入相关内容,即可完成安装。该工具箱提供了一系列函数,可以方便地处理生理信号数据。详细的安装和使用方法可以参考本文内容。 ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
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社区 版权所有