超几何分布富集分析 GO,KEGG富集分析,循环Fisher‘s test
这几天真的被这个超几何富集分析做的头大。原来单纯用找到的显著基因分析出来的pathway不一定是准确的,或者说不一定是具有显著性的。详细的原理推荐下面两个链接
https://www.jianshu.com/p/3d01a66e235b
https://blog.csdn.net/linkequa/article/details/88189582
这篇小记专注于使用clusterprofile包进行富集分析,再进行fisher’s 检验。btw,也吐槽一下大部分网站做出来的富集分析多多少少会有一些缺失或者滞后性,还是用最新的包跑一下比较严谨
ID转换
先导入需要用的包
library(clusterProfiler)
library(DOSE)
library(org.Hs.eg.db)
keytypes(org.Hs.eg.db) #可以转换的ID格式,如uniport,ENTERZID..
导入数据
#先导入全局蛋白list(234个蛋白)
olink<- read.csv('~/PD/string_protein_annotations.tsv', sep = "\t")
symbo<- olink$X.node #(提取蛋白名称,其实不单独提取成一个向量也没关系)
表格格式无所谓,要的只是那一列蛋白的名字
ids<- bitr(symbo, #使用olink$X.node 也可以
fromType = "SYMBOL", #输入的格式
toType = c("GENENAME","ENTREZID"), #想得到的格式
OrgDb = 'org.Hs.eg.db')
接下来导入显著蛋白的名称数据,方法同上
olink.sig<- read.csv('~/PD/PD分期/olink_sig_original.csv', check.names = F)
#这个数据格式里列名是每个显著蛋白,大家根据自己的df来提取名称
symbo.sig<- colnames(olink.sig[6:36])
ids.sig<- bitr(symbo.sig, fromType = "SYMBOL", toType = c("GENENAME","ENTREZID"),
OrgDb =