Agent skill

Histolab

by aipoch in aipoch/medical-research-skills

Digital pathology image processing toolkit for whole slide images (WSI).

MITAuto-check passedDocuments & Office

Install Histolab

skills CLI
$ npx skills add aipoch/medical-research-skills --skill histolab -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install aipoch/medical-research-skills histolab --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/aipoch/medical-research-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/'scientific-skills/Data Analysis/histolab' .claude/skills/histolab && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
histolab
GitHub stars
2k
Token cost
~5.4k tokens
SKILL.md length
1,615 words
Files
8 (incl. references)
Skills in repo
578
Repo updated
First seen
Licence
MIT

At a glance

Digital pathology image processing toolkit for whole slide images (WSI).

  • Works in 5 steps: Slide Management → Tissue Detection and Masks → Tile Extraction → …
  • Tasks that involve Slides and decks
  • SKILL.md covers Overview, When to Use, When NOT to Use and Installation, plus 5 more sections
  • Calls uv

What it does

Histolab is an agent skill from aipoch/medical-research-skills. Digital pathology image processing toolkit for whole slide images (WSI). Supports WSI formats (SVS, TIFF, NDPI), tile-based analysis, and histological image preprocessing workflows.

Its SKILL.md is about 5.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including reference files (for example `POLISH_CHANGELOG.md`, `eval_report_histolab_result.json` and `references/filters_preprocessing.md`).

It sits in Documents & Office, covering Slides and decks. The repository describes itself as: Hundreds of agent skills for medical research, including protocol design, data analysis, evidence insights, and academic writing. The licence is MIT.

When your agent uses it

  • Tasks that involve Slides and decks

Example prompts

  • “/histolab”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Slide Management
  2. Tissue Detection and Masks
  3. Tile Extraction
  4. Filters and Preprocessing
  5. Visualization

What it can do on your machine

Read from SKILL.md and the folder at commit 686e09d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • uv

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use uv, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Histolab loads about 5.4k tokens when it runs, and up to ~18k if it reads all its reference files. Until then it costs about 48 tokens; SKILL.md has 1,615 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~48
When it runs · the whole SKILL.md, loaded when a task matches
~5.4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~18k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from aipoch/medical-research-skills at commit 686e09d, republished under its MIT licence (© aipoch). 1,615 words, ~5,445 tokens.

Download SKILL.mdSave it as .claude/skills/histolab/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.
name
histolab
description
Digital pathology image processing toolkit for whole slide images (WSI). Supports WSI formats (SVS, TIFF, NDPI), tile-based analysis, and histological image preprocessing workflows.
license
MIT
author
AIPOCH

Source: https://github.com/aipoch/medical-research-skills

Histolab

Overview

Histolab is a Python library for processing whole slide images (WSI) in digital pathology. It automates tissue detection, extracts informative tiles from gigapixel images, and prepares datasets for deep learning pipelines. The library handles multiple WSI formats, implements sophisticated tissue segmentation, and provides flexible tile extraction strategies.

When to Use

  • Use this skill when working with histopathology slides, processing H&E or IHC stained tissue images, extracting tiles from gigapixel pathology images, detecting tissue regions, segmenting tissue masks, or preparing datasets for computational pathology deep learning pipelines.

When NOT to Use

  • Do not use for real-time whole-slide image viewing (use OpenSlide or a dedicated WSI viewer).
  • Do not use for stain normalization (use StainNet, Macenko, or Reinhard methods separately).
  • Do not use for cell segmentation or nucleus detection (use Cellpose, HoverNet, or StarDist).
  • Do not use for non-WSI medical images (X-ray, CT, MRI) — use a medical imaging toolkit.
  • Do not use on machines with <16 GB RAM when processing high-resolution SVS files at level 0.

Installation

bash
uv pip install histolab

Quick Start

Basic workflow for extracting tiles from a whole slide image:

