[ PROMPT_NODE_27388 ]
models-spatial
[ SKILL_DOCUMENTATION ]
# 空间转录组模型
本文档涵盖了 scvi-tools 中用于分析空间分辨转录组数据的模型。
## DestVI (Deconvolution of Spatial Transcriptomics using Variational Inference)
**目的**: 使用单细胞参考数据对空间转录组进行多分辨率去卷积。
**关键特性**:
- 估计每个空间位置的细胞类型比例
- 使用单细胞 RNA-seq 参考集进行去卷积
- 多分辨率方法(全局和局部模式)
- 考虑空间相关性
- 提供不确定性量化
**适用场景**:
- 对 Visium 或类似的空间转录组数据进行去卷积
- 拥有带有细胞类型标签的 scRNA-seq 参考数据
- 希望将细胞类型映射到空间位置
- 对细胞类型的空间组织感兴趣
- 需要细胞类型丰度的概率估计
**数据要求**:
- **空间数据**: Visium 或类似的基于点(spot)的测量(目标数据)
- **单细胞参考**: 带有细胞类型注释的 scRNA-seq
- 两个数据集应共享基因
**基本用法**:
python
import scvi
# 第 1 步:在单细胞参考集上训练 scVI
scvi.model.SCVI.setup_anndata(sc_adata, layer="counts")
sc_model = scvi.model.SCVI(sc_adata)
sc_model.train()
# 第 2 步:设置空间数据
scvi.model.DESTVI.setup_anndata(
spatial_adata,
layer="counts"
)
# 第 3 步:使用参考集训练 DestVI
model = scvi.model.DESTVI.from_rna_model(
spatial_adata,
sc_model,
cell_type_key="cell_type" # 参考集中的细胞类型标签
)
model.train(max_epochs=2500)
# 第 4 步:获取细胞类型比例
proportions = model.get_proportions()
spatial_adata.obsm["proportions"] = proportions
# 第 5 步:获取细胞类型特异性表达
# 每个点上特定细胞类型的基因表达
ct_expression = model.get_scale_for_ct("T cells")
**关键参数**:
- `amortization`: 摊销策略("both", "latent", "proportion")
- `n_latent`: 潜在维度(继承自 scVI 模型)
**输出**:
- `get_proportions()`: 每个点处的细胞类型比例
- `get_scale_for_ct(cell_type)`: 细胞类型特异性表达模式
- `get_gamma()`: 比例特异性基因表达缩放
**可视化**:
python
import scanpy as sc
import matplotlib.pyplot as plt
# 在空间上可视化特定细胞类型比例
sc.pl.spatial(
spatial_adata,
color="T cells", # 如果比例已添加到 .obs
spot_size=150
)
# 或者直接使用 obsm
for ct in cell_