富集分析的原理与实现 (2)

代码如下:

fdr=c() for (i in dim(my_go_res)[1]:1) { if (i==dim(my_go_res)[1]) { tmpfdr=my_go_res$pvalue[i] }else{ tmpfdr=min(tmpfdr,my_go_res$pvalue[i] * (dim(my_go_res)[1] / i)) } fdr=append(fdr,tmpfdr) } my_go_res$p.adj=rev(fdr)

富集分析的原理与实现

到这儿富集分析的完整流程才算结束

4. 轮子有现成的

当然,这个算法已经非常常见了,clusterProfiler的enricher()就能够自定义基因集做富集分析。使用如下:

deg_gmt=clusterProfiler::enricher(deg$gene,TERM2GENE = gmt.df,minGSSize = 2,maxGSSize = 2000) go_res=deg_gmt@result

富集分析的原理与实现

和上面的结果是一模一样的。

今天的内容就到这里,后台回复20211007获取本文的测试数据和代码,以及(单细胞)转录组分析中可能用到的GO KEGG富集分析代码(这部分本文不演示)。

ref

超几何分布检验(hypergeometric test):https://blog.csdn.net/linkequa/article/details/86491665

富集分析的p值是怎么算出来的?:公众号【YuLabSMU】

R tips 富集分析及其p值在R中的计算:公众号【生信菜鸟团】

False Discovery Rates, FDR, clearly explained:https://www.youtube.com/watch?v=K8LQSvtjcEo&t=909s&ab_channel=StatQuestwithJoshStarmer

因水平有限,有错误的地方,欢迎批评指正!

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwzdff.html