Skip to main content

Write Chimera Map (CMAP) files

Project description

Cmapfile is a Python library and console script to write Chimera Map (CMAP) files, HDF5 files containing series of 3D XYZ datasets.

CMAP files can be created from numpy arrays and various file formats containing volume data, e.g., BIN, TIFF, LSM, OIF, and OIB.

CMAP files can be visualized using UCSF Chimera [2], a program for interactive visualization and analysis of molecular structures and related data.


Christoph Gohlke


BSD 3-Clause




This release has been tested with the following requirements and dependencies (other versions may work):


  1. Thomas Goddard. [Chimera-users] reading in hdf5 files in chimera.

  2. UCSF Chimera, an extensible molecular modeling system.

  3. Globals for Images - SimFCS.


Print the command line usage:

python -m cmapfile --help

Convert a 5D LSM file to CMAP file:

python -m cmapfile "/my data directory/large.lsm"

Convert all BIN files in the current directory to test.cmap. The BIN files are known to contain 128x128x64 samples of 16-bit integers. The CMAP file will store float32 maps using subsampling up to 16:

python -m cmapfile --shape 128,128,64 --step 1,1,2 --dtype i2
                   --cmap test.cmap --subsample 16 --astype float32 *.bin

Change the step size in the CMAP file:

python -m cmapfile --step 1,1,1.5 test.cmap


The CMAP file format according to [1]:

Example of HDF format written by Chimera (Chimera map format) follows.
The Chimera map file reader will allow all fields to be missing (except
the 3D data).

/image (group, any name allowed)
 name "centriole" (attribute)
 step (1.2, 1.2, 1.2) (attribute)
 origin (-123.4, -522, 34.5) (attribute)
 cell_angles (90.0, 90.0, 90.0) (attribute)
 rotation_axis (0.0, 0.0, 1.0) (attribute)
 rotation_angle 45.0 (attribute, degrees)
 color (1.0, 1.0, 0, 1.0) (attribute, rgba 0-1 float)
 time 5 (attribute, time series frame number)
 channel 0 (attribute, integer for multichannel data)
 /data (3d array of uint8 (123,542,82)) (dataset, any name allowed)
 /data_x (3d array of uint8 (123,542,82), alternate chunk shape) (dataset)
 /data_2 (3d array of uint8 (61,271,41)) (dataset, any name allowed)
    subsample_spacing (2, 2, 2) (attribute)
 (more subsampled or alternate chunkshape versions of same data)



  • Make subsampling compatible with ChimeraX (breaking).

  • Fix deprecated import of scipy.ndimage.interpolation.zoom.

  • Switch to Google style docstrings.


  • Add type hints.

  • Drop support for Python 3.7 and numpy < 1.19 (NEP29).


  • Fix LSM conversion with tifffile >= 2021.2.26.

  • Remove support for Python 3.6 (NEP 29).


  • Do not write name attribute.

  • Remove support for Python 2.7 and 3.5.

  • Update copyright.


  • Move into cmapfile package.


  • Initial release.

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

cmapfile-2022.9.29.tar.gz (11.2 kB view hashes)

Uploaded source

Built Distribution

cmapfile-2022.9.29-py3-none-any.whl (13.2 kB view hashes)

Uploaded py3

Supported by

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