生信新手也能做的富集分析:从差异基因到GO/KEGG气泡图
900个差异基因、14695个背景基因、装不上的包和8个可疑数值。一次富集分析实录,看智能体怎么处理细节。
对刚进入转录组方向的研究生来说,差异表达之后的GO/KEGG富集分析几乎是绕不开的一步:组会要讲,开题要放,论文里也常常要有一张气泡图。步骤看似固定,真动手时却处处是坑——背景基因怎么选,R包或Python包装不上怎么办,前几条通路该怎么解读。PaperOK科研助手官网的一个生信模式真实运行案例,把这些细节完整地展示了出来。
从一句需求开始
提问是这么写的:这是两组样本的DESeq2结果(deg.csv),请筛选padj<0.05且|log2FC|>1的基因,进行GO和KEGG富集分析,画出气泡图,并解释前5条通路的生物学意义。数据是演示用的表达结果。
第一步是筛选。文件里有19,226个基因,其中padj有值的14,695个,按条件筛出900个差异基因,上调567个、下调333个。这里有一个新手容易忽略的细节:富集分析的背景,它用的是这14,695个实际检测到的基因,而不是全基因组。背景选得过大,会让很多通路显得比实际更显著。这一处理在分析步骤里有明确说明,日后写方法部分可以直接对照。如果你的导师或审稿人问起“背景基因是怎么定的”,翻回工作过程就能找到答案,不用凭记忆去回想当时的设定。
包装不上,就自己写检验
第二步是富集。按常规做法,它准备调用gseapy,但这个包没装上。它没有停下来让用户自己解决环境问题,而是改为下载Enrichr的GO 2023与KEGG 2021基因集,自己写超几何检验和BH多重校正,再用Fisher精确检验交叉核对。全部、上调、下调三组分别做。中途基因集下载太慢,它就把下载转到后台,完成后自动接着往下做。
这一段对于新手来说还是非常有借鉴意义的,富集分析的统计其实并不神秘,超几何检验+多重校正,用几十行代码就可以实现。代码在本机上真实运行,脚本与结果一同保存在项目文件夹中,逐行理解,下次遇到类似数据可以直接复用。
真实运行案例:差异表达基因的富集分析与通路解读
KEGG 前 20 中排第一的是 Toll 样受体通路,98 个基因中命中 65 个,padj 2.4×10⁻⁴¹;GO 生物过程显著 459 条,第一名是细胞因子介导的信号通路。上调基因集中在 NF-κB、细胞因子–受体、TLR、TNF 等炎症通路,下调基因集中在细胞周期(53 个基因)、DNA 复制、PPAR 与甾醇合成。输出包括差异基因表与富集结果、GO 和 KEGG 气泡图、上下调对比图、分析报告和逐步执行的代码,用时约 12 分钟。
解读通路,比画图更难
气泡图画出来不难,难的是解读。KEGG前5条通路依次是Toll样受体、NF-κB、脂质与动脉粥样硬化、细胞因子–受体相互作用和TNF信号。新手常见的写法是一条一条介绍,写成五个“发现”。它给出的解读是:这5条通路指向的是同一条炎症级联,而不是5个独立发现;“动脉粥样硬化”只是通路名称,不代表样本与这种疾病相关。
在未看到数据说明的情况下,它根据表达谱推断出“髓系细胞受到LPS类刺激”,符合数据的真实设定。更令人惊叹的是其主动质控:发现8个基因的baseMean和lfcSE完全一样,怀疑有被人为修改,建议检查原始文件。在真实的研究中,这些问题可能是由错误操作或复制粘贴引起的,也可能是更严重的问题,越早发现问题越好。
此案例是生信模式。生信模式提供25个生信插件和分析内核,首次进入会自动安装。对于新手而言,“工作过程”可能更易于逐步展开。每一步筛选什么、为何更换方法、如何得到结果都清晰可见,便于边用边学。
想自己试一下的话,可以将DESeq2结果文件放到项目中,提问时说明筛选阈值、背景基因集和所需数据库。阈值不同,富集结果可能会差别很大,写进方法中也要说明。觉得哪一步处理得不合理,就从那条消息岔出去,换一个设定重跑,然后对比一下。有疑义的话,可以把结果和脚本发给师兄师姐。
当然富集结果仅仅是线索。哪些通路与你所研究的问题有关,是否需要进行实验验证还需要由研究人员结合实验和领域知识进行判断。工具可以帮你把流程跑扎实,但结论还是需要你来下的,你写进论文中的每一句解读,也应该经得起你自己的追问。
关于 PaperOK科研助手
懂科研的 AI 搭档,运行在你的电脑上:文献、数据、写作与汇报,一个对话框完成。支持 macOS、Windows、Linux,免费下载,了解 PaperOK科研助手 免费下载