python
from histolab.slide import Slide
from histolab.tiler import RandomTiler

# Load slide
slide = Slide("slide.svs", processed_path="output/")

# Configure tiler
tiler = RandomTiler(
    tile_size=(512, 512),
    n_tiles=100,
    level=0,
    seed=42
)

# Preview tile locations
tiler.locate_tiles(slide, n_tiles=20)

# Extract tiles
tiler.extract(slide)

Core Capabilities

1. Slide Management

Load, inspect, and work with whole slide images in various formats.

Common operations:

  • Loading WSI files (SVS, TIFF, NDPI, etc.)
  • Accessing slide metadata (dimensions, magnification, properties)
  • Generating thumbnails for visualization
  • Working with pyramidal image structures
  • Extracting regions at specific coordinates

Key classes: Slide

Reference: references/slide_management.md contains comprehensive documentation on:

  • Slide initialization and configuration
  • Built-in sample datasets (prostate, ovarian, breast, heart, kidney tissues)
  • Accessing slide properties and metadata
  • Thumbnail generation and visualization
  • Working with pyramid levels
  • Multi-slide processing workflows

Example workflow:

python
from histolab.slide import Slide
from histolab.data import prostate_tissue

# Load sample data
prostate_svs, prostate_path = prostate_tissue()

# Initialize slide
slide = Slide(prostate_path, processed_path="output/")

# Inspect properties
print(f"Dimensions: {slide.dimensions}")
print(f"Levels: {slide.levels}")
print(f"Magnification: {slide.properties.get('openslide.objective-power')}")

# Save thumbnail
slide.save_thumbnail()
2. Tissue Detection and Masks

Automatically identify tissue regions and filter background/artifacts.

Common operations:

  • Creating binary tissue masks
  • Detecting largest tissue region
  • Excluding background and artifacts
  • Custom tissue segmentation
  • Removing pen annotations

Key classes: TissueMask, BiggestTissueBoxMask, BinaryMask

Reference: references/tissue_masks.md contains comprehensive documentation on:

  • TissueMask: Segments all tissue regions using automated filters
  • BiggestTissueBoxMask: Returns bounding box of largest tissue region (default)
  • BinaryMask: Base class for custom mask implementations
  • Visualizing masks with locate_mask()
  • Creating custom rectangular and annotation-exclusion masks
  • Mask integration with tile extraction
  • Best practices and troubleshooting

Example workflow:

python
from histolab.masks import TissueMask, BiggestTissueBoxMask

# Create tissue mask for all tissue regions
tissue_mask = TissueMask()

# Visualize mask on slide
slide.locate_mask(tissue_mask)

# Get mask array
mask_array = tissue_mask(slide)

# Use largest tissue region (default for most extractors)
biggest_mask = BiggestTissueBoxMask()

When to use each mask:

  • TissueMask: Multiple tissue sections, comprehensive analysis
  • BiggestTissueBoxMask: Single main tissue section, exclude artifacts (default)
  • Custom BinaryMask: Specific ROI, exclude annotations, custom segmentation
3. Tile Extraction

Extract smaller regions from large WSI using different strategies.

Three extraction strategies:

RandomTiler: Extract fixed number of randomly positioned tiles

  • Best for: Sampling diverse regions, exploratory analysis, training data
  • Key parameters: n_tiles, seed for reproducibility

GridTiler: Systematically extract tiles across tissue in grid pattern

  • Best for: Complete coverage, spatial analysis, reconstruction
  • Key parameters: pixel_overlap for sliding windows

ScoreTiler: Extract top-ranked tiles based on scoring functions

  • Best for: Most informative regions, quality-driven selection
  • Key parameters: scorer (NucleiScorer, CellularityScorer, custom)

Common parameters:

  • tile_size: Tile dimensions (e.g., (512, 512))
  • level: Pyramid level for extraction (0 = highest resolution)
  • check_tissue: Filter tiles by tissue content
  • tissue_percent: Minimum tissue coverage (default 80%)
  • extraction_mask: Mask defining extraction region

