PyDESeq2 差异表达分析
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/pydeseq2。
技能介绍
要解决什么问题
Bulk RNA-seq 的差异表达分析通常依赖 R 里的 DESeq2。若整条管线都在 Python(pandas、AnnData、下游机器学习或可视化)里,在 R 与 Python 之间来回导出计数矩阵和元数据,既容易搞错样本名对齐,也难把分析嵌进自动化流程。
PyDESeq2 是 DESeq2 的 Python 实现,本技能把从数据准备到结果解释的工作流写清楚,便于在 Python 环境里完成与经典 DESeq2 思路一致的分析。
技能如何组织工作流
核心步骤与 DESeq2 一致,并强调与 pandas / AnnData 的衔接:
- 数据准备:计数矩阵为 samples × genes 的非负整数;元数据为样本 × 实验因子。常见坑是基因×样本矩阵需
.T转置,以及低表达基因与缺失元数据样本的过滤。 - 设计公式:Wilkinson 符号(R 风格),单因素如
~ condition,多因素如~ batch + condition;调整变量应放在关注变量之前。 - 拟合:
DeseqDataSet与deseq2()完成大小因子、离散度估计与收缩、log2 倍数变化及 Cook 距离等步骤。 - 检验与导出:Wald 检验;对比格式为
[变量, 检验水平, 参考水平]。结果含log2FoldChange、pvalue、padj(Benjamini–Hochberg)。可选 apeGLM 收缩仅影响 LFC 展示与排序,不改变 p 值。
技能还指向 scripts/run_deseq2_analysis.py,用于标准 CLI 批量分析;复杂 API 与工作流细节见 references/api_reference.md、references/workflow_guide.md。
适用边界与注意点
- 面向 bulk RNA-seq 计数,不是单细胞专用流程。
- 设计矩阵满秩:批次与处理完全混淆时,需改设计或加交互项,否则拟合失败。
- 显著性以
padj < 0.05为准;可视化可用收缩后的 LFC,报告显著性仍用未收缩检验结果。 - 环境要求 Python 3.10–3.11 及文档列出的科学计算依赖;可视化需额外安装 matplotlib/seaborn。
使用场景
- 已具备 samples×genes 计数矩阵与样本元数据,要在 Python 里完成处理组 vs 对照的 Wald 检验并导出含 padj 的差异基因表。
- 同一批数据分两次测序,需要在设计公式中加入批次项,再估计处理条件的 log2FC 与 FDR 校正 p 值。
- 课题原先在 R 中跑 DESeq2,希望把加载、拟合、对比与 CSV 导出改成 pandas 可复现的 Python 流程。
- 多个处理水平都要与同一对照比较,需按 contrast 三元组逐组检验并整理多重比较后的显著基因列表。
适合人员
- 维护 NGS 分析脚本的生物信息工程师,要把 DESeq2 式统计嵌入 Python 服务或流水线,避免与 R 来回传数。
- 撰写 bulk RNA-seq 论文的研究生,需要从 count 矩阵跑到 Wald 结果,并用 padj 与 log2FoldChange 做火山图与解读。
- 负责动物或细胞处理实验的转录组分析员,常在控制批次或协变量后向合作者交付差异表达基因清单。
- 在 Python 环境做公共数据再分析的数据分析师,希望 DE 步骤与 AnnData、pandas 及下游建模共用同一套依赖。