用途:PyDESeq2 用于 bulk RNA-seq 计数数据的差异表达分析,可在 Python 中完成从数据加载到结果解读的完整流程,适合比较实验条件(如处理组与对照组)、处理批次效应或协变量,以及将 R 版 DESeq2 工作流迁移到 Python 管道。
主要能力:支持单因素与多因素设计(如 "~condition"、"~batch + condition"、"~age + condition"、交互项);执行完整 DESeq2 流程,包括大小因子归一化、基因离散度拟合、离散度趋势与先验、MAP 离散度收缩、log fold change 拟合、Cook's 距离离群检测与可选重拟合;使用 Wald 检验并做 Benjamini-Hochberg FDR 校正;可选 apeGLM 的 LFC 收缩;结果以 pandas DataFrame 输出,含 baseMean、log2FoldChange、lfcSE、stat、pvalue、padj;支持与 AnnData 集成。
使用方式:安装可用 pip install pydeseq2 或 conda install -c bioconda pydeseq2。典型流程为:读取计数矩阵(通常需转置为样本×基因)与元数据,过滤低计数基因和缺失元数据样本,用 DeseqDataSet(counts=..., metadata=..., design="~condition") 初始化并调用 dds.deseq2(),再用 DeseqStats(dds, contrast=["condition", "treated", "control"]) 执行检验并 ds.summary(),结果通过 ds.results_df 获取,可导出 CSV 或用 pickle 保存对象。可选 ds.lfc_shrink() 做收缩,仅影响 log2FoldChange,不改变 p 值。技能还提供命令行脚本 scripts/run_deseq2_analysis.py,支持 --counts、--metadata、--design、--contrast、--output、--min-counts、--alpha、--n-cpus、--plots 等参数。
适用场景:两组或多组比较、批次效应校正、连续协变量建模、结果可视化(火山图、MA 图)以及批量处理多个数据集。
限制:需 Python 3.10-3.11 及 pandas、numpy、scipy、scikit-learn、anndata 等依赖;可视化需 matplotlib、seaborn。计数矩阵方向、样本名匹配、设计矩阵满秩等需注意;低表达基因与缺失元数据样本应预先过滤。资料未提供收费、价格或平台信息。