首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Xenium Explorer 多样本拼片拆分 & ROI 区域圈选 -- 代码更新

Xenium Explorer 多样本拼片拆分 & ROI 区域圈选 -- 代码更新

作者头像
生信大杂烩
发布2025-11-12 20:06:34
发布2025-11-12 20:06:34
1170
举报

之前我们有介绍过使用Xenium Explorer对一张Xenium芯片上多个样本数据进行拆分或者在组织上圈选ROI,基本上步骤就是在Xenium Explorer里手动圈好样本/ROI → Export Cell Stats CSV → pandas 清洗 → 再 merge进adata.obs,这样的话就可以在adata的metadata里添加一列信息用于区分样本/ROI。

Xenium空间转录组实战 | Xenium Explorer 多样本拼片拆分 & ROI 区域圈选

但是经常有小伙伴反馈导出圈选细胞信息的csv后,读取步骤多、列名对不齐、CSV 里 cell_id 格式偶尔还带前缀,容易报错。这里我们可以使用SpatialData包中的一个现成函数match_sdata_to_table(),直接就能把样本/ROI标签直接写到单细胞metadata里。

1. Xenium Explorer圈选区域基操
2. 也可以同时圈选多个区域
3. 导出圈选区域细胞信息

每个圈选区域能导出一个csv文件,内容如下,一共四列信息,包含圈选区域内的所有细胞信息:

4. Spatialdata直接处理圈选细胞csv文件
代码语言:javascript
复制
import pandas as pd
import scanpy as sc
import spatialdata as sd
from spatialdata_io import xenium

# 首先读取整张芯片数据
sdata = xenium(
    path='output-XETG00077__0040306__11155-TF-1_ROI_A2__20240621__173354',
    cells_boundaries=True, 
    nucleus_boundaries=True, 
    cells_as_circles=None, 
    cells_labels=True
)

整张芯片上所有细胞信息

代码语言:javascript
复制
# 读取圈选的细胞信息(这里演示读取圈选的第一个区域细胞)
select_cells = pd.read_csv('Selection_1_cells_stats.csv', skiprows=2)
subset_sdata = sd.match_sdata_to_table(
    sdata,
    table=sdata["table"][sdata["table"].obs["cell_id"].isin(select_cells["Cell ID"])],
    table_name="Sample1",
    how="right",
)
adata_sample1 = subset_sdata.tables['Sample1']

Sample1样本的adata就得到了

🎯 常见问题

Q1. 圈完 ROI 忘记保存怎么办?

在 Explorer 里 Ctrl+S 或点击“Save Project”即可,Zones 会自动写进 .xenium 文件夹。

Q2. 为什么我的报错SpatialData包没有match_sdata_to_table函数?

SpatialData包需要升级到0.4.0版本,pip install spatialdata==0.4.0

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-11-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信大杂烩 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. Xenium Explorer圈选区域基操
  • 2. 也可以同时圈选多个区域
  • 3. 导出圈选区域细胞信息
  • 4. Spatialdata直接处理圈选细胞csv文件
  • 🎯 常见问题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档