|
1 | | -# Synaptic Reconstruction |
2 | | -lorem ipsum... |
| 1 | +# SynapseNet: Deep Learning for Automatic Synapse Reconstruction |
| 2 | + |
| 3 | +SynapseNet is a tool for automatic segmentation and analysis of synapses in electron micrographs. |
| 4 | +It provides deep neural networks for: |
| 5 | +- Synaptic vesicle segmentation in ssTEM (2d data) and (cryo-)electron tomography (3d data) |
| 6 | +- Active zone membrane segmentation in electron tomography |
| 7 | +- Mitochondrion segmentation in electron tomography |
| 8 | +- Synaptic compartment segmentation in electron tomography |
| 9 | +- Synaptic ribbon and pre-synaptic density segmentation for ribbon synapses in electron tomography |
| 10 | +It also offers functionality for quantifying synaptic ultrastructure based on segmentation results, for example by measuring vesicle or structure morphology, measuring distances between vesicles and structures, or assigning vesicles into different pools. |
| 11 | +SynapseNet mainly targets electron tomography, but can also be appled to other types of electron microscopy, |
| 12 | +especially throught the [domain adaptation](domain-adaptation) functionality. |
| 13 | + |
| 14 | +SynapseNet offers a [napari plugin](napari-plugin), [command line interface](command-line-interface), and [python library](python-library). |
| 15 | +Please cite our [bioRxiv preprint](TODO) if you use it in your research. |
| 16 | + |
| 17 | + |
| 18 | +## Requirements & Installation |
| 19 | + |
| 20 | +SynapseNet was developed and tested on Linux. It should be possible to install and use it on Mac or Windows, but we have not tested this. |
| 21 | +Furthermore, SynapseNet requires a GPU for segmentation of 3D volumes. |
| 22 | + |
| 23 | +You need a [conda](https://docs.conda.io/projects/conda/en/latest/user-guide/install/index.html) or [mamba](https://mamba.readthedocs.io/en/latest/installation/mamba-installation.html) installation. Follow the instruction at the respective links if you have installed neither. We assume you have `conda` for the rest of the instructions. After installing it, you can use the `conda` command. |
| 24 | + |
| 25 | +To install it you should follow these steps: |
| 26 | +- First, download the SynapseNet repository via |
| 27 | +```bash |
| 28 | +git clone https://github.com/computational-cell-analytics/synapse-net |
| 29 | +``` |
| 30 | +- Then, enter the `synapse-net` folder: |
| 31 | +```bash |
| 32 | +cd synapse-net |
| 33 | +``` |
| 34 | +- Now you can install the environment for SynapseNet with `conda` from the environment file we proved: |
| 35 | +```bash |
| 36 | +conda env create -f environment.yaml |
| 37 | +``` |
| 38 | +- You will need to confirm this step. It will take a while. Afterwards you can activate the environment: |
| 39 | +```bash |
| 40 | +conda activate synapse-net |
| 41 | +``` |
| 42 | +- Finally, install SynapseNet itself into the environment: |
| 43 | +```bash |
| 44 | +pip install -e . |
| 45 | +``` |
| 46 | + |
| 47 | +Now you can use all SynapseNet features. From now on, just activate the environment via |
| 48 | +``` |
| 49 | +conda activate synapse-net |
| 50 | +``` |
| 51 | +to use them. |
| 52 | + |
| 53 | +> Note: If you use `mamba` instead of conda just replace `conda` in the commands above with `mamba`. |
| 54 | +
|
| 55 | +> Note: We also provide an environment for a CPU version of SynapseNet. You can install it by replacing `environment.yaml` with `environment_cpu.yaml` in the respective command above. This version can be used for 2D vesicle segmentation, but it does not work for 3D segmentation. |
| 56 | +
|
| 57 | +> Note: If you have issues with the CUDA version then install a PyTorch that matches your nvidia drivers. See [pytorch.org](https://pytorch.org/) for details. |
| 58 | +
|
| 59 | + |
| 60 | +## Napari Plugin |
| 61 | + |
| 62 | +**The rest of the documentation will be updated in the next days!** |
| 63 | + |
| 64 | + |
| 65 | +## Command Line Functionality |
| 66 | + |
| 67 | +- segmentation cli |
| 68 | +- export to imod |
| 69 | + - vesicles / spheres |
| 70 | + - objects |
| 71 | + |
| 72 | + |
| 73 | +## Python Library |
| 74 | + |
| 75 | +- segmentation functions |
| 76 | +- distance and morphology measurements |
| 77 | +- imod |
| 78 | + |
| 79 | +### Domain Adaptation |
| 80 | + |
| 81 | +- explain domain adaptation |
| 82 | +- link to the example script |
| 83 | + |
| 84 | +### Network Training |
| 85 | + |
| 86 | +- explain / diff to domain adaptation |
| 87 | +- link to the example script |
0 commit comments