用途:对 bulk RNA-seq 计数数据进行差异表达分析,比较实验条件(如处理组与对照组)之间的基因表达,支持将 R 版 DESeq2 流程迁移到 Python,或嵌入 Python 分析管线。
主要能力:支持单因素与多因素设计(如 ~batch + condition、连续协变量、交互项);执行完整 DESeq2 流程(估计 size factor、拟合基因离散度与趋势、MAP 离散度收缩、log fold change、Cook 距离与离群重拟合);用 Wald 检验并做 Benjamini-Hochberg FDR 校正;可选 apeGLM 的 LFC 收缩;结果以 pandas DataFrame 输出,含 baseMean、log2FoldChange、lfcSE、stat、pvalue、padj;可导出 CSV 或 pickle,并绘制火山图与 MA 图。
使用方式:安装命令为 uv pip install pydeseq2。典型流程为读取计数矩阵(需转置为样本×基因)与元数据,过滤低计数基因,用 DeseqDataSet(counts=..., metadata=..., design="~condition") 初始化并调用 dds.deseq2(),再用 DeseqStats(dds, contrast=["condition", "treated", "control"]) 做检验并 ds.summary(),最后按 padj < 0.05 筛选。也可使用附带脚本:python scripts/run_deseq2_analysis.py --counts counts.csv --metadata metadata.csv --design "~condition" --contrast condition treated control --output results/。
适用场景:两组或多组比较、批次效应与协变量校正、将差异表达分析集成进 Python 流程。
限制与注意:需 Python 3.10-3.11 及 pandas、numpy、scipy、scikit-learn、anndata 等依赖;计数矩阵方向、样本名匹配、设计矩阵满秩需自行检查;LFC 收缩只影响 log2FoldChange,不改变 p 值,仅用于可视化与排序;显著性判断应使用 padj。官方文档见 https://pydeseq2.readthedocs.io,仓库见 https://github.com/owkin/PyDESeq2。