Reference: references/tile_extraction.md contains comprehensive documentation on:

  • Detailed explanation of each tiler strategy
  • Available scorers (NucleiScorer, CellularityScorer, custom)
  • Tile preview with locate_tiles()
  • Extraction workflows and reporting
  • Advanced patterns (multi-level, hierarchical extraction)
  • Performance optimization and troubleshooting

Example workflows:

python
from histolab.tiler import RandomTiler, GridTiler, ScoreTiler
from histolab.scorer import NucleiScorer

# Random sampling (fast, diverse)
random_tiler = RandomTiler(
    tile_size=(512, 512),
    n_tiles=100,
    level=0,
    seed=42,
    check_tissue=True,
    tissue_percent=80.0
)
random_tiler.extract(slide)

# Grid coverage (comprehensive)
grid_tiler = GridTiler(
    tile_size=(512, 512),
    level=0,
    pixel_overlap=0,
    check_tissue=True
)
grid_tiler.extract(slide)

# Score-based selection (most informative)
score_tiler = ScoreTiler(
    tile_size=(512, 512),
    n_tiles=50,
    scorer=NucleiScorer(),
    level=0
)
score_tiler.extract(slide, report_path="tiles_report.csv")

Always preview before extracting:

python
# Preview tile locations on thumbnail
tiler.locate_tiles(slide, n_tiles=20)
4. Filters and Preprocessing

Apply image processing filters for tissue detection, quality control, and preprocessing.

Filter categories:

Image Filters: Color space conversions, thresholding, contrast enhancement

  • RgbToGrayscale, RgbToHsv, RgbToHed
  • OtsuThreshold, AdaptiveThreshold
  • StretchContrast, HistogramEqualization

Morphological Filters: Structural operations on binary images

  • BinaryDilation, BinaryErosion
  • BinaryOpening, BinaryClosing
  • RemoveSmallObjects, RemoveSmallHoles

Composition: Chain multiple filters together

  • Compose: Create filter pipelines

Reference: references/filters_preprocessing.md contains comprehensive documentation on:

  • Detailed explanation of each filter type
  • Filter composition and chaining
  • Common preprocessing pipelines (tissue detection, pen removal, nuclei enhancement)
  • Applying filters to tiles
  • Custom mask filters
  • Quality control filters (blur detection, tissue coverage)
  • Best practices and troubleshooting

Example workflows:

python
from histolab.filters.compositions import Compose
from histolab.filters.image_filters import RgbToGrayscale, OtsuThreshold
from histolab.filters.morphological_filters import (
    BinaryDilation, RemoveSmallHoles, RemoveSmallObjects
)

# Standard tissue detection pipeline
tissue_detection = Compose([
    RgbToGrayscale(),
    OtsuThreshold(),
    BinaryDilation(disk_size=5),
    RemoveSmallHoles(area_threshold=1000),
    RemoveSmallObjects(area_threshold=500)
])

# Use with custom mask
from histolab.masks import TissueMask
custom_mask = TissueMask(filters=tissue_detection)

# Apply filters to tile
from histolab.tile import Tile
filtered_tile = tile.apply_filters(tissue_detection)
5. Visualization

Visualize slides, masks, tile locations, and extraction quality.

Common visualization tasks:

  • Displaying slide thumbnails
  • Visualizing tissue masks
  • Previewing tile locations
  • Assessing tile quality
  • Creating reports and figures

Reference: references/visualization.md contains comprehensive documentation on:

  • Slide thumbnail display and saving
  • Mask visualization with locate_mask()
  • Tile location preview with locate_tiles()
  • Displaying extracted tiles and mosaics
  • Quality assessment (score distributions, top vs bottom tiles)
  • Multi-slide visualization
  • Filter effect visualization
  • Exporting high-resolution figures and PDF reports
  • Interactive visualization in Jupyter notebooks

