用途:对 bulk RNA-seq 计数数据进行差异表达分析,比较实验条件(如处理组与对照组),识别差异表达基因,可将 R 版 DESeq2 流程迁移到 Python 管线。
主要能力:支持单因素与多因素设计(如 ~batch + condition、连续协变量、交互项);执行完整 DESeq2 流程(大小因子归一化、基因离散度拟合、MAP 离散度收缩、log fold change 拟合、Cook 距离离群检测与可选重拟合);Wald 检验并做 Benjamini-Hochberg FDR 校正;可选 apeGLM LFC 收缩;结果以 pandas DataFrame 输出,含 baseMean、log2FoldChange、lfcSE、stat、pvalue、padj;支持从 CSV/TSV/AnnData 载入数据,导出 CSV 与 pickle。
使用方式:安装 uv pip install pydeseq2。典型流程为载入计数矩阵(需为样本×基因,必要时用 .T 转置)与元数据,过滤低计数基因,初始化 DeseqDataSet(counts=..., metadata=..., design="~condition") 并调用 dds.deseq2(),再用 DeseqStats(dds, contrast=["condition", "treated", "control"]) 执行 ds.summary(),通过 ds.results_df 获取结果,按 padj < 0.05 筛选显著基因。可选 ds.lfc_shrink() 用于可视化与排序。技能还提供命令行脚本 scripts/run_deseq2_analysis.py,支持 --counts、--metadata、--design、--contrast、--output、--min-counts、--alpha、--n-cpus、--plots 等参数。
适用场景:两组或多组比较、批次效应校正、连续协变量建模、火山图与 MA 图绘制、Python 生信流程集成。
限制:需 Python 3.10-3.11 及 pandas、numpy、scipy、scikit-learn、anndata 等依赖;可视化需 matplotlib、seaborn。设计矩阵须满秩,避免变量混杂;样本名需与元数据一致;LFC 收缩仅影响 log2FoldChange,不改变 p 值,显著性应报告未收缩 p 值。官方文档 https://pydeseq2.readthedocs.io,仓库 https://github.com/owkin/PyDESeq2。