[ PROMPT_NODE_27084 ]
Pydeseq2 工作流指南
[ SKILL_DOCUMENTATION ]
# PyDESeq2 工作流指南
本文档提供了常见 PyDESeq2 分析模式的详细分步工作流。
## 目录
1. [完整的差异表达分析](#complete-differential-expression-analysis)
2. [数据加载与准备](#data-loading-and-preparation)
3. [单因素分析](#single-factor-analysis)
4. [多因素分析](#multi-factor-analysis)
5. [结果导出与可视化](#result-export-and-visualization)
6. [常见模式与最佳实践](#common-patterns-and-best-practices)
7. [故障排除](#troubleshooting)
---
## 完整的差异表达分析
### 概述
标准的 PyDESeq2 分析包含两个阶段的 12 个主要步骤:
**第一阶段:读取计数建模(步骤 1-7)**
- 标准化与离散度估计
- 对数倍数变化(Log fold-change)拟合
- 异常值检测
**第二阶段:统计分析(步骤 8-12)**
- Wald 检验
- 多重检验校正
- 可选的 LFC 收缩
### 完整工作流代码
python
import pandas as pd
from pydeseq2.dds import DeseqDataSet
from pydeseq2.ds import DeseqStats
# 加载数据
counts_df = pd.read_csv("counts.csv", index_col=0).T # 如有需要进行转置
metadata = pd.read_csv("metadata.csv", index_col=0)
# 过滤低计数基因
genes_to_keep = counts_df.columns[counts_df.sum(axis=0) >= 10]
counts_df = counts_df[genes_to_keep]
# 移除元数据缺失的样本
samples_to_keep = ~metadata.condition.isna()
counts_df = counts_df.loc[samples_to_keep]
metadata = metadata.loc[samples_to_keep]
# 初始化 DeseqDataSet
dds = DeseqDataSet(
counts=counts_df,
metadata=metadata,
design="~condition",
refit_cooks=True
)
# 运行标准化与拟合
dds.deseq2()
# 执行统计检验
ds = DeseqStats(
dds,
contrast=["condition", "treated", "control"],
alpha=0.05,
cooks_filter=True,
independent_filter=True
)
ds.summary()
# 可选:应用 LFC 收缩以进行可视化
ds.lfc_shrink()
# 获取结果
results = ds.results_df
print(results.head())
---
## 数据加载与准备
### 加载 CSV 文件
计数数据通常以“基因 × 样本”格式提供,但需要进行转置:
python
import pandas as pd
# 加载计数矩阵(基因 × 样本)
counts_df = pd.read_csv("counts.csv", index_col=0)
# 转置为“样本 × 基因”
counts_df = counts_df.T
# 加载元数据(已为“样本 × 变量”格式)
metadata = pd.read_csv("metadata.csv", index_col=0)
### 加载