主讲老师第三十课:Friends分析
如果富集到的某个我们感兴趣的通路中基因数⽬依然⽐较多,那么如何从这⼀堆基因中挑选最重要的那个就是⼀个问题,哪些基因会比较重要呢?是基因的差异改变程度吗?这里,介绍一个基于 GO 分析结果后的进一步分析方法,即 Friens 分析。基因的 Friends 分析对重要基因进行了重新定义。
如果一个人的朋友比较多,那么这个人一般来说也会显得更重要一些,因此,在基因水平上也是这样定义的。假设一个基因与通路上的其它基因都存在相互作用的话,那么这个基因就可能⽐较重要,可能是所谓的 hub-gene。下面,我们来看下如何根据基因信息进行 Friends 分析(Friends.zip)。
1.R 包和数据准备
1.1 R 包安装与加载
这里,我们使用 GOSemSim 包进行差异蛋白的 Friends 分析,这个包是由余叔在 2010年发表于Bioinformatics 杂志上,题目为 GOSemSim: an R package for measuring semantic similarityamong GO terms and gene products同时将该包储存于 Bioconductor 网站上,大家在后续使用这个 R 包进行后续分析时记得引用该文章
1.2 数据读取
这里,我们随机选取了一组基因用于后续分析。
接下来,我们将基因列表读取进来。
通过 str()函数,可以看到,其中包含了 8 个不同基因的相关信息。
同时,使用 as.character() 函数将数据框中 ENTREZID 号转换成字符串格式
2.计算相似性
首先,简单介绍一下,与大家熟悉的一样,常规的 GO 分析分为三种,分别为生物过程(biologicalprocess, BP),细胞组分(cellular component, CC),以及分子功能(molecularfunction,MF),在此,我们同样从 BP,CC 和 MF 三个层面来进行分析。
通过 godata() 函数来构建来构建相应物种三个不同方面的 GOSemSim 所需的 GO 注释数据。
随后,根据前面得到的注释数据,使用 mgeneSim() 函数,计算它们之间的语义相似度最终得到它们之间的语义相似度和相应的 GO 语义相似度。
基于分析得到的相似度结果。我们进一步计算这些基因在 BP,CC 和 MF 层面的几何平均值,得到最终的评分,以用于综合评估该基因在三个层面的功能由于前面的分析是基于 ENTREZID 号进行的,为了便于后续的分析,我们将基因名从ENTREZID 改为Gene Symbol随后,进一步去除基因与本身基因之间的相关性,使用 melt()函数将宽格式数据转化成长格式数据。
3.绘制 boxplot 图
由于不同基因之间均可计算得到相似性评分,因此,我们使用 aggregate() 函数需要计算所有评分的平均数同时,根据相似性评分的平均值,对其进行排序,根据评分的高低,将基因名设置为因子(factor)格式最终,使用 ggplot() 函数对 Friends 分析结果进行可视化展示可以看到,基因 SIPA1 在其中发挥重要功能的基因,可能是重要的基因,这样一来,又多了一个获得hub gene 的方法。