Skip to main content

Tools for image registration between multiplexed and HnE stained tissue images

Project description

stainwarpy

Stainwarpy Logo

stainwarpy is a command-line tool and a Python package for registering H&E stained and multiplexed tissue images. It provides a feature based registration pipeline, saving registered images, transformation maps and evaluation metrics.

Features

  • Register H&E images and multiplexed images (after extracting DAPI channel) using transformations.
  • Supports feature-based registration.
  • Outputs registered images (in the pixel size of moving image), transformation maps and evaluation metrics (TRE and Mutual Information).
  • Transforms segmentation masks based on the computed transformations

Recommendations

  • For most cases, it is recommended to register H&E images onto multiplexed images (H&E as moving image).
  • The default similarity transformation usually works well and stable, therefore recommended.

Installation

You can install stainwarpy using pip:

pip install stainwarpy

Usage as a command-line tool

Register Images

stainwarpy register <fixed_path> <moving_path> <output_folder> <fixed_img> [options]

Examples:

stainwarpy register data/fixed_img.ome.tiff data/moving_img.ome.tiff ../output multiplexed
stainwarpy register data/fixed_img.tif data/moving_img.tif ../output multiplexed --fixed-px-sz 0.21 --moving-px-sz 0.52

Arguments:

  • fixed_path: Path to the fixed image (H&E or DAPI or Multiplexed image path (.tif/.tiff./.ome.tif/.ome.tiff))
  • moving_path: Path to the moving image (H&E or DAPI or Multiplexed image path (.tif/.tiff./.ome.tif/.ome.tiff))
  • output_folder: Folder to save the registered images and metrics
  • fixed_img: Type of fixed image: multiplexed or hne

Options:

  • --fixed-px-sz : Pixel size of the fixed image (no need to provide for ome.tiff, so default: None)
  • --moving-px-sz : Pixel size of the moving image (no need to provide for ome.tiff, so default: None)
  • --feature-tform : Feature transformation method: similarity oraffine or projective (default: similarity)

Output

After running registration, the following files/folders will be generated and saved in the specified output folder:

  • results/registration_metrics.json — TRE and Mutual Information
  • results/0_final_channel_image.tif — Registered image (in the pixel size of moving image)
  • results/feature_based_transformation_map.npy — Transformation map

Extract a Channel (DAPI can be extracted for registration)

stainwarpy extract-channel <file_path> <output_folder_path> [--channel-idx N]

Arguments

  • file-path : Path to multichannel image (.tif/.tiff/.ome.tif/.ome.tiff)
  • output-folder-path : Folder to save the extracted channel image

Options

  • --channel-idx: Channel index to extract (default: 0 for DAPI)

Output

  • multiplexed_channel_{channel_idx}.tif - Image with the extracted channel saved in the specified output folder

Transform segmentation Masks

Transform segmentation masks based on the transformation maps produced with the command register.

stainwarpy transform-seg-mask <mask_path> <fixed_path> <output_folder_path> <tform_map_path> <moving_px_sz> [--fixed-px-sz]

Arguments

  • mask_path : Path to the segmentation mask of the moving image (.npy)
  • fixed_path : Path to the fixed image (.tif/.tiff/.ome.tif/.ome.tiff)
  • output_folder_path : Folder to save the transformed segmentation mask
  • tform_map_path : Path to the transformation map
  • moving_px_sz : Pixel size of the moving image (no need to provide for ome.tiff, so default: None)

Options

  • --fixed-px-sz : Pixel size of the fixed image (no need to provide for ome.tiff, so default: None)

Output

  • transformed_segmentation_mask.npy : The segmentation mask transformed to the fixed image coordinate space saved in the specified output folder

Usage as a Python Library

Although stainwarpy is mainly a command-line tool, its functions can also be used directly in Python for scripting.

Example: Running the Registration Pipeline

from stainwarpy.regPipeline import registration_pipeline

# run registration pipeline
tform_map, final_img, tre, mi = registration_pipeline(
    fixed_path="fixed_image.tif",
    moving_path="moving_image.tif",
    fixed_px_sz=0.5,
    moving_px_sz=0.5,
    fixed_img="multiplexed",
    feature_tform="affine"        # used if adv_tform= is not "similarity"
)

print("TRE:", tre)
print("Mutual Information:", mi)

License

This project is licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

stainwarpy-0.1.3.tar.gz (10.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

stainwarpy-0.1.3-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

Details for the file stainwarpy-0.1.3.tar.gz.

File metadata

  • Download URL: stainwarpy-0.1.3.tar.gz
  • Upload date:
  • Size: 10.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for stainwarpy-0.1.3.tar.gz
Algorithm Hash digest
SHA256 0288e8d5f4f6599e954e9f1bbc748237bb21bd0bb552f59d149dc589a6fded42
MD5 16ce7d1fb1cf807310f2deab9cdb25ba
BLAKE2b-256 b3be5b885e032b47e57520b6037e7231712a9ad988082859c72dee82d7436dd6

See more details on using hashes here.

File details

Details for the file stainwarpy-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: stainwarpy-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 10.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for stainwarpy-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 99dcf8286c5b746489465af9fe1500eb63e525266ea51a34d008c5ce9a028341
MD5 45e27a68e1b163bdc49c84c29fd8af75
BLAKE2b-256 3d64b98f38cbcd17f19f2e35ec592f906af8a87ee6c15dcce2f7b679b9e12021

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page