用途:对 bulk RNA-seq 计数数据进行差异表达分析,比较实验条件(如处理组与对照组),支持多因素设计以校正批次效应或协变量,也可将 R 版 DESeq2 流程迁移到 Python 管线。
主要能力:提供 DeseqDataSet 与 DeseqStats 两类核心对象,完成标准化、离散度拟合、MAP 离散度收缩、对数倍数变化拟合、Cook 距离离群检测与重拟合;Wald 检验支持 alpha 阈值、Cook 过滤与独立过滤,padj 采用 Benjamini-Hochberg FDR 校正;可选 lfc_shrink() 应用 apeGLM 收缩,仅影响 log2FoldChange,不改变 p 值。结果 DataFrame 含 baseMean、log2FoldChange、lfcSE、stat、pvalue、padj。
使用方式:安装命令为 uv pip install pydeseq2。典型流程为读取计数矩阵(通常需 .T 转置为样本×基因)与元数据,过滤低计数基因(如总计数≥10)和缺失元数据样本,用 Wilkinson 公式指定设计(如 "~condition"、"~batch + condition"),调用 dds.deseq2() 拟合,再用 DeseqStats(dds, contrast=["condition", "treated", "control"]) 与 ds.summary() 检验,结果可导出 CSV 或 pickle。技能附带命令行脚本 scripts/run_deseq2_analysis.py,支持 --counts、--metadata、--design、--contrast、--output、--min-counts、--alpha、--n-cpus、--plots 等参数。
适用场景:两组比较、多处理组分别与对照比较、批次校正、连续协变量(如年龄)纳入设计、火山图与 MA 图可视化、按 padj 或效应量筛选与排序基因。
限制与注意:计数矩阵方向需为样本×基因;设计公式中校正变量应放在关注变量之前;设计矩阵不满秩(变量混杂)会报错;收缩值仅用于可视化与排序,显著性应报告未收缩 p 值;需 Python 3.10-3.11 及 pandas、numpy、scipy、scikit-learn、anndata 等依赖,可视化可选 matplotlib、seaborn。官方文档见 https://pydeseq2.readthedocs.io,仓库见 https://github.com/owkin/PyDESeq2。