Example workflows:

python
import matplotlib.pyplot as plt
from histolab.masks import TissueMask

# Display slide thumbnail
plt.figure(figsize=(10, 10))
plt.imshow(slide.thumbnail)
plt.title(f"Slide: {slide.name}")
plt.axis('off')
plt.show()

# Visualize tissue mask
tissue_mask = TissueMask()
slide.locate_mask(tissue_mask)

# Preview tile locations
tiler = RandomTiler(tile_size=(512, 512), n_tiles=50)
tiler.locate_tiles(slide, n_tiles=20)

# Display extracted tiles in grid
from pathlib import Path
from PIL import Image

tile_paths = list(Path("output/tiles/").glob("*.png"))[:16]
fig, axes = plt.subplots(4, 4, figsize=(12, 12))
axes = axes.ravel()

for idx, tile_path in enumerate(tile_paths):
    tile_img = Image.open(tile_path)
    axes[idx].imshow(tile_img)
    axes[idx].set_title(tile_path.stem, fontsize=8)
    axes[idx].axis('off')

plt.tight_layout()
plt.show()

Typical Workflows

Workflow 1: Exploratory Tile Extraction

Quick sampling of diverse tissue regions for initial analysis.

python
from histolab.slide import Slide
from histolab.tiler import RandomTiler
import logging

# Enable logging for progress tracking
logging.basicConfig(level=logging.INFO)

# Load slide
slide = Slide("slide.svs", processed_path="output/random_tiles/")

# Inspect slide
print(f"Dimensions: {slide.dimensions}")
print(f"Levels: {slide.levels}")
slide.save_thumbnail()

# Configure random tiler
random_tiler = RandomTiler(
    tile_size=(512, 512),
    n_tiles=100,
    level=0,
    seed=42,
    check_tissue=True,
    tissue_percent=80.0
)

# Preview locations
random_tiler.locate_tiles(slide, n_tiles=20)

# Extract tiles
random_tiler.extract(slide)
Workflow 2: Comprehensive Grid Extraction

Complete tissue coverage for whole-slide analysis.

python
from histolab.slide import Slide
from histolab.tiler import GridTiler
from histolab.masks import TissueMask

# Load slide
slide = Slide("slide.svs", processed_path="output/grid_tiles/")

# Use TissueMask for all tissue sections
tissue_mask = TissueMask()
slide.locate_mask(tissue_mask)

# Configure grid tiler
grid_tiler = GridTiler(
    tile_size=(512, 512),
    level=1,  # Use level 1 for faster extraction
    pixel_overlap=0,
    check_tissue=True,
    tissue_percent=70.0
)

# Preview grid
grid_tiler.locate_tiles(slide)

# Extract all tiles
grid_tiler.extract(slide, extraction_mask=tissue_mask)
Workflow 3: Quality-Driven Tile Selection

Extract most informative tiles based on nuclei density.

python
from histolab.slide import Slide
from histolab.tiler import ScoreTiler
from histolab.scorer import NucleiScorer
import pandas as pd
import matplotlib.pyplot as plt

# Load slide
slide = Slide("slide.svs", processed_path="output/scored_tiles/")

# Configure score tiler
score_tiler = ScoreTiler(
    tile_size=(512, 512),
    n_tiles=50,
    level=0,
    scorer=NucleiScorer(),
    check_tissue=True
)

# Preview top tiles
score_tiler.locate_tiles(slide, n_tiles=15)

# Extract with report
score_tiler.extract(slide, report_path="tiles_report.csv")

# Analyze scores
report_df = pd.read_csv("tiles_report.csv")
plt.hist(report_df['score'], bins=20, edgecolor='black')
plt.xlabel('Tile Score')
plt.ylabel('Frequency')
plt.title('Distribution of Tile Scores')
plt.show()
Workflow 4: Multi-Slide Processing Pipeline

