Skip to content
AI & Agents
Skill

/pathml

Use PathML for local, research-only computational pathology workflows: load and tile slides, build preprocessing and QC pipelines, manage h5path data, quantify multiplex images, construct spatial graphs, and plan bounded model inference.

From plugin
k-dense-ai-scientific-agent-skills
45k166 skills
Install
$ npx -y skills add k-dense-ai/claude-scientific-skills --skill pathml --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/pathml

Context preview

The summary Claude sees to decide when to auto-load this skill.

Use PathML for local, research-only computational pathology workflows: load and tile slides, build preprocessing and QC pipelines, manage h5path data, quantify multiplex images, construct spatial graphs, and plan bounded model inference.

SKILL.md

pathml.SKILL.md
name: pathml
description: "Use PathML for local, research-only computational pathology workflows: load and tile slides, build preprocessing and QC pipelines, manage h5path data, quantify multiplex images, construct spatial graphs, and plan bounded model inference."
license: MIT
compatibility: PathML 3.0.5 is the latest PyPI release and targets Python 3.10-3.12; installation needs uv plus platform libraries for OpenSlide, BLAS/LAPACK, and Java/Bio-Formats. Bundled Python 3.10+ CLIs are local, bounded, dependency-free, and network-free.
allowed-tools: Read Write Edit Bash Glob
metadata:
  version: "1.2"
  skill-author: K-Dense Inc.

PathML

Scope and safety boundary

Use PathML for **local computational pathology research**. It is beta research software, not a validated medical device, diagnostic system, clinical decision support tool, or substitute for a pathologist. Do not use outputs to diagnose, grade, stage, or treat a patient.

Pathology files may contain faces, labels, accession numbers, patient identifiers, DICOM tags, filenames, or linked clinical data. Before processing:

1. Confirm authorization, consent/waiver, data-use terms, and institutional policy. 2. De-identify pixels and metadata; keep the re-identification key outside the analysis workspace. 3. Use pseudonymous `patient_id`, `slide_id`, and `specimen_id` values. Do not put direct identifiers in filenames, logs, `.h5path` labels, model cards, or reports. 4. Keep inputs, intermediates, and outputs on approved local encrypted storage. 5. Split by patient (then slide) before tiling or fitting any preprocessing step.

Version baseline, verified 2026-07-23

  • **Installable stable release:** PyPI `pathml==3.0.5`, published 2026-03-24.
  • The v3.0.5 release notes state Python **3.10-3.12** and sunset 3.9.

PyPI does not declare `Requires-Python` and still has a stale 3.8 classifier, so use the release statement and test the exact environment.

  • GitHub releases v3.0.6 (2026-04-14) and v3.0.7 (2026-07-09) exist, but PyPI has

no artifacts for them as of this review. v3.0.7 updates Torch/TorchVision/ torch-geometric and ONNX export code. Do not mix those source dependencies with the 3.0.5 wheel.

  • ReadTheDocs `/latest` identifies itself as 3.0.5. Examples here were checked

against the v3.0.5 tag and PyPI wheel metadata, not unversioned snippets.

  • This skill is MIT-licensed. PathML itself is GPL-2.0 with upstream commercial

licensing options; review upstream terms before redistribution.

Reproducible installation

Use Python 3.11 unless the project has tested another supported interpreter:

uv venv --python 3.11
source .venv/bin/activate
uv pip install "pathml==3.0.5"
python -c "import importlib.metadata as m; print(m.version('pathml'))"

PathML 3.0.5 declares no package extras: do **not** use `pathml[all]`. Its base distribution pins a large scientific/ML stack, including Torch 2.8.0, ONNX 1.17.0, ONNX Runtime 1.17.x, OpenSlide Python 1.3.1, python-bioformats 4.1.0, and python-javabridge 4.0.4.

Install native prerequisites before the uv command:

# 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

Java/Bio-Formats is needed for the broad multidimensional format backend. OpenSlide handles common brightfield WSI formats more efficiently. CUDA is optional and must match the pinned PyTorch build; follow PyTorch's platform selector rather than guessing a CUDA wheel. See `references/image_loading.md`.

Stable minimal workflow

PathML 3.0.5 uses slide convenience classes and `SlideData.run()`. It does not provide `SlideData.from_slide()`, and `Pipeline` does not have `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")

Start with a bounded manual sample before a full run:

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]

Tiles use `(i, j)` = `(row, column)` coordinates at the selected pyramid level. For OpenSlide, PathML maps them to level-0 coordinates internally. Record the level and downsample; convert to `(x, y)` or micrometres explicitly downstream.

Research workflow

1. **Inventory locally.** Validate the manifest, reject URLs/symlinks, inspect only allowlisted technical metadata, and remove identifiers. 2. **Freeze splits.** Assign every patient and all their slides to one split before generating overlapping tiles, graphs, normalization references, or features. 3. **Plan bounds.** Estimate tile count, RAM, output size, and pipeline stages. 4. **Pilot preprocessing.** Inspect tissue masks, whitespace/artifact labels, stain behavior, edge padding, and empty-mask cases on representative training slides. Do not tune from test slides. 5. **Run and preserve coordinates.** Keep tile level, `(i, j)`, downsample, MPP, mask names, QC decisions, and failed/skipped tiles. 6. **Build spatial data deliberately.** Validate channel order, physical units, instance labels, node-feature alignment, graph edges, and cell-to-tissue assignments. 7. **Infer in bounded batches.** Verify model provenance and checksum without loading unknown pickle checkpoints. Keep predictions linked to slide/tile coordinates and stitch overlaps with a documented rule. 8. **Report provenance and limits.** Include

Read more
Ships withk-dense-ai-scientific-agent-skills

🔔 Claude Scientific Skills is now Scientific Agent Skills. Same skills, broader compatibility — now works with any AI agent that supports the open Agent Skills standard, not just Claude.

Get the whole plugin
Stats
44,280
Stars
4,019
Forks
Active
Maintenance
Python
Language
MIT
License
8d ago
Last commit
11mo ago
Created
15d ago
Added

Repo: k-dense-ai/claude-scientific-skills