CellH5: A format for data exchange in high-content screening

CellH5 is an HDF5 data format for cell-based assays in high-content microscopy. It stores high-dimensional image data along with object measurements and inter-object relations using a graph representation. CellH5 is open source and published under the LGPL license.


CellH5.org online!

Demo deta sets

H2B-mCherry (red) + mEGFP-alpha-Tubulin (green)

Human Hela Kyoto cells stably expressing fluorescent markers of chromatin (histone-2b, H2B) and alpha-Tubulin. Data acquired by Katja Beck (Kutay group, ETH Zurich) and Michael Held (Gerlich group, IMBA Vienna) at a Molecular Devices ImageXpress Micro with the PlateScanPackage. Widefield epifluorescence, 20x dry objective (0.3225 µm / pixel), 1392x1040 pixel, 206 frames x 4.6 min = 15.8 h. Generated with CellCognition.

More to come

CellH5 browser

CellH5Browser is an interactive gallery image browser based on the CellH5 data format. For testing download a CellH5 example data set for the CellH5Browser from a time-lapse microscopy dataset.

CellH5 interfaces

R Language

API for reading CellH5

The CellH5 R-package includes a full documentation.


Support: Experimental Bio-Formats importer and native CellH5 reading and write access

To load the raw data stored in CellH5 into Fiji one can use the experimental bio-formats importer. Unzip the the custom built Fiji and start it. You can drag'n'drop a CellH5 file on Fiji; then select "Show ROIs" and "Use virtual stack".


Support: Write access implemented via CellCognition IO

The automated pipeline for image analysis implemented by CellCognition is able to create CellH5 files and stores segmentation, classification and tracking of cell objects over time. Also sub tracks for temporal events as defined in CellCognition workflow are exported to CellH5.


Support: API for reading CellH5

The Perl module CellH5 implements a reading application programming interface for the Perl programming language. Author: Jean-Karim Henriche (EMBL Heidelberg)


The Python package cellh5 implements a reading application programming interface for the Python programming language. The package requires only standard Python modules such as numpy and h5py and provides unit test cases on the basis of the H2b-Tubulin demo data.


Support: native CellH5 reading and write access

The full content stored in CellH5 can also be accessed from Matlab using the native Matlab HDF5 interface. We aim to provide an advanced programming interface for Matlab. If you are a Matlab programmer and interested to contributing, please contact a CellH5 team member.



Each CellH5 file (.ch5) contains a definition and a sample group. The definitions store information about what is stored (i.e. objects, object features and object relations) and may contain extra meta-information (see the internal hdf5 structure for more details). The data resides in the tree below the sample group. CellH5 supports different kinds of relations over objects, which are mapped using index tables (example). For more information see [1].

Source code



[1] Sommer, C., Held, M., Fischer, B., Huber, W., and Gerlich, D. W. (2013). CellH5: A format for data exchange in high-content screening. Bioinformatics (pdf, pubmed)