[ PROMPT_NODE_27384 ]
models-multimodal
[ SKILL_DOCUMENTATION ]
# 多模态与多组学整合模型
本文档涵盖了 scvi-tools 中用于联合分析多种数据模态的模型。
## totalVI (Total Variational Inference)
**目的**: CITE-seq 数据的联合分析(来自相同细胞的 RNA 和蛋白质同步测量)。
**关键特性**:
- 联合建模基因表达和蛋白质丰度
- 学习共享的低维表示
- 支持从 RNA 数据中进行蛋白质插补
- 对两种模态执行差异表达分析
- 处理 RNA 和蛋白质层中的批次效应
**适用场景**:
- 分析 CITE-seq 或 REAP-seq 数据
- 联合 RNA + 表面蛋白质测量
- 插补缺失的蛋白质
- 整合蛋白质和 RNA 信息
- 多批次 CITE-seq 整合
**数据要求**:
- 包含 `.X` 或层中基因表达的 AnnData
- `.obsm["protein_expression"]` 中的蛋白质测量数据
- 两种模态测量的是相同的细胞
**基本用法**:
python
import scvi
# 设置数据 - 指定 RNA 和蛋白质层
scvi.model.TOTALVI.setup_anndata(
adata,
layer="counts", # RNA 计数
protein_expression_obsm_key="protein_expression", # 蛋白质计数
batch_key="batch"
)
# 训练模型
model = scvi.model.TOTALVI(adata)
model.train()
# 获取联合潜在表示
latent = model.get_latent_representation()
# 获取两种模态的归一化值
rna_normalized = model.get_normalized_expression()
protein_normalized = model.get_normalized_expression(
transform_batch="batch1",
protein_expression=True
)
# 差异表达(适用于 RNA 和蛋白质)
rna_de = model.differential_expression(groupby="cell_type")
protein_de = model.differential_expression(
groupby="cell_type",
protein_expression=True
)
**关键参数**:
- `n_latent`: 潜在空间维度(默认值:20)
- `n_layers_encoder`: 编码器层数(默认值:1)
- `n_layers_decoder`: 解码器层数(默认值:1)
- `protein_dispersion`: 蛋白质离散度处理("protein" 或 "protein-batch")
- `empirical_protein_background_prior`: 使用蛋白质的经验背景先验
**高级特性**:
**蛋白质插补**:
python
# 为仅有 RNA 的细胞插补缺失的蛋白质
# (有助于将 RNA-seq 映射到 CITE-seq 参考集)
protein_foreground = model.get_protein_foreground_probability()
imputed_proteins = model.get_normalized_expression(
protein_expression=True,
n_samples=25
)
**去噪**:
python
# 获取去噪