Process entire slide collection with consistent parameters.

python
from pathlib import Path
from histolab.slide import Slide
from histolab.tiler import RandomTiler
import logging

logging.basicConfig(level=logging.INFO)

# Configure tiler once
tiler = RandomTiler(
    tile_size=(512, 512),
    n_tiles=50,
    level=0,
    seed=42,
    check_tissue=True
)

# Process all slides
slide_dir = Path("slides/")
output_base = Path("output/")

for slide_path in slide_dir.glob("*.svs"):
    print(f"\nProcessing: {slide_path.name}")

    # Create slide-specific output directory
    output_dir = output_base / slide_path.stem
    output_dir.mkdir(parents=True, exist_ok=True)

    # Load and process slide
    slide = Slide(slide_path, processed_path=output_dir)

    # Save thumbnail for review
    slide.save_thumbnail()

    # Extract tiles
    tiler.extract(slide)

    print(f"Completed: {slide_path.name}")
Workflow 5: Custom Tissue Detection and Filtering

Handle slides with artifacts, annotations, or unusual staining.

python
from histolab.slide import Slide
from histolab.masks import TissueMask
from histolab.tiler import RandomTiler
from histolab.filters.compositions import Compose
from histolab.filters.image_filters import RgbToGrayscale, OtsuThreshold
from histolab.filters.morphological_filters import (
    BinaryDilation, RemoveSmallObjects, RemoveSmallHoles
)

# Define custom filter pipeline for aggressive artifact removal
aggressive_filters = Compose([
    RgbToGrayscale(),
    OtsuThreshold(),
    BinaryDilation(disk_size=10),
    RemoveSmallHoles(area_threshold=5000),
    RemoveSmallObjects(area_threshold=3000)  # Remove larger artifacts
])

# Create custom mask
custom_mask = TissueMask(filters=aggressive_filters)

# Load slide and visualize mask
slide = Slide("slide.svs", processed_path="output/")
slide.locate_mask(custom_mask)

# Extract with custom mask
tiler = RandomTiler(tile_size=(512, 512), n_tiles=100)
tiler.extract(slide, extraction_mask=custom_mask)

Best Practices

Slide Loading and Inspection
  1. Always inspect slide properties before processing
  2. Save thumbnails for quick visual review
  3. Check pyramid levels and dimensions
  4. Verify tissue is present using thumbnails
Tissue Detection
  1. Preview masks with locate_mask() before extraction
  2. Use TissueMask for multiple sections, BiggestTissueBoxMask for single sections
  3. Customize filters for specific stains (H&E vs IHC)
  4. Handle pen annotations with custom masks
  5. Test masks on diverse slides
Tile Extraction
  1. Always preview with locate_tiles() before extracting
  2. Choose appropriate tiler:
    • RandomTiler: Sampling and exploration
    • GridTiler: Complete coverage
    • ScoreTiler: Quality-driven selection
  3. Set appropriate tissue_percent threshold (70-90% typical)
  4. Use seeds for reproducibility in RandomTiler
  5. Extract at appropriate pyramid level for analysis resolution
  6. Enable logging for large datasets
Performance
  1. Extract at lower levels (1, 2) for faster processing
  2. Use BiggestTissueBoxMask over TissueMask when appropriate
  3. Adjust tissue_percent to reduce invalid tile attempts
  4. Limit n_tiles for initial exploration
  5. Use pixel_overlap=0 for non-overlapping grids
Quality Control
  1. Validate tile quality (check for blur, artifacts, focus)
  2. Review score distributions for ScoreTiler
  3. Inspect top and bottom scoring tiles
  4. Monitor tissue coverage statistics
  5. Filter extracted tiles by additional quality metrics if needed
Show full SKILL.md (631 more words)Show less

Common Use Cases

