Histolab 数字病理切片
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/histolab。
技能介绍
要解决什么问题
数字病理里的全切片图像(WSI)往往是十亿像素级、多格式(SVS、TIFF、NDPI 等),还要区分组织与背景、排除钢笔标注和伪影。若手工裁块或写 ad-hoc 脚本,很难在可复现的前提下为分类/检测模型批量产出尺寸一致、组织占比可控的训练切片。
技能如何工作
Histolab 把 WSI 处理拆成可组合的 Python 步骤,核心围绕 Slide 与三类能力:
- 切片与金字塔:加载 WSI、读元数据与放大倍率、生成缩略图,并在指定金字塔
level上按坐标取区域。 - 组织掩码:
TissueMask覆盖多组织区域;默认常用的BiggestTissueBoxMask聚焦最大组织块;也可继承BinaryMask做 ROI 或标注排除。 - 切片提取策略:
RandomTiler做随机采样(配合seed);GridTiler做网格全覆盖(pixel_overlap控制重叠);ScoreTiler用NucleiScorer、CellularityScorer等挑出信息更富的区域。常见参数包括tile_size、check_tissue与tissue_percent(默认约 80%)。
推荐流程是:先看缩略图确认有组织 → 用 locate_mask() 预览掩码 → 务必用 locate_tiles() 预览切片位置 → 再批量导出并配合可视化做质量抽查。滤波器链(如 RgbToHed、形态学开闭运算)可用于染色差异下的组织检测与预处理。
适用边界与注意点
- 提取不到切片时,先查缩略图、
extraction_mask是否盖住组织,并适当下调tissue_percent或检查tile_size与分辨率是否匹配。 - 背景切片过多:提高
tissue_percent、选对掩码类型;速度过慢时可改用较低level、减少n_tiles,或采样场景优先RandomTiler而非全网格。 - 跨切片染色不一致时,需要统一随机种子、预处理归一化,必要时为单张切片定制掩码;复杂多步流水线可结合技能内
references/文档逐项对照参数。
使用场景
- 从多张 H&E 或 IHC 的 SVS/NDPI 切片中,按固定 `tile_size` 与 `tissue_percent` 批量导出训练 patch,并用 CSV 记录坐标与组织占比。
- 整张 WSI 要做空间连续分析或重建时,用 `GridTiler` 在主组织掩码内网格提取,并通过 `pixel_overlap` 控制滑动窗口重叠。
- 希望训练集偏向细胞密集区时,用 `ScoreTiler` 配合 `NucleiScorer` 在指定 pyramid `level` 抽取评分最高的若干 tile。
- 切片含钢笔标注、背景或染色伪影时,先用 `BinaryMask` 或滤波链生成排除掩码,再 `locate_tiles()` 确认后再批量提取。
适合人员
- 负责病理 AI 数据管道的算法工程师,要把多中心 WSI cohort 转成可复现 tile 集合并对接训练框架。
- 在 Jupyter 里做切片探索的计算病理学研究生,需要先预览掩码与 tile 位置再定 `level` 与 `n_tiles`。
- 维护内部数字病理平台的工程同学,需把 Random/Grid/Score 三种提取策略封装进批处理作业。
- 做切片质控的病理信息学或标注协调人员,要依据 ScoreTiler 分布挑出低分或低组织覆盖率切片人工复核。