napari-clemreg
A plugin for registering multimodal image volumes based on common segmented structures of interest with point-clouds.
An automated point cloud based registration algorithm for correlative light and volume electron microscopy¶
Installation¶
To install napari-clemreg
it is recommended to create a fresh conda environment with Python 3.9:
conda create -n clemreg_env python=3.9
Next, install napari
with the following command via pip:
pip install "napari[all]"
Finally, napari-clemreg
can be installed with:
pip install napari-clemreg
When installing napari-clemreg
on a Windows machine, the following error might appear:
error Microsoft Visual C++ 14.0 is required
Ensure that Visual Studios C++ 14.00 is installed
Usage¶
CLEM-reg is the combination of 5 main steps, MitoNet segmentation, LoG segmentation, point cloud sampling, point cloud registration and lastly image warping. These 5 steps can be run all at once using the run registration widget shown below with the tick next to it. Alternatively, they can be run individually with the numbered widgets.
Run Registration¶
- Moving Image - Here you select your light microscopy (LM) data which will be warped to align with the fixed electron microscopy (EM) image.
- Fixed Image - Here you select your EM data which will act as the reference point for the LM to be aligned to.
- Registration Algorithm - Here you can decide which type of registration algorith will be used for the registration of inputted LM and EM. In terms of speed of each algorithm the following is the generally true, Rigid CPD > Affine CPD > BCPD.
- MitoNet Segmentation Parameters - Here are the advanced options for the segmentation
of the mitochondria in the EM data.
- Prediction Across Three Axis - By selecting this option MitoNet will run segmentation across all three axis of the EM volume and then these three predictions will be aggregate.
- LoG Segmentation Parameters - Here are the advanced options for the segmentation of
the mitochondria in the LM data.
- Sigma - Sigma value for the Laplacian of Gaussian filter.
- Threshold - Threshold value for the segmenting the LM data.
- Point Cloud Sampling - Here are the advanced options for the point cloud sampling of the
segmentations of the LM and EM data.
- Sampling Frequency - Frequency of point sampling from the fixed and moving segmentation. The greater the value the more points in the point cloud.
- Sigma - Sigma value for the canny edge filter.
- Point Cloud Registration - Here are the advanced options for the registration of the point clouds
of both the LM and EM data.
- Voxel Size - The size voxel size of each point. Smaller the size the less memory consumption.
- Subsampling - Downsampling of the point clouds to reduce memory consumption. Greater the number the fewer points in the point cloud.
- Maximum Iterations - The number of round of point cloud registration. If too small it won't converge on an opitmal registration.
- Image Warping - Here are the advanced options for the image warping of the moving LM images.
- Interpolation Order - The order of the spline interpolation.
- Aproximate Grid - Controls the "resolution" of the grid onto which you're warping. A higher value reduces the step size between coordinates.
- Sub-division Factor - Controls the size of the chunk when applying the warping.
- Save Parameters - Here you can select the option to save the advanced options you've selected to a JSON file which can be kept for reproducibility as well as running the registration again.
- Visualise Intermediate Results - Here you can select to view the outputs of each step as they are completed.
Split Registration¶
As well as being able to run all the steps of CLEM-reg in one widget (the Run registration
widget),
you are also able to do all these steps independently using the Split Registration
functionality.
There are four separate widgets that encapsulate the 5 steps of CLEM-reg each of which have their own unique input and output:
MitoNet Segmentation
- Input: EM Image
- Output: EM Segmentation
LoG Segmentation
- Input: LM Image
- Output: LM Segmentation
Point Cloud Sampling
- Input: LM Segmentation & EM Segmentation
- Output: LM Point Cloud & LM Point Cloud
Point Cloud Registration & Image Warping
- Input: EM Image, LM Image, LM Point Cloud & EM Point Cloud
- Output: Registered LM Image, Registered LM Point Cloud
Registering Multiple LM Channels¶
One can register multiple LM channels at once by doing the following.
-
Start by splitting the LM channels into the separate layers by right-clicking on the layer and then selecting
Split Stack
. This will result in each of the channels having their own individual layer. -
Once this is done we must link all the LM layers together, this is done by selecting all the layers which will highlight them in blue, once again right-clicking on the layer and then selecting
Link Layers.
-
When you finally go to run CLEM-reg ensure that for the
Moving Image
you select the LM layer that contains mitochondria.
Contributing¶
Contributions are very welcome. Tests can be run with tox, please ensure the coverage at least stays the same before you submit a pull request.
License¶
Distributed under the terms of the MIT license, "napari-clemreg" is free and open source software
Issues¶
If you encounter any problems, please file an issue along with a detailed description.
This napari plugin was generated with Cookiecutter using @napari's cookiecutter-napari-plugin template.
Supported data:
- Information not submitted
Plugin type:
GitHub activity:
- Stars: 15
- Forks: 3
- Issues + PRs: 3
GitHub activity:
- Stars: 15
- Forks: 3
- Issues + PRs: 3
Requirements:
- typing_extensions
- setuptools
- packaging
- numpy==1.22.0
- magicgui==0.7.3
- scipy==1.10.1
- napari
- scikit-image==0.21.0
- h5py==3.9.0
- matplotlib==3.7.3
- imageio==2.31.5
- tifffile==2023.7.10
- probreg==0.3.6
- open3d==0.17.0
- transforms3d==0.4.1
- tqdm==4.66.1
- empanada-dl==0.1.7
- torch==2.0.1
- magicgui==0.7.3
- connected-components-3d==3.12.3