乐于分享
好东西不私藏

Xenium H&E图像配准 | 补充说明

Xenium H&E图像配准 | 补充说明

前面我们分享了关于Xenium H&E 图像配准的学习记录,后台很多同学私信交流,问了一些问题和相互讨论,这里补充更新记录一下。

配准后能做什么?

除了前面我们说的,想要在绘制空间转录原位图的下面展示H&E图像以外,根据研究者目的,还可以做很多其他的研究。

1. 将病理区域转换为可计算的细胞集合

病理医生可以在 H&E 上标注:

  • 肿瘤核心区;
  • 肿瘤浸润前沿;
  • 正常组织;
  • 坏死区;
  • 纤维化区域;
  • 淋巴滤泡;
  • 血管或腺体结构。

配准后,这些区域可以投射到 Xenium 数据中,从而提取区域内的细胞、细胞类型和基因表达。

例如,不再只是说“肿瘤边缘似乎有免疫细胞”,而是可以计算:

  • 浸润前沿包含哪些免疫细胞亚群;
  • 每类细胞的数量和比例;
  • 哪些基因在核心区与边缘区差异表达;
  • 哪些配体—受体关系集中在病理边界附近。

2. 让组织形态与分子表达建立空间对应

H&E 提供的是组织形态学信息,Xenium 提供的是原位 RNA 和细胞空间信息。配准将二者连接起来,使研究者能够回答:

  • 某个异常腺体中的上皮细胞表达哪些基因?
  • HER2 高表达细胞在 H&E 上属于哪种组织结构?
  • 某种免疫细胞是否集中在坏死区或肿瘤边缘?
  • 特定基因表达梯度是否沿血管、腺体或纤维间隔分布?

3. 支持基于病理边界的空间统计

完成配准后,可以计算细胞或转录本与病理结构之间的距离,例如:

[ d_i=\operatorname{distance}(x_i,B) ]

其中 (x_i) 是细胞位置,(B) 是 H&E 上标注的病理边界。

由此可以开展:

  • 边界两侧的细胞组成比较;
  • 距肿瘤边缘不同距离的表达梯度分析;
  • 血管邻域或腺体邻域分析;
  • 免疫浸润深度计算;
  • 不同病理区室的空间富集分析。

4. 评估或补充 Xenium 细胞分割

配准后可以将 Xenium 的核或细胞边界叠加到 H&E 上,检查:

  • 核边界是否落在真实细胞核附近;
  • 密集区域是否出现漏分割或过分割;
  • 坏死、黏液或低 DAPI 区域的分割是否可靠;
  • H&E 图像分割结果能否辅助定义组织结构。

但必须注意:H&E 与 DAPI 的成像特征不同。即使完成全局配准,也不能未经验证就把 H&E 单细胞分割结果直接当作 Xenium 细胞边界。

不配准会造成什么问题?

如果直接将 H&E 标注与 Xenium 坐标关联,可能导致:

  • 肿瘤区细胞被误分到间质区;
  • 边界附近细胞被分到错误一侧;
  • 细胞到血管、腺体或浸润前沿的距离出现系统偏差;
  • ROI 内细胞数量和细胞比例错误;
  • 区域差异表达及空间富集结果受到影响;
  • 图像看起来大致重叠,但细胞级结论并不可靠。

误差是否可以接受,取决于下游分析尺度。组织区室级展示可以容忍较小局部偏差;若要进行单细胞标签转移、核级对应或边界距离分析,就必须达到更严格的局部精度。

H&E—Xenium 配准的作用,是建立病理形态坐标与空间分子坐标之间的可靠映射,使 H&E 上的组织结构、病理区域和人工标注能够转化为 Xenium 中可查询、可统计、可验证的细胞与转录本集合。

配准本身不产生新的生物学信息,它决定的是两类证据能否被正确地放在同一空间框架中解释。

普通 TIFF、OME-TIFF 与 Xenium 兼容文件有什么不同?

1. TIFF 是一种灵活的图像容器

TIFF(Tagged Image File Format)的核心思想,是通过一个或多个图像文件目录——IFD(Image File Directory)——记录图像宽高、位深、压缩方式、像素数据位置等标签。一个 TIFF 可以是单页,也可以包含多个页面;像素可以按 strips 存储,也可以按二维 tiles 存储;某些 TIFF 还包含低分辨率预览或完整金字塔。