Training Deep Learning Models
  • Extract balanced datasets using RandomTiler across multiple slides
  • Use ScoreTiler with NucleiScorer to focus on cell-rich regions
  • Extract at consistent resolution (level 0 or level 1)
  • Generate CSV reports for tracking tile metadata
Whole Slide Analysis
  • Use GridTiler for complete tissue coverage
  • Extract at multiple pyramid levels for hierarchical analysis
  • Maintain spatial relationships with grid positions
  • Use pixel_overlap for sliding window approaches
Tissue Characterization
  • Sample diverse regions with RandomTiler
  • Quantify tissue coverage with masks
  • Extract stain-specific information with HED decomposition
  • Compare tissue patterns across slides
Quality Assessment
  • Identify optimal focus regions with ScoreTiler
  • Detect artifacts using custom masks and filters
  • Assess staining quality across slide collection
  • Flag problematic slides for manual review
Dataset Curation
  • Use ScoreTiler to prioritize informative tiles
  • Filter tiles by tissue percentage
  • Generate reports with tile scores and metadata
  • Create stratified datasets across slides and tissue types

Troubleshooting

No tiles extracted
  • Lower tissue_percent threshold
  • Verify slide contains tissue (check thumbnail)
  • Ensure extraction_mask captures tissue regions
  • Check tile_size is appropriate for slide resolution
Many background tiles
  • Enable check_tissue=True
  • Increase tissue_percent threshold
  • Use appropriate mask (TissueMask vs BiggestTissueBoxMask)
  • Customize mask filters to better detect tissue
Extraction very slow
  • Extract at lower pyramid level (level=1 or 2)
  • Reduce n_tiles for RandomTiler/ScoreTiler
  • Use RandomTiler instead of GridTiler for sampling
  • Use BiggestTissueBoxMask instead of TissueMask
Tiles have artifacts
  • Implement custom annotation-exclusion masks
  • Adjust filter parameters for artifact removal
  • Increase small object removal threshold
  • Apply post-extraction quality filtering
Inconsistent results across slides
  • Use same seed for RandomTiler
  • Normalize staining with preprocessing filters
  • Adjust tissue_percent per staining quality
  • Implement slide-specific mask customization

Resources

This skill includes detailed reference documentation in the references/ directory:

references/slide_management.md

Comprehensive guide to loading, inspecting, and working with whole slide images:

  • Slide initialization and configuration
  • Built-in sample datasets
  • Slide properties and metadata
  • Thumbnail generation and visualization
  • Working with pyramid levels
  • Multi-slide processing workflows
  • Best practices and common patterns
references/tissue_masks.md

Complete documentation on tissue detection and masking:

  • TissueMask, BiggestTissueBoxMask, BinaryMask classes
  • How tissue detection filters work
  • Customizing masks with filter chains
  • Visualizing masks
  • Creating custom rectangular and annotation-exclusion masks
  • Integration with tile extraction
  • Best practices and troubleshooting
references/tile_extraction.md

Detailed explanation of tile extraction strategies:

  • RandomTiler, GridTiler, ScoreTiler comparison
  • Available scorers (NucleiScorer, CellularityScorer, custom)
  • Common and strategy-specific parameters
  • Tile preview with locate_tiles()
  • Extraction workflows and CSV reporting
  • Advanced patterns (multi-level, hierarchical)
  • Performance optimization
  • Troubleshooting common issues
references/filters_preprocessing.md

Complete filter reference and preprocessing guide:

  • Image filters (color conversion, thresholding, contrast)
  • Morphological filters (dilation, erosion, opening, closing)
  • Filter composition and chaining
  • Common preprocessing pipelines
  • Applying filters to tiles
  • Custom mask filters
  • Quality control filters
  • Best practices and troubleshooting
references/visualization.md

Comprehensive visualization guide:

  • Slide thumbnail display and saving
  • Mask visualization techniques
  • Tile location preview
  • Displaying extracted tiles and creating mosaics
  • Quality assessment visualizations
  • Multi-slide comparison
  • Filter effect visualization
  • Exporting high-resolution figures and PDFs
  • Interactive visualization in Jupyter notebooks

