The whole pipeline was designed and tested on Linux systems
KNOSSOS is used for visualization and annotation of 3D EM data sets.
Before you can set up SyConn, ensure that the conda package manager is installed on your system. Then you can install SyConn and all of its dependencies into a new conda environment named “syco” by running:
git clone https://github.com/StructuralNeurobiologyLab/SyConn cd SyConn conda env create -f environment.yml -n syco python=3.7 conda activate syco pip install --no-deps -v -e .
The last command will install SyConn in editable mode, which is useful for development on SyConn itself. If you want to install it as a regular read-only package instead, replace the last command with:
pip install --no-deps -v .
To update the environment, e.g. if the environment file changed, use:
conda env update --name syco --file environment.yml --prune
Place the example and model data (provided upon request) in
SyConn/examples/ and run
python start.py [--working_dir=..]
The example script analyzes the EM data based on KnossosDatasets (see
knossos_utils) of the cell segmentation, probability maps of sub-cellular structures
(mitochondria, vesicle clouds and synaptic junctions) and synapse type (inhibitory, excitatory).
On a machine with 20 CPUs (Intel Xeon @ 2.60GHz) and 2 GPUs (GeForce GTX 980 Ti) SyConn finished the following analysis steps for an example cube of shape [2180 2180 1140] after 02h:16min:52s.
[0/8] Preparation 00h:07min:21s 5%
[1/8] SD generation 00h:29min:41s 21%
[2/8] SSD generation 00h:01min:28s 1%
[3/8] Neuron rendering 00h:40min:03s 29%
[4/8] Synapse detection 00h:32min:18s 23%
[5/8] Axon prediction 00h:05min:11s 3%
[6/8] Spine prediction 00h:14min:03s 10%
[7/8] Celltype analysis 00h:06min:06s 4%
[8/8] Matrix export 00h:00min:37s 0%
Example scripts and API usage¶
Package structure and data classes¶
The basic data structures and initialization procedures are explained in the following sections:
SyConn operates with a pre-defined working directory and config files
Supervoxels (and cellular organelles) are organized as
SegmentationObjectwhich are handled by the
SegmentationDatasets. For a more detailed description see here).
SyConn principally supports different backends for data storage. The current default is a simple shared filesystem (such as lustre, Google Cloud Filestore or AWS Elastic File System).
Agglomerated supervoxels (SVs) are implemented as SuperSegmentationObjects (SSO). The collection of super-SVs are usually defined in a region adjacency graph (RAG) which is used to initialize the SuperSegmentationDataset (SSD).
Mesh generation and representation of supervoxels
Flowchart of SyConn¶
After initialization of the SDs (cell and sub-cellular structures, step 1 in the example run) and the SSD containing the agglomerated cell SVs (step 3), several analysis steps can be applied:
[Optional] Glia removal
Neuronal morphology analysis and classification to identify cellular compartments (e.g. axons and spines) and to perform morphology based cell type classification (steps 3-7).
Contact site extraction (step 4)
Identification of synapses and extraction of a wiring diagram (steps 4 and 8)
SyConn KNOSSOS viewer¶
The following packages have to be available in the system’s python2 interpreter (will differ from the conda environment):
In order to inspect the resulting data via the SyConnViewer KNOSSOS-plugin follow these steps:
start.pyfinished. For starting the server manually run
syconn.server --working_dir=<path>which executes
syconn/kplugin/server.pyand allows to visualize the analysis results of the working directory at (
<path>) in KNOSSOS. The server address and port will be printed.
Download and run the nightly build of KNOSSOS (https://github.com/knossos-project/knossos/releases/tag/nightly)
In KNOSSOS -> File -> Choose Dataset -> browse to your working directory and open
knossosdatasets/seg/mag1/knossos.confwith enabled ‘load_segmentation_overlay’ (at the bottom of the dialog).
Then go to Scripting (top row) -> Run file -> browse to
syconn/kplugin/syconn_knossos_viewer.py, open it and enter the port and address of the syconn server.
After the SyConnViewer window has opened, the selection of segmentation fragments in the slice-viewports (exploration mode) or in the list of cell IDs followed by pressing ‘show neurite’ will trigger the rendering of the corresponding cell reconstruction mesh in the 3D viewport. The plugin will display additional information about the selected cell and a list of detected synapses (shown as tuples of cell IDs; clicking the entry will trigger a jump to the synapse location) and their respective properties. In case the window does not pop-up check Scripting->Interpreter for errors.