因此,不能简单地把 TIFF 理解为“单层、无压缩、无元数据的大图”。.tif 只说明文件采用 TIFF 家族结构,并不能单凭扩展名判断它是否包含多通道、Z-stack、时间序列、物理像素尺寸或金字塔。

对于超大数字病理图像,还会遇到 BigTIFF。经典 TIFF 使用较小的文件偏移字段,超大图像可能触及其容量限制;BigTIFF 扩展了偏移结构,更适合数 GB 到数十 GB 的全切片图像。BigTIFF 仍属于 TIFF 生态,并不自动等于 OME-TIFF。

2. OME-TIFF 是“TIFF 像素数据+OME-XML 元数据”

OME 是 Open Microscopy Environment。按照 OME 官方规范,一个 OME-TIFF 数据集由 TIFF 或 BigTIFF 文件,以及嵌入文件中的 OME-XML 元数据共同组成。OME-XML 通常以 UTF-8 字符串写入第一个 IFD 的 ImageDescription 标签;真正的像素仍保存在 TIFF 结构中,并不是存进 XML。OME-TIFF 官方规范

OME-XML 为显微图像提供了跨软件可解释的数据模型,例如:

  • SizeXSizeY:每个平面的像素宽度和高度;
  • SizeZSizeCSizeT:Z 层、通道和时间点数量;
  • DimensionOrder:Z、C、T 等维度在各图像平面中的排列规则;
  • PhysicalSizeXPhysicalSizeY 及单位:一个像素对应的实际空间尺度;
  • Channel:通道名称及相关信息;
  • TiffData:OME 维度位置与 TIFF IFD 之间的映射。

这就是 OME-TIFF 的真正价值:它不仅保存“像素是多少”,还尽可能明确“这些像素属于哪个通道、哪一个 Z 层、以什么顺序排列,以及一个像素代表多大的物理距离”。对于需要把图像与细胞、转录本、ROI 和空间坐标关联的 Xenium 工作流,这些语义不是装饰性信息。

OME-TIFF 规范允许普通单分辨率图像,也支持多分辨率图像。Xenium Explorer 要求的 pyramidal、tiled OME-TIFF,是 OME-TIFF 中结构更明确、也更适合超大图像交互浏览的一类,而不是所有 OME-TIFF 的同义词。

比较维度
普通 TIFF/扫描仪 TIFF
一般 OME-TIFF
Xenium Explorer 所需 post-Xenium 图像
像素容器
TIFF 或 BigTIFF
TIFF 或 BigTIFF
TIFF 或 BigTIFF
常见扩展名
.tif
.tiff
.ome.tif
.ome.tiff
通常为 .ome.tif
OME-XML
不要求
要求
要求
X/Y/Z/C/T 语义
依赖厂商标签或软件解释
由 OME 数据模型描述
需要被正确描述
物理像素尺寸
可能存在、缺失或仅有扫描 DPI
可写入 PhysicalSizeX/Y
应核对并保留正确标定
多分辨率金字塔
可有可无
可有可无
必须为 pyramidal
像素组织
strips 或 tiles
strips 或 tiles
必须为 tiled
典型用途
扫描仪原始交付、一般图像存储
显微图像交换与分析
Xenium Explorer 导入、浏览及配准

这里还有一个容易被忽略的问题:文件格式兼容不等于图像已经配准。 转换解决的是“Xenium Explorer 能否正确、流畅地读取图像及其维度语义”;配准解决的是“post-Xenium 图像坐标如何映射到 Xenium DAPI 参考坐标”。前者是后者的输入条件,不能替代后者。

为什么 Xenium Explorer 要求 pyramid 和 tile?

Xenium 图像不是普通网页图片。以 H&E 全切片为例,全分辨率图像可包含数十亿像素。如果每次缩放或平移都读取整张图,内存、磁盘 I/O 和界面响应都会成为瓶颈。

1.图像金字塔:不同缩放级别读取不同分辨率

金字塔最底层的 level 0 保存全分辨率图像;后续层级依次下采样。用户查看整片组织时,软件读取低分辨率层;放大到细胞核时,才读取全分辨率区域。10x 推荐 Pyramidal scale = 2,即相邻层级的 X、Y 尺寸按 2 倍关系下降。OME 规范也要求金字塔层在 X、Y 方向按一致规则下采样。OME-TIFF 多分辨率规范

