病理科医生的数字助手:如何用QuPath免费软件高效标注与分析WSI切片(实战分享)
第一次打开一张全切片数字图像(WSI)时,我被它的数据量震惊了——单个文件往往超过1GB,放大后可以看到比传统显微镜更丰富的细节。但随之而来的问题是:如何在这样高分辨率的图像上快速定位病灶区域?如何准确统计肿瘤细胞数量?传统方法需要反复切换放大倍数,在显微镜下手工标记,效率极低且容易遗漏微小病灶。
这就是QuPath的价值所在。这款由英国爱丁堡大学开发的免费开源软件,已经成为我们病理科日常工作的"数字显微镜"。它不仅解决了WSI标注的效率问题,还通过内置的AI算法实现了半自动化的细胞识别与定量分析。更重要的是,它完全免费,对预算有限的基层医院和科研团队特别友好。
1. 从零开始:QuPath的安装与基础配置
1.1 系统要求与安装步骤
QuPath基于Java开发,支持Windows、macOS和Linux三大平台。建议配置:
- 内存:至少8GB,处理大WSI文件推荐16GB以上
- 显卡:支持OpenGL 3.3及以上(大多数现代显卡都满足)
- 存储:SSD硬盘能显著提升大文件读取速度
安装过程非常简单:
- 访问QuPath官网下载对应系统的安装包
- Windows用户直接运行
.exe安装程序,macOS用户拖拽应用到Applications文件夹 - 首次启动时会提示创建项目目录,建议放在剩余空间大于100GB的驱动器
提示:如果遇到Java环境问题,官网提供了包含Java运行时的完整版本下载。
1.2 初识界面:病理医生的数字工作台
QuPath的界面布局经过精心设计,主要分为五个功能区:
| 区域 | 功能 | 病理工作对应场景 |
|---|---|---|
| 图像浏览器 | 显示WSI全貌和当前视野 | 相当于显微镜的低倍镜 |
| 标注工具栏 | 提供各种标注和测量工具 | 替代传统标记笔和计数器 |
| 对象分析面板 | 显示检测到的细胞和组织结构 | 自动化的细胞计数板 |
| 脚本控制台 | 运行自动化分析脚本 | 定制化分析流水线 |
| 项目浏览器 | 管理多个WSI文件和病例 | 数字化的玻片存档柜 |
初次使用时,建议先通过File → Open...导入几个测试WSI文件熟悉操作。QuPath支持常见的WSI格式包括:
- .ndpi (Hamamatsu)
- .svs (Aperio)
- .scn (Leica)
- .mrxs (3DHistech)
2. WSI标注实战:从手工到智能辅助
2.1 基础标注技巧:肿瘤区域的精准勾勒
面对一张乳腺肿瘤的WSI,我们需要先标记出肿瘤边界。QuPath提供了多种标注工具:
// 常用标注工具对应的快捷键 Shift + D : 画笔工具(自由绘制) Shift + P : 多边形工具(精准边界) Shift + L : 直线工具(测量距离) Shift + E : 椭圆工具(标记圆形区域)高效标注的工作流程:
- 先用1-2倍放大倍数浏览全片,确定肿瘤大致区域
- 切换到10-20倍放大,使用多边形工具沿肿瘤边界逐点标记
- 遇到不确定区域,可临时添加"疑问点"注释(Ctrl+Shift+M)
- 完成标注后右键选择"Set classification",赋予"Tumor"分类
注意:标注时建议关闭"Snap to pixels"选项(在工具栏齿轮设置中),这样可以绘制更平滑的边界线。
2.2 智能辅助:基于AI的自动检测
QuPath内置了基于机器学习的细胞检测算法,特别适合淋巴瘤等细胞密集的病例:
- 选择
Analyze → Cell Detection → Cell Detection - 调整关键参数:
- Detection image:通常选择Hematoxylin OD(突出细胞核)
- Background radius:10-15μm(过滤间质区域)
- Median filter:2μm(平滑噪声)
- Sigma:1.5-2μm(控制检测灵敏度)
- 点击"Run"运行检测,完成后会自动生成细胞中心点
检测结果可以通过热图可视化:
// 生成细胞密度热图的脚本片段 runPlugin('qupath.lib.algorithms.DistanceToAnnotationsPlugin', '{"maxDistance": 100, "pixelSize": 2, "distanceTo": "Centroids", "heatmapRadius": 20}')3. 定量分析:从标注到统计报告
3.1 区域统计:肿瘤占比与异质性分析
完成肿瘤区域标注后,我们可以获取定量数据:
- 选中标注区域,右键选择
Measure → Add shape measurements - 在弹出的窗口勾选需要测量的参数:
- Area:区域面积(μm²)
- Perimeter:边界周长
- Circularity:圆形度(1=完美圆)
- Hematoxylin OD mean:嗜碱程度
- 数据会自动导出到"Results"面板,支持CSV格式导出
对于肿瘤异质性分析,可以使用多区域采样法:
- 用"Grid"工具在肿瘤区域创建5×5的采样网格
- 在每个小格子中进行细胞检测
- 通过
Analyze → Calculate → Classification counts比较各区域细胞组成差异
3.2 免疫组化评分:H-score自动化计算
对于免疫组化染色的WSI,QuPath可以半自动化计算H-score:
- 先通过颜色反卷积(
Analyze → Color Deconvolution)分离DAB染色 - 设置强度阈值:
- 0+:无染色或微弱染色
- 1+:轻度染色
- 2+:中度染色
- 3+:强染色
- 运行以下脚本自动计算H-score:
// H-score计算脚本 def cells = getCellObjects() def score = cells.sum {cell -> def intensity = cell.getPathClass()?.toString()?.replaceAll(/\\D/, '')?.toInteger() ?: 0 intensity } / cells.size() * 100 println "H-score: " + score4. 高级技巧与实战经验分享
4.1 批处理:自动化多切片分析
当需要分析数十张WSI时,可以使用批处理功能:
- 创建新脚本(
Automate → Show script editor) - 录制单张切片的分析步骤(
Tools → Record command history) - 添加循环遍历项目中的所有图像:
// 批处理脚本框架 def project = getProject() for (entry in project.getImageList()) { def imageData = entry.readImageData() // 在此处插入分析步骤 entry.saveImageData(imageData) }4.2 常见问题解决手册
在实际使用中,我们整理了几个典型问题的解决方案:
问题1:WSI加载缓慢
- 解决方案:在
Edit → Preferences → Image中调整"Tile cache size"(建议设为内存的25%)
- 解决方案:在
问题2:细胞检测漏掉小细胞
- 调整参数:减小"Background radius"和增加"Sigma"
问题3:染色差异影响分析
- 预处理:先用
Color Deconvolution标准化染色强度
- 预处理:先用
4.3 扩展功能:通过插件增强能力
QuPath的插件生态系统提供了许多专业功能:
- StarDist:基于深度学习的细胞分割插件,适合形态不规则的细胞
- WSI Export:将标注结果叠加导出为金字塔式TIFF文件
- GeoJSON:支持与GIS系统交互的空间数据格式
安装插件只需将.jar文件放入QuPath/extensions文件夹,重启软件即可。
在最近一例胃癌病例分析中,我使用QuPath仅用2小时就完成了传统方法需要1天的工作量:标记了12个肿瘤区域,统计了超过5万个细胞的PD-L1表达情况,并生成了包含空间分布热图的综合报告。这款软件真正改变了我们的工作模式——现在科里的年轻医生们已经很少使用传统显微镜了。