用途
PyDESeq2 是 DESeq2 的 Python 实现,用于对 bulk RNA-seq 计数数据进行差异表达分析。该技能帮助设计并执行从数据加载到结果解读的完整工作流,包括公式化的单因素与多因素设计、带多重检验校正的 Wald 检验、可选的 apeGLM 收缩,以及与 pandas 和 AnnData 的集成。
适用场景
- 分析 bulk RNA-seq 计数数据以寻找差异表达
- 比较实验条件之间的基因表达(例如处理组 vs 对照组)
- 执行考虑批次效应或协变量的多因素设计
- 将基于 R 的 DESeq2 工作流转换为 Python
- 将差异表达分析集成到基于 Python 的流程中
- 用户提到 "DESeq2"、"differential expression"、"RNA-seq analysis" 或 "PyDESeq2"
主要能力
- 数据准备:要求原始整数计数,基因为列、样本为行,并配有匹配的元数据;不得向 DESeq2 输入归一化或转换后的值。
- 设计指定:指定设计因子及每个因子的参考水平。
- DESeq2 拟合:计算 size factors、离散度(dispersions)和 GLM 拟合。
- 统计检验:针对指定对比(contrast)执行 Wald 检验。
- 可选 LFC 收缩:用于排序和可视化。
- 结果导出:输出带校正 p 值的结果表。
- 多因素设计、对比和交互项支持。
- 结果解读:按校正 p 值、效应量筛选显著基因,区分上调和下调,排序与质量指标检查。
- 可视化:火山图与 MA 图。
- 常见问题排查:数据格式、设计矩阵、无显著基因等。
使用方式
标准分析可通过 Python API 完成:加载计数与元数据、过滤低计数基因、显式设置参考水平、构建 DeseqDataSet 并调用 deseq2()、用 DeseqStats 执行统计检验、访问 results_df 结果。
技能还包含一个完整的命令行脚本 scripts/run_deseq2_analysis.py,支持参数如 --counts、--metadata、--design、--contrast、--output、--min-counts、--alpha、--n-cpus、--shrink-coeff、--plots。脚本功能包括自动数据加载与验证、基因与样本过滤、完整 DESeq2 流程执行、可定制参数的统计检验、结果导出(CSV 和可移植的 AnnData/H5AD)、PyDESeq2 0.5.x 的显式 LFC 收缩系数支持,以及可选可视化(火山图和 MA 图)。
安装与要求
安装命令:uv pip install pydeseq2==0.5.4
系统要求:Python 3.11+、PyDESeq2 0.5.4、pandas 2.2.0+、numpy 2.0.0+、scipy 1.12.0+、scikit-learn 1.4.0+、anndata 0.11.0+、formulaic 1.0.2+ 和 formulaic-contrasts 0.2.0+。可视化可选依赖 matplotlib 和 seaborn。
关键提醒
- 数据方向很重要:计数矩阵通常以基因 × 样本加载,但需要样本 × 基因,必要时用 .T 转置。
- 样本过滤:分析前移除元数据缺失的样本。
- 基因过滤:过滤低计数基因(如总读数 < 10)以提升功效并减少计算时间。
- 设计公式顺序:将校正变量放在关注变量之前(如 "~batch + condition" 而非 "~condition + batch")。
- LFC 收缩时机:在统计检验之后应用,仅用于可视化/排序;p 值仍基于未收缩估计。
- 结果解读:使用 padj < 0.05 判断显著性,而非原始 p 值;Benjamini-Hochberg 过程控制错误发现率。
- 对比指定格式为 [变量, 测试水平, 参考水平]。
- 保存中间对象:优先使用 dds.to_picklable_anndata().write_h5ad("dds_result.h5ad") 以获得可移植输出;只加载自己创建且信任的 pickle 文件。
限制
该技能要求输入为原始整数计数,不接受归一化或转换后的值。设计矩阵若不满秩(如变量混杂)会报错,需移除混杂变量或添加交互项。无显著基因可能由效应量小、生物学变异高、样本量不足或技术问题(批次效应、离群值)导致。版本相关细节可能过时,应以所安装版本的官方文档为准。不得编造结果、参数、标识符、引用或统计量;不得超出统计支持范围解读生物学意义。
参考资源
官方文档:https://pydeseq2.readthedocs.io GitHub 仓库:https://github.com/scverse/PyDESeq2 发表文献:Muzellec et al. (2023) Bioinformatics, DOI: 10.1093/bioinformatics/btad547 原始 DESeq2 (R):Love et al. (2014) Genome Biology, DOI: 10.1186/s13059-014-0550-8