Skip to main content

Tools to handle IMC data

Project description


Build Status Documentation Status

An IMC file conversion tool that aims to convert IMC rawfiles (.mcd, .txt) into an intermediary ome.tiff, containing all the relevant metadata. Further it contains tools to generate simpler tiff files that can be directly be used as input files for e.g. CellProfiller, Ilastik, Fiji etc.

Further imctools can directly work as a FIJI plugin, exploiting the Jython language. That allows that IMC data can be directly visualized in FIJI.

For a description of the associated segmentation pipline, please visit:



  • MCD lazy data access using memorymaps
  • Full MCD metadata access
  • TXT file loading
  • OME-TIFF loading
  • OME-TIFF/TIFF export (including optional compression)


  • The package is written for Python3, but should also work with Python2
  • The core functions have a 'base' pure Python/Jython implementation with no dependencies outside the standard libraries.
  • The fast functions do need Python packages, such as numpy, scipy etc. installed.


Use the pip installation manger to directly install the package from Github:

pip install git+


imctools is often used from jupyter as part of the preprocessing pipeline, mainly using the 'script' wrapper functions. Check 'notebooks/example_preprocessing_pipline.ipynb' as a template

Further imctools can be directly used as a module:

import as mcdparser
import as txtparser
import as omeparser
import as meta

fn_mcd = '/home/vitoz/Data/varia/201708_instrument_comp/mcd/'

mcd = mcdparser.McdParser(fn_mcd)

# parsed Metadata Access

# a metadata object for comprehensive metadata access
acmeta = mcd.meta.get_object(meta.ACQUISITION, '1')

# The common class to represent a single IMC acquisition is
# The IMC acuqisition class.
# All parser classes have a 'get_imc_acquisition' method
imc_ac = mcd.get_imc_acquisition('1')

# imc acquisitions can yield the image data
image_matrix = imc_ac.get_img_by_metal('Ir191')

# or can be used to save the images using the image writer class
fn_out ='/home/vitoz/temp/test.ome.tiff'
img = imc_ac.get_image_writer(filename=fn_out, metals=['Ir191', 'Yb172'])
img.save_image(mode='ome', compression=0, dtype=None, bigtiff=False)

# as the mcd object is using lazy loading memory maps, it needs to be closed
# or used with a context manager.

Project details

Download files

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

Files for imctools, version 1.0.3
Filename, size & hash File type Python version Upload date
imctools-1.0.3-py2.py3-none-any.whl (65.5 kB) View hashes Wheel py2.py3
imctools-1.0.3.tar.gz (49.8 kB) View hashes Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page