Usage pattern: Reference files contain in-depth information to support workflows described in this main skill document. Load specific reference files as needed for detailed implementation guidance, troubleshooting, or advanced features.

Error Handling

  • If required inputs are missing, state exactly which fields are missing and request only the minimum additional information.
  • If the task goes outside the documented scope, stop instead of guessing or silently widening the assignment.
  • If execution fails, report the failure point, summarize what can still be completed safely, and provide a manual fallback.
  • Do not fabricate files, citations, data, search results, or execution outcomes.

Input Validation

This skill accepts requests that match the documented purpose of histolab and include enough context to complete the workflow safely.

Do not continue the workflow when the request is out of scope, missing a critical input, or would require unsupported assumptions. Instead respond:

histolab only handles its documented workflow. Please provide the missing required inputs or switch to a more suitable skill.

© aipoch, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 7 other files (references) in scientific-skills/Data Analysis/histolab of aipoch/medical-research-skills.

  • SKILL.md
  • POLISH_CHANGELOG.md
  • eval_report_histolab_result.json
  • references/filters_preprocessing.md
  • references/slide_management.md
  • references/tile_extraction.md
  • references/tissue_masks.md
  • references/visualization.md

Open the folder on GitHubat commit 686e09d

Compare with similar skills

Histolab next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Histolab compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Histolab this skillaipoch/medical-research-skills2k—~5.4kAutomated safety check: PassMIT
Power DesignItsssssJack/power-design722—~2.8kAutomated safety check: PassMIT
Pathmldavila7/claude-code-templates32k11 repos~1.9kAutomated safety check: PassMIT
Case Study Planindranilbanerjee/digital-marketing-pro8591 repos~2.2kAutomated safety check: PassMIT
Demo ScriptTheCraigHewitt/skills157—~6.2kAutomated safety check: PassMIT
Image To Editable Pptningzimu/image-to-editable-ppt-skill2.8k—~4.3kAutomated safety check: PassMIT

Similar skills

  • Power Design

    ItsssssJack/power-design

    Generate beautiful, on-brand HTML — presentation decks or full responsive websites — in any brand's design language, combining brand DNA extracted via Firecrawl with codified, research-backed design…

    722 GitHub stars~2.8k tokensUpdated 2 mo ago
    Documents & OfficeAuto-check passed
  • Pathml

    davila7/claude-code-templates

    Computational pathology toolkit for analyzing whole-slide images (WSI) and multiparametric imaging data.

    32k GitHub starsUsed in 11 repos~1.9k tokens
    Documents & OfficeAuto-check passed
  • Case Study Plan

    indranilbanerjee/digital-marketing-pro

    Build a complete case-study creation blueprint — a Challenge-Solution-Results narrative framework, 15-20 client interview questions plus 10 internal-team questions, a data-visualization plan, format…

    859 GitHub starsUsed in 1 repo~2.2k tokens
    Documents & OfficeAuto-check passed
  • Demo Script

    TheCraigHewitt/skills

    When the user wants to build a demo script, plan a product demo, create a tailored product presentation, do a POC walkthrough, or show the product.

    157 GitHub stars~6.2k tokensUpdated 4 mo ago
    Documents & OfficeAuto-check passed
  • Image To Editable Ppt

    ningzimu/image-to-editable-ppt-skill

    Rebuild slide images, scanned or image-based PPT/PPTX files, and PDF decks into object-level editable PowerPoint (.pptx), preserving speaker notes when supplied.

    2.8k GitHub stars~4.3k tokensUpdated 23 days ago
    Documents & OfficeAuto-check passed
  • Slides

    fcakyon/claude-codex-settings

    Create and edit presentation slide decks (.pptx) with PptxGenJS, bundled layout helpers, and render/validation utilities.

    1.2k GitHub starsUsed in 1 repo~1.1k tokens
    Documents & OfficeAuto-check passed

