关于 alterlab-histolab
alterlab-histolab 是面向数字病理全切片图像的 Python 技能,适用于构建轻量级组织检测和图块处理流程。它提供组织掩膜、随机/网格/评分式图块提取及可视化预览,帮助整理深度学习数据集。
主要功能
- 01加载并检查全切片图像
- 02组织检测与自定义掩膜
- 03随机、网格和评分式切块
- 04图像与形态学滤镜
- 05图块位置预览与结果可视化
适用场景
- 01从病理切片构建训练图块集
- 02筛选组织区域并排除背景
- 03按评分选取信息量较高的图块
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alterlab-ieu/ alterlab-academic-skills --skill alterlab-histolab安装后在 Claude Code 中输入/alterlab-histolab确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
evals/evals.jsonreferences/best_practices.mdfilters_preprocessing.mdslide_management.mdtile_extraction.mdtissue_masks.mdvisualization.mdworkflows.md详细介绍
Histolab
概述
Histolab 是一个用于数字病理全视野图像(WSI)处理的 Python 库。它能够自动检测组织、从千兆像素图像中提取有信息量的图块,并为深度学习工作流准备数据集。该库支持多种 WSI 格式,实现了复杂的组织分割,并提供灵活的图块提取策略。
何时使用此技能
在构建轻量级 WSI 图块工作流时使用 histolab:组织检测、创建用于 ML 训练的图块数据集、处理 H&E 染色,以及对组织病理切片进行快速的基于图块的分析。对于高级空间蛋白质组学、多重成像或完整的深度学习病理学工作流,请改用 alterlab-pathml。
不适用的场景
| 场景 | 改用 |
|---|---|
| 端到端计算病理学、细胞核分割、多重成像(CODEX/Vectra) | alterlab-pathml |
| 使用提取的图块训练下游分类器 | alterlab-pytorch-lightning |
| DICOM 全视野图像或放射影像,而非 SVS/NDPI | alterlab-pydicom、alterlab-imaging-data-commons |
| 组织切片上的空间转录组学 | alterlab-squidpy-spatial |
| 管理/版本化切片集合本身 | alterlab-omero、alterlab-lamindb |
安装
# histolab 0.7.0 needs Python >= 3.8, < 3.12 and numpy 1.x — give it its own env
uv venv --python 3.11 .venv-histolab
uv pip install --python .venv-histolab "histolab==0.7.0" openslide-bin
在 2026 年的工具链中,有两个需要注意的限制:
- 固定的科学计算依赖栈。 0.7.0(2024 年 2 月发布,仍是最新版本)要求
numpy <= 1.24.4、scipy < 1.10.1、scikit-image < 0.19.4和openslide-python 1.3.1。它无法与使用 numpy 2.x / Python 3.12+ 的项目共用环境——请使用单独的 venv 解决,而不要放宽版本固定要求。 - OpenSlide 是 C 库,并未随 wheel 一同打包。最简单的解决办法是使用
openslide-binwheel(预编译二进制文件);否则,可在 macOS 上运行brew install openslide,或在 Debian/Ubuntu 上运行apt install libopenslide0。缺少该库时,import histolab.slide会因Couldn't locate OpenSlide dylib而失败。
以下示例适用于 histolab 0.7.0;旧版本的 API 有所不同。
核心工作流
- 使用
Slide(path, processed_path=...)加载切片,并检查尺寸/层级。 - 使用遮罩(
TissueMask或BiggestTissueBoxMask)检测组织。 - 在确认提取前,使用
tiler.locate_tiles(slide)预览图块位置。 - 使用三种图块器之一(Random/Grid/Score)提取图块。
最简示例:
from histolab.slide import Slide
from histolab.tiler import RandomTiler
slide = Slide("slide.svs", processed_path="output/")
# n_tiles, level, seed are CONSTRUCTOR args — not args to locate_tiles/extract.
tiler = RandomTiler(tile_size=(512, 512), n_tiles=100, level=0, seed=42)
tiler.locate_tiles(slide) # preview locations on the thumbnail first
tiler.extract(slide) # writes PNGs into processed_path
API 注意事项(histolab 0.7.0): locate_tiles() 和 extract() 只接受
slide、可选的 extraction_mask,以及日志/样式相关的 kwargs——它们
不接受 n_tiles。请在图块器构造函数中设置 n_tiles(以及 seed、level、tile_size、
check_tissue、tissue_percent)。extraction_mask 应传给
extract()/locate_tiles(),而不是构造函数。
可直接复制粘贴的完整工作流(快速入门、5 个端到端工作流,以及按功能分类的示例)位于 references/workflows.md。
核心功能
1. 切片管理
加载、检查和处理 WSI 文件(SVS、TIFF、NDPI 等):访问元数据
(尺寸、放大倍数、属性),生成缩略图,并处理金字塔/多层结构。主要类:Slide。
有关切片初始化、内置示例数据集(prostate_tissue、ovarian_tissue、breast_tissue、heart_tissue、
aorta_tissue,以及带笔迹标记和 IHC 的示例)、金字塔层级和
多切片处理,请参阅 references/slide_management.md。
2. 组织检测与掩膜
自动识别组织区域并过滤背景和伪影。关键类:TissueMask(所有组织区域)、BiggestTissueBoxMask(最大区域的边界框——默认选项)和 BinaryMask(自定义掩膜的基类)。
选择掩膜:
TissueMask:多个组织切片,全面分析BiggestTissueBoxMask:单个主要切片,排除伪影(默认选项)- 自定义
BinaryMask:特定 ROI、排除标注、自定义分割
参见 references/tissue_masks.md,了解检测过滤器的工作原理、如何使用 locate_mask() 可视化掩膜,以及自定义矩形掩膜和排除标注的掩膜。
3. 图块提取
使用以下三种策略之一,从大型 WSI 中提取较小区域:
- RandomTiler — 提取固定数量、随机定位的图块。适合采样多样化区域、探索和训练数据。关键参数:
n_tiles、seed。 - GridTiler — 在组织上按网格系统提取。适合完整覆盖、空间分析和重建。关键参数:
pixel_overlap。 - ScoreTiler — 根据评分函数提取排名靠前的图块。适合筛选信息丰富的区域,以及基于质量进行选择。关键参数:
scorer(NucleiScorer、CellularityScorer、自定义评分器)。
通用参数:tile_size、level(0 = 最高分辨率)、check_tissue、tissue_percent(默认 80%)、extraction_mask。提取前务必使用 locate_tiles() 预览。
参见 references/tile_extraction.md,了解评分器、报告和高级(多层级、分层)提取模式。
4. 过滤器与预处理
应用图像处理过滤器,用于组织检测、QC 和预处理:
- 图像过滤器 —
RgbToGrayscale、RgbToHsv、RgbToHed、OtsuThreshold、Invert、StretchContrast、HistogramEqualization、Lambda。 - 形态学过滤器 —
BinaryDilation、BinaryErosion、BinaryOpening、BinaryClosing、RemoveSmallObjects、RemoveSmallHoles。 - 组合 —
Compose(位于histolab.filters.image_filters中)将多个过滤器串联为管道。将自定义过滤器作为位置可变参数传递给掩膜:TissueMask(RgbToGrayscale(), OtsuThreshold(), ...)。
参见 references/filters_preprocessing.md,了解过滤器串联、常用管道(组织检测、去除笔迹、细胞核增强)和 QC 过滤器。
5. 可视化
显示切片、掩膜、图块位置和提取质量:缩略图、通过 locate_mask() 查看掩膜叠加、通过 locate_tiles() 预览图块位置、图块拼接图和评分分布。
参见 references/visualization.md,了解拼接图、质量评估图、多切片对比,以及高分辨率图像和 PDF 报告的导出。
参考索引
references/workflows.md— 快速入门、各项功能示例,以及 5 个端到端的完整工作流(探索、网格、评分驱动、多切片、自定义组织检测)。references/slide_management.md— 加载和检查切片、示例数据集、金字塔层级、多切片处理。references/tissue_masks.md—TissueMask/BiggestTissueBoxMask/BinaryMask、自定义掩膜、掩膜可视化与集成。references/tile_extraction.md— Random/Grid/Score tiler 对比、评分器、CSV 报告、高级提取模式。references/filters_preprocessing.md— 图像与形态学过滤器、过滤器组合、预处理管道、QC 过滤器。references/visualization.md— 缩略图、掩膜/图块预览、拼接图、质量图、图像导出。references/best_practices.md— 最佳实践、常见用例和故障排查(未提取到图块、背景图块、提取缓慢、伪影)。
加载所需的特定参考文件,获取详细的实现指导、故障排查方法或高级功能说明。
属于 AlterLab Academic Skills 套件。