1、富集分析的背景知识 - 简书 (jianshu.com)
2、clusterprofile富集分析--上游分析 - 简书 (jianshu.com)
3、clusterprofile富集分析--下游可视化 - 简书 (jianshu.com)
4、clusterprofile富集分析--多组设计的富集及可视化 - 简书 (jianshu.com)
关于富集分析,之前在学习转录组流程时,多少了解了相关知识。本次旨在简洁、系统得整理相关知识,以便日后灵活方便使用。这一小节会简单介绍富集分析相关背景知识,之后几节会结合常见的分析工具,进行实操。
1、富集分析目的
- 以转录组分析基因为例:对得到的差异基因结果,我们想从系统的角度上了解这些特殊的基因是否共同参与/具有某个具有特定生物意义的"标签"。
- 所谓标签,就是从不同生物学角度定义的基因集(gene set),具体到每个基因集即由若干“同类”基因组成。
-
例如下图所示:就是一般富集分析结果的展示形式。纵坐标即代表“标签”基因集
2、常见的富集基因集
2.1 GO
- Gene Ontology 基因本体论
- http://www.geneontology.org/
- GO 分别定义了三种类型的基因集:①细胞组成(cellular component,CC);②生物过程(biological process,BP);③分子功能(Molecular Function,MF)。详见http://geneontology.org/docs/ontology-documentation/
- 举个例子来说:基因A(其蛋白产物是cytochrome c(细胞色素c)),该基因的具有氧化还原活性(molecular function);参与氧化磷酸化生物学过程(molecular function);而发挥作用的位置位于细胞线粒体基质(cellular component)
- 通过GO富集分析可以了解差异基因富集在哪些生物学功能、途径或细胞定位。
2.2 KEGG
- Kyoto Encyclopedia of Genes and Genomes 京都基因与基因组百科全书
- https://www.genome.jp/kegg/
- KEGG是系统分析基因功能,联系基因组信息和功能信息,以探索分子相互作用和反应网络的知识库(人工绘制),其中包含有大量的通路(PATHWAY)图,涉及metabolism, genetic and environmental information processing, cellular processes, organismal systems, human diseases, and drug development七大类。
- 通过KEGG富集分析可以判断某些基因是都富集到某一通路上。
2.3 其它通路基因集
(1)WikiPathway
- https://www.wikipathways.org/
- WikiPathways是由科学界维护并为科学界维护的生物学途径的通路数据库。
(2)Reactome
- https://reactome.org/
- REACTOME是一个开源,开放访问,手动管理和同行评审的通路数据库
2.4 Msigdb(综合)
- Molecular Signatures Database 分子特征数据库
- https://www.gsea-msigdb.org/gsea/msigdb/index.jsp
- 截止目前该数据库收集有32284个基因集,可分为9大类 --- H: hallmark gene sets,C1: positional gene sets,C2: curated gene sets,C3: regulatory target gene sets,C4: computational gene sets,C5: ontology gene sets,C6: oncogenic signature gene sets,C7: immunologic signature gene sets,C8: cell type signature gene sets
C5、C2分别已包括了上面GO、KEGG数据
2.5 疾病相关基因集
(1)DO
- Disease Ontology 疾病本体论
- http://disease-ontology.org/
- disease association of interesting genes
(2)NCG
- Network of Cancer Gene 癌症相关基因
- http://ncg.kcl.ac.uk/
(3)DGN
- DisGeNET 基因疾病关联
- http://disgenet.org/
2.6 其它基因集
- Mesh 医学主题词 https://www.ncbi.nlm.nih.gov/mesh/
- Cell marker gene 细胞类型标志基因 http://bio-bigdata.hrbmu.edu.cn/CellMarker/
如上,其实是没有专门用于富集分析的数据库。而是我们主动去发现对若干基因存在生物学水平的分类记录的相关数据库;而不是这些数据库为富集分析而专门准备的。所以甚至我们可以自己定义我们自己的数据库用于富集分析。
3、两种富集分析方法
-
分别为ORA(over representation analysis)与GSEA(gene set enrichment analysis)
3.1 ORA
-
算法原理简介
假如我们对转录组分组测序的10000个基因表达数据进行差异分析,按照规定cutoff阈值(logFC/Pvalue)筛选得到100个差异表达基因。对于某个特定的含有500个基因的gene set(假设都有表达数据,即包含在10000个基因之中),其中有30个恰好也是差异表达基因。我们就想知道470/9430与30/70是否具有显著差异(一般进行单向分析)。因为按照超几何分布规律这两个值应该近似相等的。
-
计算公式
如何量化470/9430与30/70之间的显著差异性呢? 一般采用fisher的精确检验方法,公式如下:
对应上面的例子,其中N=10000,M=500,n=100,k=30
- R语言计算p值
d <- data.frame(non_DEG=c(470, 9430), DEG=c(30, 70))
row.names(d) <- c("In set", "not in category")
d
fisher.test(d, alternative = "less")
p值越小(<0.05),说明得到的差异基因是显著富集到这个基因集上的。然后就可以这个基因集的生物学意义讲述后续的故事了。
通过上面的描述,可以看到差异基因是我们自己手动设定阈值筛选的。无疑那些差异表达不明显的基因就会被忽略掉,而其可能也是与富集的基因集存在关联。因此第二种GSEA算法可避免这种情况的发生。
3.2 GSEA
- 对比ORA的输入数据
还是以转录组差异分析结果为例,但不设任何的阈值筛选。取其中的的基因名与log2FoldChange列,并按照log2FoldChange值进行从大到小的排序;所得到的基因列表即是GSEA分析所需要的。(前面的基因可以看做是上调的差异基因,而后面的基因是下调的差异基因) - 对比ORA的假设
对于ORA来说,其假设是上面的二联表关系遵循超几何分布;
对于GSEA来说,其假设是某个基因集里的基因在排序后的所有基因列表中随机分布。如果某个基因集的重叠基因是否在这个差异基因排序列表的顶部或者底部富集,具有显著意义,就可拒绝原假设。进一步来说,如果在顶部富集,从总体上看,该基因集在转录组差异分析结果里是上调趋势,反之,如果在底部富集,则是下调趋势。 -
指标计算
富集分数ES可反映基因集在基因列表的富集程度。打分机制(如下图)简单来说就是:基于某一基因集(Gene set),重头到尾完整遍历一遍排序好的基因列表。如果遇见差异基因列表的基因在基因集范围内就加分(hit),不在(missing)就减分。加减分的权重与差异倍数相关。打分过程中,产生的最大的ES即为最终的富集分数
p值可反映偏离原假设的概率。具体计算方法采用permutation test,即对基因列表顺序随机打乱n次,分别计算得到n个ES的分布。然后计算我们之前得到的ES在这个分布里的概率。
以上简单总结了富集分析的目的、常用数据库以及计算方法。作为背景知识,结合后面的实操会有更清晰的理解。之后主要结合常用的分析工具,实际进行富集分析的演练,目前打算记录的有R包 clusterProfiler,metascape网页工具