代码分享】“基因集单通路的泛癌GSEA富集分析
【代码分享]基因集单通路的泛癌GSEA富集分析#资料 如图最近在整理TCGA多组学数据时发现不少小伙伴对通路活性评估有需求。今天分享一个快速实现泛癌GSEA分析的方法特别适合需要观察某个特定通路在多个癌症类型中激活状态的情况。这个方法不需要复杂的编程基础咱们用R语言手把手走流程。先看核心代码结构完整脚本见文末github仓库library(clusterProfiler) library(org.Hs.eg.db) # 示例数据预处理 pancan_data - read.csv(tcga_pancan_expression.csv, row.names1) gene_list - pancan_data$log2FC names(gene_list) - rownames(pancan_data) gene_list - sort(gene_list, decreasingTRUE) # 执行GSEA分析 gsea_res - gseGO(geneList gene_list, ont BP, OrgDb org.Hs.eg.db, keyType SYMBOL, pvalueCutoff 0.05)这段代码的玄机在geneList参数的构造。注意这里用的是排序后的基因列表我习惯用log2FC降序排列这样GSEA算法才能正确计算富集得分。遇到过新手直接把差异基因扔进去跑结果出不来富集通路的情况多半是这个排序步骤被忽略了。可视化部分推荐用阶梯图展示核心富集区域library(enrichplot) gseaplot2(gsea_res, geneSetID GO:0007049, title Cell Cycle Pathway, color #E64B35, base_size 12)这里geneSetID需要替换成自己关注的通路编号。有个小技巧用color参数指定颜色时建议避开默认的红色系特别是在需要区分上下调通路时用对比色更直观。【代码分享]基因集单通路的泛癌GSEA富集分析#资料 如图实际操作时发现不同癌症类型的数据结构差异较大建议在循环分析前统一格式cancer_types - unique(meta_data$cancer_type) for (ctype in cancer_types) { subtype_data - filter(pancan_data, cancer_type ctype) # 后续分析步骤... saveRDS(gsea_res, paste0(gsea_,ctype,.rds)) }这个循环框架可以扩展到33种TCGA癌症类型。注意保存中间结果时建议用.rds格式比.csv节省空间且保留数据结构完整。遇到过最坑的报错是基因ID转换问题。当使用不同的注释数据库时一定要确认keyType参数与实际数据匹配。比如从ENSEMBL转SYMBOL时经常会有版本号问题这时需要library(AnnotationDbi) gene_symbol - mapIds(org.Hs.eg.db, keysrownames(expr_matrix), columnSYMBOL, keytypeENSEMBL)这种ID映射的细节处理直接影响分析结果的可靠性建议每次转换后都做缺失值检查。最后说下结果解读。GSEA的NES标准化富集分数绝对值大于1通常认为有生物学意义但具体阈值需要结合样本量调整。个人经验是泛癌分析中NES1.5的通路更值得关注。附上一个结果速查表制作方法signif_res - gsea_res[gsea_res$qvalues 0.1 abs(gsea_res$NES) 1.5,] DT::datatable(signif_res[,c(ID,Description,NES,qvalue)], optionslist(pageLength10))用交互式表格呈现结果点击表头还能按列排序比静态表格方便得多。这套流程跑完基本就能快速锁定目标通路在不同癌种中的激活模式了。完整代码和测试数据已上传到github见评论区遇到报错欢迎带图踢我。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2477494.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!