用途
该技能面向 RNA-seq 计数数据的差异表达分析,使用 PyDESeq2 完成 DESeq2 标准化、离散度估计、Wald 检验和 LFC 收缩,并可选集成 gseapy 进行富集分析、ToolUniverse 进行基因注释。适用于用户拥有 RNA-seq 计数矩阵、需要识别差异表达基因(DEG)、比较多种菌株/条件/处理、校正批次效应,或对 DEG 进行 GO/KEGG/Reactome 富集分析等场景。
主要能力
- 差异表达分析:基于 PyDESeq2 执行标准化、离散度估计、Wald 检验和 LFC 收缩。
- 多因素设计:支持单因素、多因素及交互设计,并强调将批次/协变量纳入设计公式。
- 结果过滤:按 padj、log2FC、baseMean 等阈值筛选 DEG,支持方向性过滤和集合运算。
- 离散度分析:可提取 genewise、fitted、MAP、final 等离散度估计。
- 富集分析:可选使用 gseapy 对 DEG 进行 GO、KEGG、Reactome 富集。
- 基因注释:可选使用 ToolUniverse 进行基因 ID 转换和基因详情查询。
- 输出格式化:按问题要求格式化数值精度、百分比、计数等。
使用方式
- 问题解析:在编写代码前解析数据文件、阈值、设计因素、对比方向、富集需求及特定基因。
- 设计公式决策:检查元数据中所有变量,区分生物学兴趣因素、批次/区组协变量和无关列,确定设计公式。
- 数据加载与验证:加载计数矩阵和元数据,确保样本为行、基因为列,验证整数计数并对齐样本名。
- 检查元数据结构:打印元数据各列及水平,识别所有实验因素。
- 运行 PyDESeq2:设置参考水平,构建设计公式,执行 deseq2(),提取结果并可选进行 LFC 收缩。
- 过滤结果:按问题阈值筛选 DEG,支持方向性过滤和集合操作。
- 离散度分析(如需要):访问 dds.var 获取离散度数据。
- 富集分析(可选):使用 gseapy 对 DEG 进行通路富集。
- 基因注释(可选):使用 ToolUniverse 进行基因 ID 转换和查询。
- 输出格式化:按问题要求格式化答案。
安装命令:
pip install pydeseq2 gseapy pandas numpy scipy anndata
核心导入:
import pandas as pd
import numpy as np
from pydeseq2.dds import DeseqDataSet
from pydeseq2.ds import DeseqStats
import gseapy as gp
from tooluniverse import ToolUniverse
适用场景
- 拥有 RNA-seq 计数矩阵并希望进行差异表达分析。
- 询问 DESeq2、DEG、差异表达、padj、log2FC 等。
- 需要离散度估计或诊断。
- 希望对 DEG 进行 GO、KEGG、Reactome 富集分析。
- 询问特定基因在条件间的表达变化。
- 需要比较多个菌株/条件/处理。
- 询问 RNA-seq 中的批次效应校正。
- 问题提及“count data”“count matrix”“RNA-seq”“transcriptomics”。
限制
- PyDESeq2 与 R DESeq2 在数值上存在差异,尤其是极低离散度基因(< 1e-05),源于 Python 与 R 数值优化方法不同;结果仍具统计有效性和生物学意义。若需与 R DESeq2 完全一致,可考虑通过 rpy2 使用 R DESeq2。
- gseapy 与 R clusterProfiler 的富集结果可能因算法、数据库版本、术语简化方法不同而存在差异。若需与 R clusterProfiler 完全一致,可通过 rpy2 调用 R 包。
- 默认使用 gseapy,无需 R 依赖,适用于大多数分析。
- 该技能已在 53 个 BixBench 问题上验证,覆盖 15 个计算生物学项目,涉及 RNA-seq、miRNA-seq 和差异表达分析任务。
- 其他具体限制暂未提供。