Functionality#
ClearMap 2.0 is designed for advanced and fast image processing of large (Terabyte) 3D data sets [Kirst2020] obtained from tissue clearing. It is a complete redesign of ClearMap 1.0 [Renier2016].
The modular source management allows a unified handling of various data sources (image files, binary files, memory maps, shared memory arrays, numpy arrays, GPU arrays, graph formats) and fast parallel 3D image and graph processing as well as interactive visualization of large 3d images.
In the following we provide a list of the ClearMap 2.0 functionality. ClearMap 2.0 is open source software and available for download under ChristophKirst/ClearMap2.
Modules#
The ClearMap code is structured into these main modules:
Alignment for stitching, resampling, and registration of images onto references
Analysis for measurements and statistical analysis of the data
ImageProcessing for correcting and quantifying image data
IO for reading and writing data
ParallelProcessing for organizing parallel processing of the data
Visualization for visualizing the data and results.
Alignment#
The ClearMap.Alignment
module includes methods for
3d resampling:
3d alignment to reference atlases (e.g. Allen Brain Institute Atlases) via interfacing to elastix:
3d rigid and wobbly stitching via WobblyStitcher:
Analysis#
The Analysis
module provides methods for the quantification
and analysis of the data, including:
graph and network analysis for very large graphs
- enabling:
graph preprocessing and cleanup
graph branch reduction
graph annotation
graphs embedded 3d space
3d graphs with 3d edge geometry
graph vertex and edge label morphological operations
sub-graph extraction
network analysis
measurement routines to quantify the results
- enabling:
measurements of expression levels
measurements of geometric shapes and radii
maxima detection
voxelization
statistics routines to analyse the results
ImageProcessing#
The ImageProcessing
module is the core of ClearMap and
provides methods to process 3d images of TB size, including:
binary image processing
with filling and discrete topology based binary smoothing routines:
clipping and normalization
3d local gradients and Hessian matrices
with 3d tube filter and tubeness measures:
3d filtering
with 3d rank filter library (>30 filters)
skeletonization via parallel thinning
3d tracing
fast calculation of 3d local image statistics
fast 3d local image statistics
hysteresis and seeded thresholding
light-sheet artifact removal
illuminatoin correction
machine learning based image processing
with vessel and tube filling deep convolutional neural network:
expert processing pipelines for specific applications
IO#
The IO
module provides methods to hold information about data
and read and write data files efficiently as sources and sinks, that can
be sliced and turned into virtual sources useful for parallel processing
and memory mapping:
Supported source types include:
Format |
Module |
Description |
---|---|---|
tif |
tif images and stacks |
|
raw / mhd |
raw image files with optional mhd header file |
|
nrrd |
nearly raw raster data files |
|
csv |
text files as comma separated values |
|
npy |
numpy binary file |
|
gt |
graph tool file |
|
file list |
folder, file list or file expression for a list source files |
|
memory mapped file |
||
shared memory array |
The IO
module also provides a workspace that handles the
organization of files in CellMap and TubeMap projects:
ParallelProcessing#
The ParallelProcessing
module provides methods for distributed
processing.
large data arrays can be proccessed in blocks via a specialized IO source
or via shared memory arrays:
numerical processing routines for TB data arrays are collected in
including speed ups for numpy array processing, convolution and measurement routines:
Visualization#
ClearMap’s “ ClearMap.Visualization
module comes with a larger set of
interactive visualization functions using various backends:
-
providing:
fast interactive 2d slice plotting of 3d TB data sets
overlays and/or synchronized window display of multiple data sets.
-
providing:
3d volume rendering, lists and line plots
3d plots 3d graphs as lines or mesh plots with edge geometries, etc