关于 single2spatial-spatial-mapping
此技能指导使用 omicverse 的 Single2Spatial,将单细胞参考数据映射到空间转录组,并评估、可视化和导出结果,适用于空间表达分析工作流。
主要功能
- 01训练深度森林空间映射模型
- 02载入预训练模型权重
- 03评估 spot 级结果
- 04绘制表达与细胞比例图
- 05导出 AnnData 和汇总数据
适用场景
- 01从 scRNA-seq 和 Visium 重建空间细胞比例
- 02载入检查点以重新生成 spot 级结果
- 03绘制标记基因的空间表达图
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ omicverse/ omicverse --skill single2spatial-spatial-mapping安装后在 Claude Code 中输入/single2spatial-spatial-mapping确认已加载。
附带文件reference.md
详细介绍
Single2Spatial 空间映射
概述
将单细胞参考数据转换为空间分辨率表达谱时,可使用此技能。该技能遵循 t_single2spatial.ipynb,展示如何使用 PDAC scRNA-seq 和 Visium 数据训练 Single2Spatial、重建 spot 级比例并可视化标记基因表达。
操作说明
- 导入依赖项并设置样式
- 加载
omicverse as ov、scanpy as sc、anndata、pandas as pd、numpy as np和matplotlib.pyplot as plt。 - 调用
ov.utils.ov_plot_set()(或旧版本中的ov.plot_set()),使图表符合 omicverse 样式。
- 加载
- 加载单细胞和空间数据集
- 使用
pd.read_csv(...)读取处理后的矩阵,然后创建 AnnData 对象(anndata.AnnData(raw_df.T))。 - 附加元数据:
single_data.obs = pd.read_csv(...)[['Cell_type']],并设置spatial_data.obs = pd.read_csv(... ),其中包含坐标和切片元数据。
- 使用
- 初始化 Single2Spatial
- 实例化
ov.bulk2single.Single2Spatial(single_data=single_data, spatial_data=spatial_data, celltype_key='Cell_type', spot_key=['xcoord','ycoord'], gpu=0)。 - 注意,输入应为已归一化并经过对数缩放的 scRNA-seq 矩阵;确保
spot_key与空间坐标列匹配。
- 实例化
- 训练深度森林模型
- 执行
st_model.train(spot_num=500, cell_num=10, df_save_dir='...', df_save_name='pdac_df', k=10, num_epochs=1000, batch_size=1000, predicted_size=32),以拟合映射器并生成重建后的空间 AnnData(sp_adata)。 - 说明
spot_num定义每次迭代抽取的伪 spot 数量,cell_num控制每个 spot 抽取的细胞数。
- 执行
- 加载预训练权重
- 检查点已存在时,使用
st_model.load(modelsize=14478, df_load_dir='.../pdac_df.pth', k=10, predicted_size=32)跳过训练。
- 检查点已存在时,使用
- 评估 spot 级输出
- 调用
st_model.spot_assess(),计算聚合后的 spot AnnData(sp_adata_spot)以进行质控。 - 使用
sc.pl.embedding(sp_adata, basis='X_spatial', color=['REG1A', 'CLDN1', ...], frameon=False, ncols=4)绘制标记基因。
- 调用
- 可视化比例和细胞类型图
- 使用
sc.pl.embedding(sp_adata_spot, basis='X_spatial', color=['Acinar cells', ...], frameon=False)突出显示每个 spot 的细胞比例。 - 使用
palette=ov.utils.ov_palette()[11:]按Cell_type为sp_adata着色,以展示重建的细胞类型分配。
- 使用
- 导出结果
- 建议保存生成的 AnnData 对象(
sp_adata.write_h5ad(...)、sp_adata_spot.write_h5ad(...))以及衍生的 CSV 汇总文件,以供后续报告使用。
- 建议保存生成的 AnnData 对象(
- 防御性验证
# Before Single2Spatial: verify spatial coordinates exist for col in spot_key: assert col in spatial_data.obs.columns, f"Spatial coordinate column '{col}' not found in spatial_data.obs" # Verify scRNA-seq is log-normalized (max should be <~15, not hundreds/thousands) if single_data.X.max() > 50: print("WARNING: scRNA-seq data may not be log-normalized. Raw counts cause scale mismatches.") # Verify cell type column exists assert celltype_key in single_data.obs.columns, f"Cell type column '{celltype_key}' not found" - 故障排除提示
- 如果训练发散,可通过关键字参数降低
learning_rate,或减小predicted_size,以稳定森林模型。 - 确保 scRNA-seq 输入经过对数归一化;原始计数可能导致尺度不匹配和空间预测效果不佳。
- 如果
gpu不为零,请确认 GPU 可用;也可省略该参数或设置gpu=-1,回退到 CPU。
示例
- “在 PDAC scRNA-seq 和 Visium 切片上训练 Single2Spatial,然后可视化 REG1A 和 CLDN1 的空间表达。”
- “加载已保存的 Single2Spatial 检查点,重新生成 spot 级细胞类型比例以用于报告。”
- “使用 omicverse 调色板绘制重建的细胞类型图,并与组织学结果进行比较。”
参考资料
- 教程笔记本:
t_single2spatial.ipynb - 示例数据集和模型:
omicverse_guide/docs/Tutorials-bulk2single/data/pdac/ - 快速复制/粘贴命令:
reference.md
评论
支持 Markdown