前面我们分享了关于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 为显微图像提供了跨软件可解释的数据模型,例如:
SizeX、SizeY:每个平面的像素宽度和高度;SizeZ、SizeC、SizeT:Z 层、通道和时间点数量;DimensionOrder:Z、C、T 等维度在各图像平面中的排列规则;PhysicalSizeX、PhysicalSizeY及单位:一个像素对应的实际空间尺度;Channel:通道名称及相关信息;TiffData:OME 维度位置与 TIFF IFD 之间的映射。
这就是 OME-TIFF 的真正价值:它不仅保存“像素是多少”,还尽可能明确“这些像素属于哪个通道、哪一个 Z 层、以什么顺序排列,以及一个像素代表多大的物理距离”。对于需要把图像与细胞、转录本、ROI 和空间坐标关联的 Xenium 工作流,这些语义不是装饰性信息。
OME-TIFF 规范允许普通单分辨率图像,也支持多分辨率图像。Xenium Explorer 要求的 pyramidal、tiled OME-TIFF,是 OME-TIFF 中结构更明确、也更适合超大图像交互浏览的一类,而不是所有 OME-TIFF 的同义词。
.tif.tiff | .ome.tif.ome.tiff | .ome.tif | |
PhysicalSizeX/Y | |||
| 必须为 pyramidal | |||
| 必须为 tiled | |||
这里还有一个容易被忽略的问题:文件格式兼容不等于图像已经配准。 转换解决的是“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。
程序化方案尤其要审查三个假设:
内存模型:官方示例通过 tif.asarray()读取图像。对于超大 WSI,整图解码可能占用远高于压缩文件大小的内存;能在磁盘上存下,不代表能一次装入内存。数组轴与颜色解释:RGB H&E、单通道图像和多通道 IF 的数组维度可能分别表现为 YXC、YX或CYX。photometric、通道名称和轴顺序必须与实际数据一致。空间标定:脚本只能读取已有 resolution/OME metadata,或使用操作者显式提供的数值。源 TIFF 缺少 μm/pixel 时,转换不会创造真实标定。
夜雨聆风