fold enrichment是什么?当然问google。
这就很简单了,无非是GeneRatio / BgRatio而已嘛。clusterProfiler把这两值都给出来了,你无非就是除一下。所以我估计问这问题的小朋友不知道是什么,也不搜一下。
library(DOSE)data(geneList)de = names(geneList)[1:100]x = enrichDO(de)假设我们有这样一个富集分析的结果,那么我们可以用clusterProfiler.dplyr操作一下,衍生出一个FoldEnrichment的变量。
library(clusterProfiler.dplyr)x <-mutate(x, FoldEnrichment = parse_ratio(GeneRatio) / parse_ratio(BgRatio))这样就有了一个FoldEnrichment的值,假如你不放心的话,你可以检验一下。
> head(x, 2) ID Description GeneRatio BgRatio pvalue1 DOID:0060071 pre-malignant neoplasm 5/77 22/8007 1.671524e-062 DOID:5295 intestinal disease 9/77 157/8007 1.759049e-05 p.adjust qvalue geneID Count1 0.0006401937 0.0004609887 6280/6278/10232/332/4321 52 0.0027885022 0.0020079362 4312/6279/3627/10563/4283/890/366/4902/3620 9 FoldEnrichment1 23.6334122 5.961039比如这里第一个:
> 5/77 / (22/8007)[1] 23.63341然后这个变量有了,要输出表格的话as.data.frame然后再套个write.csv解决。要画图的话,那更加容易,变量就在富集结果之中,比如直接dotplot即可。
其实这个Fold Enrichment和Rich Factor是一个东西,FoldEnrichment = (k/n) / (M/N),而RichFactor = k/M,明白了吧,n和N数字是不变的,所以等同于说FoldEnrichment = RichFactor * C,C = N/n 是一个常数,所以它俩是一个东西!不信你再mutate一个richFactor出来,然后再用ggplot画个散点图,所有点都会落在一条直线上。