需要强调:金字塔不会提高 level 0 的原始分辨率,也不会自动改善配准精度。它提供的是多尺度访问结构,让查看器不必在低倍浏览时读取全部原始像素。

2.分块存储:只读取当前视野对应的区域

tiled TIFF 将每一层图像切分成规则的二维小块。当用户只查看右下角的一个区域时,软件可以读取与该区域相交的 tiles,而不必顺序解码整行 strips 或整张图。10x 推荐 Tile size = 1024 px,并提示更小的 tile 可能降低 Xenium Explorer 的显示性能。

使用Qupath将.tif转换成.ome.tif

10x 当前明确给出了 QuPath GUI、QuPath CLI 和 Tifffile 三条路径,并说明 Xenium Explorer 的兼容性已使用 QuPath 与 Tifffile 的相应设置进行测试。对于首次处理或样本量较小的项目,QuPath GUI 最适合建立标准流程。10x 官方转换教程

步骤 1:打开并识别图像

在 QuPath 中选择:

File > Open > 选择原始 TIFF

如果软件询问是否以 pyramidal 形式保存或打开,应按流程建立金字塔。随后选择图像类型:

  • H&E:Brightfield H&E
  • IF:Fluorescence

这一步不仅影响界面显示,也关系到软件如何解释 RGB brightfield 与多通道荧光图像。不要因为 IF 合成图“看起来像彩色图片”,就把它当成普通 RGB H&E。

步骤 2:导出 OME-TIFF

选择:

File > Export image > OME-TIFF

设置参数:

Compression type: ZLIB
Pyramidal scale: 2.0
Tile size: 1024 px
Parallelize export: 勾选

图 2|post-Xenium H&E 导出为 OME-TIFF 时的推荐参数:ZLIB 无损压缩、2 倍金字塔降采样、1024 px tile,并启用并行导出。来源:10x Genomics 官方转换教程。

对于多通道 IF,10x 使用相同的金字塔、tile 和 ZLIB 设置;但在转换前仍应独立核对通道数、通道名称与数组轴。

图 3|多通道 IF 图像的 OME-TIFF 导出设置示例。来源:10x Genomics 官方转换教程。

输出文件使用新的名称和目录,例如:

原始文件:D:\Xenium\raw\sample01_he.tif
输出文件:D:\Xenium\ome\sample01_he.ome.tif

步骤 3:等待明确的完成提示

超大图像转换需要时间。不完整的导出可能产生模糊图像或缺失金字塔层级,并导致 Xenium Explorer 加载失败。因此,不能只看到输出文件已经出现就结束 QuPath;应等待软件明确报告导出完成,再进行文件复制、移动或关闭程序。

若 QuPath 报告图像过大或内存不足,应根据本机物理内存谨慎调整最大内存,而不是盲目分配超过系统可用内存的数值。

使用Tifffile进行转换

对于生信平台、自动化流程或需要记录软件环境的项目,Python/Tifffile 更容易纳入版本管理与批处理。10x 官方页面提供了 omeconvert.py 示例脚本,使用 tifffile 写入 BigTIFF、tiles、OME 元数据和多级金字塔,并使用 OpenCV 生成下采样层级。

官方示例环境与运行方式为:

conda create --name tiff tifffile opencv
conda activate tiff
python omeconvert.py sample01_he.tif

脚本全文和当时测试的软件版本应直接查看 10x 官方 Tifffile 转换章节,不建议在不了解数组轴和元数据的情况下,随意删减为几行 imread/imwrite

程序化方案尤其要审查三个假设:

  1. 内存模型:官方示例通过 tif.asarray() 读取图像。对于超大 WSI,整图解码可能占用远高于压缩文件大小的内存;能在磁盘上存下,不代表能一次装入内存。
  2. 数组轴与颜色解释:RGB H&E、单通道图像和多通道 IF 的数组维度可能分别表现为 YXCYX 或 CYXphotometric、通道名称和轴顺序必须与实际数据一致。
  3. 空间标定:脚本只能读取已有 resolution/OME metadata,或使用操作者显式提供的数值。源 TIFF 缺少 μm/pixel 时,转换不会创造真实标定。