A plugin for guanine crystal segmentation and classification in the zebrafish eye. More precisely, it provides a workflow that measures on guanine crystal labels and sorts out overlaying partially segmented crystals during classification.
This napari plugin was generated with Cookiecutter using @napari's cookiecutter-napari-plugin template.
This plugin is suited for users who
- want to derive size-, shape and intensity-based parameters from individual guanine crystals
- struggle with partially segmented or overlapping crystals
- want to investigate further the size and shape of these guanine crystals
This plugin is not suited for users who
- are interested in further investigations of intensity of guanine crystals
You can find the plugin in napari under Plugins
→ guanine-crystal-analysis
This plugin can be used on individual 2D slices of z-stacks as the workflow was developed on such input. Therefore, the quality of the result might differ on differing input, like crops or maximum projections.
You can normalize the image selecting Normalization
where you only need to specify your input image and click on the Run
button.
Normalizing the image helps to adjust the intensity values and needs to be applied here because the object segmenter is only trained on normalized images.
When selecting Segmentation
, you need to select the normalized image and a minimum pixel count of label images and click on the Run
button again.
This avoids having too small and unhelpful labels and is set by default to 50 pixels.
For the training of the model, an APOC pixel classifier was used.
Under Analyze Image
, you can extract features from your image and label image by selecting them and clicking on the Run
button.
The extracted features are a combination of the two libraries napari-skimage-regionprops and napari-simpleitk-image-processing. They can be devided into size-, shape-, and intensity-based parameters:
You can find a glossary with an explanation of these features in this blog post Some of the guanine crystals are not correctly segmented because of overlay or interference patterns. This problem is addressed with the help of a classification step demonstrated next
You can divide the crystal labels into predicted (blue) and discarded (brown) crystal labels using Classify Objects
. There you can choose classifiers trained on intensity-, shape- and/or size-based parameters with the help of the checkboxes.
For the training of the model, an APOC object classifier was used.
It is recommended to later on not measure the parameters that the classifier was trained on, but other ones.
Now, you can get rid of the discarded (brown) labels for further analysis using Bad Label Exclusion
. Select the two label images of segmentation and classification result and press the Run
button again.
The result is a label image with only the predicted (blue) labels which are relabeled sequentially. If you want to derive measurements on these predicted labels, you can just use Analyze Image
again.
You can also do all the explained steps in one click using the Analyze Deluxe
function.
You can install guanine-crystal-analysis
via pip:
pip install guanine-crystal-analysis
To install latest development version :
pip install git+https://github.com/biopo/guanine-crystal-analysis.git
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.
This project was done in collaboration with the Rita Mateus Laboratory. The images shown in the documentation and in the demo jupyter notebooks were acquired there. This project was supported by the Deutsche Forschungsgemeinschaft under Germany’s Excellence Strategy – EXC2068 - Cluster of Excellence "Physics of Life" of TU Dresden. This project has been made possible in part by grant number 2021-240341 (Napari plugin accelerator grant) from the Chan Zuckerberg Initiative DAF, an advised fund of the Silicon Valley Community Foundation.
Distributed under the terms of the BSD-3 license, "guanine-crystal-analysis" is free and open source software
If you encounter any problems, please file an issue along with a detailed description.