Multidimensional Analysis Pipeline for Histocytometry (CytoMAP)
Updated 22 Apr 2023
CytoMAP makes advanced data analytic techniques accessible for cell position and phenotype data. The goal is to take established analytical techniques, such as neural network based clustering algorithms, and package them in a user friendly way, allowing researchers to use them to explore complex cellular datasets.
Read about version changes on
For descriptions of functions see
If you run into bugs, or have questions about features; post a question on the Scientific Community Image Forum at:
Be sure to add the cytomap tag to your topic for visibility.

Cite As

Stoltzfus, Caleb R., et al. “CytoMAP: A Spatial Analysis Toolbox Reveals Features of Myeloid Cell Organization in Lymphoid Tissues.” Cell Reports, vol. 31, no. 3, Elsevier BV, Apr. 2020, p. 107523, doi:10.1016/j.celrep.2020.107523.

View more styles
MATLAB Release Compatibility
Created with R2021a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Find more on Biological and Health Sciences in Help Center and MATLAB Answers

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!




CytoMAP/Dimensionality Reduction/LLE

CytoMAP/Dimensionality Reduction/LLE/LLE

CytoMAP/Dimensionality Reduction/PHATE (krishnaswamy Lab)

CytoMAP/Dimensionality Reduction/PHATE (krishnaswamy Lab)/PHATE

CytoMAP/Dimensionality Reduction/Principal Components

CytoMAP/Dimensionality Reduction/TSCAN

CytoMAP/Dimensionality Reduction/TSCAN/TSCAN

CytoMAP/Dimensionality Reduction/UMAP (Herzenberg Lab)

CytoMAP/Dimensionality Reduction/UMAP (Herzenberg Lab)/umap

CytoMAP/Dimensionality Reduction/UMAP (Herzenberg Lab)/util

CytoMAP/Dimensionality Reduction/t-SNE




Version Published Release Notes

See release notes for this release on GitHub:


> added option to change overlap threshold in interaction plots
> made the fit plots in density model smoother and added overlay of fit functions
> added a try statement to load .wsp to deal with derived parameter names


> Fixed a bug in plotting neighborhoods
> Fixed calculate distance to regions so it works for CCN
> Updated logo
> Added Highlight Neighborhoods feature in figures
> Added Model Density extension


> Added option to replace missing values with numbers instead of NaNs
> Added extension to invert Y axis on all open plots
> Added extension to bin data along the X axis


> Improved loading table of cells stability
> Fixed bug in getting names of channels for neighborhoods
> Fixed bug in generation of random points for data containing strings
> Fixed bug in gating on cell types with multiple samples


> Added the option to have a beep played when a function finishes
> Stability fixes for compatibility with MATLAB 2021a
> Added *make new sample from phenotype* function to phenotype table


- Added extension for re-ordering samples
- Fixed a broken export plot data
- Group number in Cellularity plots now changes plot order
- Added support for .xls, xlsx
- Re-named file dropdown items
- Selecting multiple x axes on import finds mean


> Fixed non-cylindrical neighborhood issue for samples with thickness close to neighborhood radius
> Re-wrote merge samples to include non-conserved gates between samples
> Fixed indexing error in volume normalized cellularity plots


> Added the option to name dimensionality reduction models
> Fixed plot data export formatting issues
> Fixed some of the window names
> Made the 0 value of the red heatmap white


> Added DBSCAN to clustering options
> Fixed indexing error in regions statistics of single sample
> Updated clustering window name to include data type and model name


> Fixed color limits in neighborhood clustering output plots
> Tweaked how annotate regions auto-populates when switching between models
> Fixed issue where loading multiple samples broke if a phenotype had no cells


> Faster more stable cell-centered neighborhoods
> Bigger progress bars
> More stable plot click data tips
> Annotate clusters now pulls existing names from all samples
> Neighborhood % added to fold change in region statistics heatmap


> Plot Gates no longer fills in the points by default. (Added right click to enable)
> Fixed issues with NaNs in neighborhoods
> Import samples defaults to no Z for all samples
> Indexing fix in combined cell heatmaps
> Cluster result plots fix


> Fixed bugs in loading .csv files with mixed strings and numericals
> Added compare phenotypes to cell heatmaps extension


> Added more options to the data export functionality
> Fixed indexing problems in the Annotate Clusters GUI


> Added functionality to options button in New Figures (change point colors, invert axes etc.)
> Changed cell % cells in cluster from 0-1 to 0-100 percentages


> Annotate clusters now auto-populates names when using a string based classifier channel


> Load .csv now supports mixed numerical and string features
> Load .wsp now warns if loading a derived parameter fails


> Increased functionality of annotate regions and annotate cells
> Moved annotation extensions to the main CytoMAP GUI


> Added a select manual regions interface
> Fixed indexing bugs in region statistics


> Added annotate regions extension
> Added support for manually defined regions
> Added annotate clustered cells
> added stacked bar graphs in region statistics


fixed a bug in export csv data


Updated extensions
bug fixes


- Updated .wsp loader
- Added functionality to .ims overlay
- Added new dimensionality reduction tools


Fixed install path issue


To view or report issues in this GitHub add-on, visit the GitHub Repository.
To view or report issues in this GitHub add-on, visit the GitHub Repository.