Synful¶
Short overview of what this module does and links to usage.
- Install & Usage: See the module's README and scripts in GitHub to get more up-to-date information.
- Design Choices: See Design Choices for the "why" behind the "what".
For a primer to "What synapse detection is?", check here.
What is Synful?¶
Synful implements the partner-detection approach from Julia Buhmann et al.'s paper, Automatic detection of synaptic partners in a whole-brain Drosophila electron microscopy dataset. It uses a U-Net-style encoder-decoder to jointly (1) localize post-synaptic sites (potentially annotations are on top of PSDs) and (2) predict a direction vector field from each post-synaptic site toward its pre-synaptic partner. This multi-task setup lets the network learn where synapses are and who they connect to-within a single model.
- Read the paper here: Buhmann et al., Nature Methods, 2021
Synful's Architecture at a glance (multi-task UNet)¶
We have refactored Synful's TensorFlow code and re-implemented it in PyTorch for more flexibility on newer CUDA machines and for eager execution of model operators while training.
Synful: TensorFlow Implementation¶
TensorFlow scripts are subdivided into running only inference with Buhmann et. al's pretrained networks, which were released here and also training Synful models in TensorFlow from Scratch on your own datasets.
- Please go here to run inference with
pretrainedmodels on your anisotropic datasets.
Warning
You can infer on isotropic datasets with these models, but beware that they are quite sensitive to the resolution and quality of the EM.
Even with test data with matching resolutions with CREMI, the models may not be as accurate as expected.
We will reveal our findings soon!
- Please go here to train the models in from scratch on your own datasets. Instructions to run the models are embedded in this README.MD.
Note
Input is expected in .hdf in the CREMI format. If you do not know how to convert to CREMI format, please follow the example script.
Synful can run with and without neuron segmentation.
Synful: PyTorch Implementation¶
The pytorch re-implementation can be found here.
Please note that this sub-folder is under active development.
Currently we are testing the reimplemented models on both isotropic FIBSEM and anisotropic TEM datasets. This requires some time because we value reproducibility of code and performance equally.
We will soon release complete usage instructions, please bear with us!