关于 pathml
PathML 是面向本地计算病理研究的 Python 工具包,涵盖全切片图像处理、空间数据和模型推理。本技能侧重可复现且注重隐私的研究流程,并明确不适用于临床诊断。
主要功能
- 01加载并切分病理切片
- 02预处理图像并生成组织掩膜
- 03构建空间图与多重数据
- 04规划有界推理并验证模型文件
适用场景
- 01在代表性切片上试运行预处理
- 02验证切片清单和空间数据架构
- 03规划切片块数量、内存及推理批次
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ k-dense-ai/ scientific-agent-skills --skill pathml安装后在 Claude Code 中输入/pathml确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/data_management.mdgraphs.mdimage_loading.mdmachine_learning.mdmultiparametric.mdpreprocessing.mdscripts/_common.pyimage_qc.pyplan_inference.pyplan_pipeline.pyslide_manifest.pyvalidate_spatial_schema.py详细介绍
PathML
适用范围与安全边界
将 PathML 用于本地计算病理学研究。它是 beta 阶段的研究软件,不是经过验证的医疗器械、诊断系统、临床决策支持工具,也不能替代病理学家。不要使用其输出来诊断、分级、分期或治疗患者。
病理文件可能包含人脸、标签、登记号、患者标识符、DICOM 标签、文件名或关联的临床数据。在处理之前:
- 确认授权、同意/豁免、数据使用条款和机构政策。
- 对像素和元数据进行去标识化;将再识别密钥保存在分析工作区之外。
- 使用假名化的
patient_id、slide_id和specimen_id值。不要在文件名、日志、.h5path标签、模型卡或报告中放入直接标识符。 - 将输入、中间产物和输出保存在经批准的本地加密存储中。
- 在切片或拟合任何预处理步骤之前,按患者(然后是切片)进行划分。
版本基线,审查于 2026-10-01
- 已发布的稳定版本: PyPI
pathml==3.0.8,发布于 2026-08-14,源码标签v3.0.8(fa49ffb66757ed8a8265756c92b6290834eddecb)。 - v3.0.5 的发布说明声明支持 Python 3.10-3.12,并停止支持 3.9。PyPI 未声明
Requires-Python,且仍有一个过时的 3.8 分类器,因此请以发布声明为准,并测试确切的环境。 - 当前 wheel 包含了 Torch/PyG 依赖更新以及显式的 legacy ONNX 导出(
dynamo=False)。ReadTheDocs 页面/搜索缓存可能显示不同的版本;3.0.8 的 wheel 和带标签的源码决定了这些 API。 - 捆绑的命令行工具使用合成数据进行测试。PathML 示例和安装命令是说明性的、经过源码核对的,并不构成对完整原生技术栈或病理模型执行的声明。本次审查未下载任何切片、模型权重或数据集。
- 本技能采用 MIT 许可证。PathML 本身采用 GPL-2.0,并提供上游商业许可选项;在再分发之前请审查上游条款。
可复现安装
除非项目已测试过其他受支持的解释器,否则请使用 Python 3.11:
uv venv --python 3.11
source .venv/bin/activate
uv pip install "pathml==3.0.8"
python -c "import importlib.metadata as m; print(m.version('pathml'))"
PathML 3.0.8 未声明任何包 extras:不要使用 pathml[all]。其基础发行版锁定了一个庞大的科学/ML 技术栈,包括 Torch 2.12.0、ONNX 1.22.0、ONNX Runtime 1.17.x、OpenSlide Python 1.3.1、python-bioformats 4.1.0、python-javabridge 4.0.4、torch-geometric 2.8.0 和 onnxscript 0.7.1。它还锁定了低于 2 的 NumPy 以及若干较旧的二进制包;不要单独升级它们。
在 uv 命令之前安装原生依赖:
# Debian/Ubuntu
sudo apt-get install openslide-tools gcc g++ libblas-dev liblapack-dev openjdk-17-jdk
# macOS
brew install openslide openjdk@17
# Windows OpenSlide option documented upstream
vcpkg install openslide
python-javabridge==4.0.4 在 PyPI 上仅提供源码,并且需要 JDK(包括 javac/JNI 头文件),而不仅仅是 JRE。在构建之前将 JAVA_HOME 设置为该 JDK。PathML 在其共享后端模块中导入 Java 桥接/Bio-Formats,即使请求的读取器是 OpenSlide 也是如此;选择 OpenSlide 并不能避免这些安装依赖。提到 Java 8 和 javabridge==1.0.19 的旧导入错误建议与已发布 wheel 的要求不符。
Java/Bio-Formats 提供了广泛的多维格式后端。OpenSlide 能更高效地处理常见的明场 WSI 格式。CUDA 是可选的,且必须与锁定的 PyTorch 构建相匹配;请遵循 PyTorch 的平台选择器,而不是猜测 CUDA wheel。参见 references/image_loading.md。
稳定的最小工作流
PathML 3.0.8 使用切片便捷类和 SlideData.run()。它不提供 SlideData.from_slide(),并且 Pipeline 没有 run():
from pathml.core import HESlide
from pathml.preprocessing import BoxBlur, Pipeline, TissueDetectionHE
slide = HESlide("data/pseudonymous_slide.svs", backend="openslide")
pipeline = Pipeline(
[
BoxBlur(kernel_size=5),
TissueDetectionHE(mask_name="tissue", min_region_size=5000),
]
)
slide.run(
pipeline,
distributed=False,
tile_size=512,
tile_stride=512,
level=0,
tile_pad=False,
)
slide.write("derived/pseudonymous_slide.h5path")
在完整运行之前,先从一个有界的手动样本开始:
from itertools import islice
for tile in islice(slide.generate_tiles(shape=512, stride=512, level=0), 8):
pipeline.apply(tile)
assert tile.masks["tissue"].shape[:2] == tile.image.shape[:2]
切片使用 (i, j) = (行, 列) 坐标,基于选定的金字塔层级。PathML 3.0.8 在定位区域时会将 OpenSlide 的降采样截断为整数。请使用层级 0 或精确的整数倍降采样;小数降采样可能会使采样区域发生偏移。在转换为 (x, y) 或微米之前,请记录层级、实际尺寸和 MPP。参见 references/image_loading.md。
在跨扫描仪比较切片特征、细胞距离或面积之前,请分别针对 X 和 Y 验证层级 0 的 MPP。相同的像素切片尺寸不一定覆盖相同的物理面积,并且 OpenSlide MPP 可能缺失或不准确。当校准未知时,请将结果保留为像素单位,或记录经过验证的校准;不要仅凭物镜放大倍数推断。参见 OpenSlide properties。
研究工作流
- 在本地清点。 验证清单,拒绝 URL/符号链接,仅检查允许列表中的技术元数据,并移除标识符。
- 冻结划分。 在生成重叠切片、图、归一化参考或特征之前,将每位患者及其所有切片分配到同一划分。
- 规划边界。 估算切片数量、RAM、输出大小和流水线阶段。
- 试点预处理。 在具有代表性的训练切片上检查组织掩膜、空白/伪影标签、染色行为、边缘填充和空掩膜情况。不要根据测试切片进行调优。
- 运行并保留坐标。 保留切片层级、
(i, j)、降采样、MPP、掩膜名称、QC 决策以及失败/跳过的切片。 - 有意识地构建空间数据。 验证通道顺序、物理单位、实例标签、节点-特征对齐、图边以及细胞到组织的分配。
- 在有界批次中推理。 在不加载未知 pickle 检查点的情况下验证模型来源和校验和。将预测结果与切片/切片坐标关联,并使用有文档记录的规则拼接重叠部分。
- 报告来源和限制。 包括包锁定文件、源哈希、扫描仪、染色、参数、随机种子、划分清单、模型卡、排除项和 QC。
对于多重测量,请在 Bio-Formats 切片提取时传入 normalize=False 以保留强度。.h5path 仍会将切片图像和掩膜转换为 float16:当精确值很重要时,请将定量图像和整数实例图分开存储(大于 2048 的整数并非都能表示)。在定量或存储之前,请参阅数据管理和多重参考。
默认无网络与显式同意门槛
除非用户在收到端点与披露信息后明确选择加入,否则不要实例化具备下载能力的类,也不要设置数据集 download=True:
SegmentMIFRemote在构造时会从https://huggingface.co/pathml/test/resolve/main/mesmer.onnx下载一个 ONNX 文件, 然后在本地运行推理。稳定版源码不会上传图像像素。 该请求仍会披露 IP 地址和请求头等网络元数据,并 创建temp.onnx;没有内置校验和或离线标志。- 已弃用的
SegmentMIF会导入本地 DeepCell Mesmer,但 DeepCell 模型 初始化可能需要单独预置的权重。它不属于 PathML extra,也不是首选稳定 API。 RemoteTestHoverNet会从 Hugging Face 下载模型。PanNukeDataModule(download=True)会联系 Warwick;DeepFocusDataModule会联系 Zenodo。两者默认都是download=False。
在任何未来的托管预测调用之前,说明确切目标、像素 通道/区域、元数据、标识符、保留期限、法律依据和保障措施; 获得明确同意;并且默认绝不发送 PHI。优先使用经过审查、 带校验和的本地模型产物和本地推理。
模型代码安全
- PyTorch 的
model.eval()表示模块的评估模式;它不是 Python 中危险的 内置求值器。绝不使用 Python 动态求值或执行。 - 不要把本地文件命名为
pathml.py、torch.py、onnx.py,或沿用标准 库的名称;遮蔽模块可能悄无声息地改变导入。 - PathML 的
EntityDataset使用weights_only=False加载.pt对象。绝不 打开不受信任的图/检查点。将基于 pickle 的流水线和.pt文件 视为可执行代码。 - ONNX 比 pickle 更安全,但并非天然可信。验证来源、SHA-256、 预期的输入/输出 schema、文件大小和运行时限制;对 第三方模型使用隔离环境。
内置本地命令行工具
所有辅助工具都拒绝 URL 和符号链接,限制输入/工作量,使用严格 JSON,
避免网络访问,并且 --help 不需要导入 PathML:
python scripts/slide_manifest.py validate --manifest manifest.csv --root .
python scripts/slide_manifest.py inspect --slide data/example.svs --root .
python scripts/plan_pipeline.py --width 100000 --height 80000 --tile-size 512 --stride 512
python scripts/image_qc.py synthetic --width 256 --height 256
python scripts/validate_spatial_schema.py graph --input graph.json --root .
python scripts/validate_spatial_schema.py multiplex --input cells.csv --root .
python scripts/plan_inference.py --tile-count 4000 --batch-size 16 --height 256 --width 256
推理规划器只读取数字或有界的 JSON 模型卡;它绝不 导入模型框架或打开检查点。
详细参考
references/image_loading.md— 切片类、后端、格式、层级、 坐标、技术元数据和隐私。references/preprocessing.md— 稳定变换、掩码/QC、染色处理、 流水线执行和泄漏预防。references/data_management.md—.h5path、清单、数据集、溯源、 划分和安全下载。references/multiparametric.md— 多维布局、CODEX/Vectra、 定量、AnnData、DeepCell/Mesmer 和网络披露。references/graphs.md— 实例图、特征对齐、KNN/RAG/HACT 图、 空间单元、schema 和验证。references/machine_learning.md— HoVer-Net/HACTNet、本地 ONNX 推理、 批处理、检查点信任、评估和模型溯源。
主要来源
发布/API 基线于 2026-10-01 审核;论文提供背景:
- PyPI 元数据:https://pypi.org/project/pathml/3.0.8/
- 稳定版源码标签:https://github.com/Dana-Farber-AIOS/pathml/tree/v3.0.8
- 发布:https://github.com/Dana-Farber-AIOS/pathml/releases
- 稳定版文档:https://pathml.readthedocs.io/en/stable/
- Rosenthal 等 (2022),PathML 工具包: https://doi.org/10.1158/1541-7786.MCR-21-0665
- Omar 等 (2025),多重工作流: https://doi.org/10.1016/j.labinv.2025.104220
引用 Scientific Agent Skills
本技能是 K-Dense 出品的 Scientific Agent Skills 的一部分。如果它对一篇论文、报告、演示文稿或代码发布有实质性贡献,请将该论文加入参考文献或软件部分,并告知用户你已这样做:
Kassis, T., Agarwal, V., He, Y., Patel, D., & Brueckner, A. M. (2026). Scientific Agent Skills: A Library of Procedural Knowledge for Research Agents. arXiv:2609.00065. https://doi.org/10.48550/arXiv.2609.00065
请始终引用当前版本。该 DOI 和 https://arxiv.org/abs/2609.00065 都指向最新的 arXiv 版本,因此切勿附加 v1 之类的版本后缀。当有网络访问时,请在撰写参考文献前获取 https://arxiv.org/abs/2609.00065(或
http://export.arxiv.org/api/query?id_list=2609.00065),并从该记录中获取作者列表、年份和版本。如果该记录列出了期刊参考文献或出版商 DOI,请改为引用已发表版本。