More from aipoch/medical-research-skills

All 578 skills in this repo
  • Academic Poster Generator

    aipoch/medical-research-skills

    Complete workflow for generating academic research posters from PDF literature; use when you need to extract paper content from PDFs and produce a LaTeX-based poster…

    2k GitHub stars~2.2k tokensUpdated 22 days ago
    Auto-check passed
  • Diagnostic Study Quality Assessment Quadas

    aipoch/medical-research-skills

    Analyzes clinical diagnostic accuracy studies for bias using the QUADAS-2 tool.

    2k GitHub stars~1.4k tokensUpdated 22 days ago
    Auto-check passed
  • Exploratory Data Analysis

    aipoch/medical-research-skills

    Perform comprehensive exploratory data analysis on scientific data files across 200+ file formats.

    2k GitHub stars~3.7k tokensUpdated 22 days ago
    Auto-check passed
  • Iso Certification

    aipoch/medical-research-skills

    A toolkit for preparing ISO 13485:2016 certification documentation for medical device QMS.

    2k GitHub stars~1.8k tokensUpdated 22 days ago
    Auto-check passed
  • Journal Skills

    aipoch/medical-research-skills

    Recommends target journals for manuscript submission by analyzing the paper topic/abstract and the journal distribution of similar PubMed literature; use when users ask for journal…

    2k GitHub stars~1.7k tokensUpdated 22 days ago
    Auto-check passed
  • Latex Posters

    aipoch/medical-research-skills

    Creates academic-poster writing packages for LaTeX using beamerposter, tikzposter, or baposter.

    2k GitHub stars~1.3k tokensUpdated 22 days ago
    Auto-check passed

Questions about Histolab

What does Histolab do?

Digital pathology image processing toolkit for whole slide images (WSI). Histolab is an agent skill from aipoch/medical-research-skills. Digital pathology image processing toolkit for whole slide images (WSI).

When should I use Histolab?

Histolab fits situations like: tasks that involve Slides and decks.

How do I install Histolab in Claude Code?

Run `npx skills add aipoch/medical-research-skills --skill histolab -a claude-code`. Or copy the skill folder (scientific-skills/Data Analysis/histolab in aipoch/medical-research-skills) into .claude/skills/histolab in your project. Claude Code loads it when a task matches its description.

How do I install Histolab in Codex?

Run `npx skills add aipoch/medical-research-skills --skill histolab -a codex`. Or copy the skill folder (scientific-skills/Data Analysis/histolab in aipoch/medical-research-skills) into .agents/skills/histolab in your project. Codex loads it when a task matches its description.

Can I use Histolab in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add aipoch/medical-research-skills --skill histolab -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/histolab, .gemini/skills/histolab, .github/skills/histolab and .opencode/skills/histolab in your project.

What does Histolab need to run?

Going by SKILL.md and its folder, Histolab needs the command-line tools its instructions call (uv). Our summary lists: Python 3.

Does Histolab access the network?

SKILL.md contains no URLs. Its commands use uv, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Histolab safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Histolab use?

Histolab is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Histolab use?

About 5.4k tokens (SKILL.md is roughly 22k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 13k tokens, read only when the agent opens those files.

What are the alternatives to Histolab?

Skills that share tags, products or a category with Histolab: Power Design (ItsssssJack/power-design, 722 stars), Pathml (davila7/claude-code-templates, 32k stars), Case Study Plan (indranilbanerjee/digital-marketing-pro, 859 stars) and Demo Script (TheCraigHewitt/skills, 157 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Histolab?

aipoch (a GitHub organization) maintains it in aipoch/medical-research-skills, which has 1,978 GitHub stars. The repository holds 578 skills in this directory. The repository was last updated on September 17, 2026.

Source: aipoch/medical-research-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.