基因富集分析的算法介绍
富集分析其实只是一个整体的简称,这里面包括了很多很多不同的算法。对于主要的算法过程其实不用太多了解,这个有专业的人来解决就行。但是对于其输入条件和主要区别还是要了解的。这样方便我们使用。
ORA(Over Representation Analysis):过表达分析
我们常规的做的或者公司给的富集分析的结果里面给的GO分析和KEGG分析的结果就是使用ORA的算法来做的。
这个算法采取的类似于一刀切的逻辑思维,我们需要对差异的结果设置一个标准(通常也就是我们差异表达的条件),如果达到这个标准了,那就可以当作候选分析的基因。最后我们把所有候选分析的基因都选出来。把基因名都输入到算法里面,再结合背景数据库就得到分析的结果了。
所以这个算法的主要输入条件其实就是基因名即可。一般而言ORA使用的背景数据集就是GO和KEGG这些

可视化选择
对于ORA的可视化方面的话,由于富集的差异筛选也是基于P值来进行筛选的。所以一般通过柱状图或者气泡图也就可以进行展示了。例如下面的柱状图。

GSEA(Gene Set Enrichment Analysis)基因集富集分析
相较于ORA一刀切的方式来选择输入基因,GSEA的算法认为,虽然有一些基因不满足严格的筛选标准,但是也是有可能起作用的。比如说,
我们有两个基因TP53的表达差异是1.1,而TP21的表达差异是0.9。如果按照ORA的方法,如果按照1作为筛选标准,按照ORA的算法,那么TP53就可以进入后续分析。而TP21则会扔掉。但是真实情况是,在生物过程当中,TP21真的不起作用吗?显然不是的。基于这种考虑,所以才开发出了GSEA算法。

GSEA是通过整个基因组表达的情况来评估主要是哪些通路有意义。所以我们在输入的时候需要输入整个基因组的基因以及其对应的表达量(logFC即可或者表达矩阵)。
对于GSEA而言,使用的则是MSigDB的背景数据集。里面包括了相对应的GO和KEGG的数据集。
可视化选择
基于GSEA算法我们也可以得到一个评估富集的得分(ES得分)。基于富集的过程也有一个特殊的可视化的图。

对于GSEA图形的解读,我们可以把GSEA分析的图分成三个三个部分来进行解读。这三个图,纵坐标不一样,横坐标相同。我们就一部分一部分的解释这个图。
每个图片先看标题,这个GSEA分析其实是做了两个通路的GSEA的结果。其中绿色线条是一个通路,褐色线条是一个通路。

接着解释一下横坐标,横坐标代表的每个基因在数据集进行降序排序后的位置。由于GSEA是把所有测序的基因全部放进去分析的。所以如果按照排名来说的。按照上图来说,这个基因集一共有6000个基因进行了分析。
从下往上来依次说一下这个图怎么看
- 最下面的部分:那个纵坐标代表的是每个基因在两组之间的差异分析后的logFC的值。所以如果按照logFC进行降序排序的话,那就会形成这样一个平滑的曲线。里面其实每一条竖杠就代表一个基因。下图是把这两个通路当中想要研究的基因标注出来了。

- 中间部分:代表在进行GSEA分析当中目标通路相关基因在基因的差异分析当中所处的位置。如果我们把横坐标移上去就是这个样子的了。

- 最上面的那个部分,则是GSEA富集分析当中,通路的走势图。其中关于富集得到是来自于走势图的顶点部分。

NTA(Network topology Analysis)网络拓扑学
这个和之前两个稍微有点儿不一样。其实和我们在文献当中所说的蛋白相互作用(protein-protein interaction, PPI)类似。基本就是基于基因来构建一个相互作用的网络。通过网络来展示输入基因之间的相互关系。
我们需要输入的就是基因名即可。
可视化选择
对于网络拓扑的可视化,一般都选择网络的方式来进行展示。对于网络当中的具体信息。我们可以以后在说。

写在最后
基本上关于富集分析的内容就是这么多。通过上面的那些东西,我们也发现,其实算法是固定的。背景数据库呢,虽然都是叫GO或者KEGG。但是对于基因功能是在不断完善的,所以GO和KEGG的库也是在完善的,如果我们所借助的工具不能实时的更新背景数据库的话。那结果就有可能有偏差。这个时候就不得不DISS一下DAVID了。这个文献经常用的富集分析库其实好久没更新了。。。。
一般工具推荐的话,其实最好的还是R语言当中的clusterprofiler包。如果确实不会用R的话,最好也要找一个时常更新的数据库。比如明天我们要说的这个:WebSestalt。
欢迎关注公众号:数据库百科,一个介绍医学科研相关数据库使用的公众号
