Skip to main content

A package for MCD file conversion and stitching to OME-TIFFs

Project description

MCD STITCHER

PyPI Version Python Versions PyPI Downloads License: GPLv3

MCD Stitcher is a high-performance Python package designed to streamline the processing of Imaging Mass Cytometry (IMC) data. It simplifies the conversion of .mcd files into standards-compliant OME-TIFFs, handles ROI stitching, and provides tools for channel subsetting, pyramid generation and OME-TIFF compression.

Key Features

  • Convert: Fast transformation of MCD files to OME-TIFF.
  • Stitch: Automatic whole-slide reconstruction from ROIs.
  • Optimize: Channel filtering and pyramidal OME-TIFF generation for smooth viewing in QuPath, Napari, and ImageJ.

Installation

MCD Stitcher requires Python 3.9 or higher.

To install the package, use the following command:

pip install mcd_stitcher

Python API

You can run the same workflows from Python.

  • mcd_stitch CLI -> mcd_stitcher.mcd_stitch.mcd_stitch
  • mcd_convert CLI -> mcd_stitcher.mcd_convert.mcd_convert
  • tiff_subset CLI -> mcd_stitcher.tiff_subset.subset_single_file

Example:

from pathlib import Path
from mcd_stitcher.mcd_stitch import mcd_stitch

mcd_stitch(
    mcd_path=Path("path/to/file.mcd"),
    output_path=Path("path/to/output/file_stitched.ome.tiff"),
    dtype="uint16",
    compression="zstd",
)

from mcd_stitcher import __version__ returns the installed package version.

⚡ CLI Commands

▶️ MCD_STITCH

Description: Converts all ROIs from MCD files into whole-slide stitched OME-TIFFs.

Command:

mcd_stitch <input_path> [<output_path>] [OPTIONS]

Arguments:

  • input_path: Path to an MCD file or a folder containing .mcd files.
  • output_path: (Optional) Output folder for stitched OME-TIFFs. Defaults to: <input_path>/MCD_stitched

Options:

  • -d, --output_type [uint16 | float32]: Output pixel data type. Default: uint16
  • -c, --compression [None | LZW | zstd]: Compression method for the output OME-TIFFs. Default: zstd
  • -r, --roi: Interactively select which ROIs to stitch.

Notes:

  • --roi is supported only when input_path is a single .mcd file.

Example:

  1. Stitch with default output folder and options

    mcd_stitch "/path/to/MCD_folder"
    
  2. Stitch with custom output folder and options

    mcd_stitch "/path/to/MCD_folder" "/path/to/output_folder" -d float32 -c None
    

▶️ MCD_CONVERT

Description: Converts all ROIs from input MCD files into individual OME-TIFFs.

Command:

mcd_convert <input_path> [<output_path>] [OPTIONS]  

Arguments:

  • input_path: Path to an MCD file or a folder containing .mcd files.
  • output_path: (Optional) Output folder for stitched OME-TIFFs. Defaults to: <input_path>/MCD_Converted

Options:

  • -d, --output_type [uint16 | float32]: Output pixel data type. Default: uint16
  • -c, --compression [None | LZW | zstd]: Compression method for the output OME-TIFFs. Default: zstd

Example:

  1. Convert with default output folder and options

    mcd_convert "/path/to/MCD_folder"
    
  2. Convert with custom output folder and options

    mcd_convert "/path/to/MCD_folder" "/path/to/output_folder" -d float32 -c LZW
    

▶️ TIFF_SUBSET

Description: Subsets channels from OME-TIFF files, with options to list channels, filter specific channels, and generate pyramidal OME-TIFF outputs.

Command:

tiff_subset <input_path> [<output_path>] [OPTIONS]

Arguments:

  • input_path: Path to a .tiff file or a directory containing .tiff files.
  • output_path: (Optional) Output folder for processed OME-TIFFs. Defaults to: <input_path>

Options:

  • -d, --output_type [uint16 | float32]: Output pixel data type. Default: uint16
  • -c, --compression [None | LZW | zstd]: Compression method for the output OME-TIFFs. Default: zstd
  • -l, --list-channels: List all channels in the input OME-TIFF.
  • -f, --filter "CHANNELS": Subset channels using a range or list (e.g. "0-5,7,10").
  • -p, --pyramid: Create a pyramidal (tiled) OME-TIFF output.

Notes:

  • --list-channels cannot be combined with --filter or --pyramid.
  • At least one action is required: -l, -f, or -p.
  • --list-channels requires a single TIFF file as input.
  • Directory mode scans recursively for *.tiff files.
  • Per-file failures are logged to ome_subset_errors.log in the input root.

Examples:

  1. List all channels in an OME-TIFF file:

    tiff_subset "path/to/file.ome.tiff" -l
    
  2. Subset channels 12 to 46 in an individual OME-TIFF:

    tiff_subset "path/to/file.ome.tiff" -f "12-46"
    

    Note: Other possible combinations: "1,6,20" or "5,6-10,55,60"

  3. Subset channels in all OME-TIFFs in a directory 12 to 46

    tiff_subset "path/to/directory" -f "12-46"
    

    Note: The output files will have _filtered.ome.tiff appended to the original filename.

  4. Subset channels to a custom output directory while preserving folder structure:

    tiff_subset "path/to/directory" "path/to/output_folder" -f "12-46"
    
  5. Convert an OME-TIFF file into pyramid OME-TIFF

    tiff_subset "path/to/file.ome.tiff" -p	
    

    Note: The output files will have _pyramid.ome.tiff appended to the original filename.

  6. Subset channels and generate pyramid OME-TIFF:

    tiff_subset "path/to/file.ome.tiff" -p -f "12-46"
    

    Note: The output files will have _filtered_pyramid.ome.tiff appended to the original filename.

Issues

If you run into issues, have a feature suggestion, or want to share feedback, please open a ticket on the issue tracker.

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

mcd_stitcher-2.2.0.tar.gz (13.8 kB view details)

Uploaded Source

Built Distribution

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

mcd_stitcher-2.2.0-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

File details

Details for the file mcd_stitcher-2.2.0.tar.gz.

File metadata

  • Download URL: mcd_stitcher-2.2.0.tar.gz
  • Upload date:
  • Size: 13.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for mcd_stitcher-2.2.0.tar.gz
Algorithm Hash digest
SHA256 153418a95f7129acd71f360edf1c9d10164cc7d6382b7879d884d15775cf11b3
MD5 eab0e25a932c19b3cce67f7d20ccd28e
BLAKE2b-256 44eb0fdc52dbb800bcbf1d87fe205e58c8d95f2d02eba7264746d935f42e7cb7

See more details on using hashes here.

File details

Details for the file mcd_stitcher-2.2.0-py3-none-any.whl.

File metadata

  • Download URL: mcd_stitcher-2.2.0-py3-none-any.whl
  • Upload date:
  • Size: 15.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for mcd_stitcher-2.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 34935076be0023e013ccb7d227d6a86be2bc1c5f0205915a9fb57e6683fd9e8e
MD5 51ab4a1ee05b3fe06aefde49a3a06a56
BLAKE2b-256 1708cbabedcbd2521f7098da7446f39e9c88fe899cfca05e3d8c0c618838f38b

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