最近群里问的比较多的问题如下。如果大家有什么生信问题欢迎图文并茂给我发邮件jzhang910@qq.com 或者 微信 Biotree123。

非常经典的报错:这是由于功能富集分析的时候enrichKEGG函数没有接内置的通路与基因对应的关系数据包,都是从函数内部去调用KEGG网址在线去读数据的原因,遇到网络不好极其容易断联!
cannot read from connection
这个时候我们有三种方法解决上述问题,来看看。
读取 deg 结果,示例文件 DEG_edgeR_all.csv :https://pan.baidu.com/s/1BmaoASP7gsVg8LwlqawOYQ?pwd=wfsv 提取码: wfsv
rm(list=ls())
library(data.table)
library(clusterProfiler) #功能富集分析包,统计学原理累计超几何分布
library(org.Hs.eg.db) # 数据包,做基因ID转换,是物种特异性包Hs表示人
library(ggplot2)
deg <- fread("DEG_edgeR_all.csv",header = T,data.table = F)
deg <- deg[deg$regulated!="normal", ]
head(deg)
## 基因ID转换
genelist <- bitr(gene=deg$SYMBOL, fromType="SYMBOL", toType="ENTREZID", OrgDb='org.Hs.eg.db')
head(genelist)

上面的报错你可以看到 Timeout of 60 seconds was reached,默认只给你60秒的时间!延长它!
# https://www.kegg.jp/kegg/tables/br08606.html organism 参数不同物种
# enrichKEGG 函数需要连网去KEGG数据库下载基因和通路的对应关系
# Set timeout options
options(timeout = 99999)
# https://rest.kegg.jp/list/pathway/hsa 通路id与基因名对应关系表格
# https://rest.kegg.jp/link/hsa/pathway 通路id与通路名称对应关系
ekegg <- enrichKEGG(gene = genelist$ENTREZID, organism = 'hsa', pvalueCutoff = 1, qvalueCutoff = 1)
## 绘制条形图
p_kegg <- barplot(ekegg, showCategory=10,label_format = 100) +
ggtitle("KEGG Pathway")
p_kegg
这里会稍微等待一点时间,但是结果是成功的:

gmt基因集下载见:下载基因集,然后使用 enricher 函数进行富集。
library(devtools)
# install_github("jokergoo/GSEAtopics")
#### MSigDB
library(GSEAtopics)
list_msigdb_versions()
list_msigdb_collections("2025.1.Hs")
list_msigdb_collections("2025.1.Mm")
# 下载kegg
lt = get_msigdb(version = "2025.1.Hs", collection = "c2.cp.kegg_legacy", gene_id_type = c("symbols"),as_table = T)
dim(lt)
head(lt)
table(lt$gene_set)
## TERM2GENE: 可以自定义基因集,基因与通路的对应关系
my_path <- enricher(gene=deg$SYMBOL, pvalueCutoff = 1, qvalueCutoff = 1, TERM2GENE=lt)
p1 <- barplot(my_path, showCategory=15,color = "pvalue",,label_format = 100) + ggtitle("c2.cp.kegg_legacy")
p1
是不是非常方便:

前往这里观看:KEGG的富集分析终于真的本地化了。
今天分享到这里~