SynapseGenerator is a software package used to predict connectivity at the synapse level based on statistical properties of all neuron populations that co-exist in the given brain region of interest. For each population, the spatial distribution of the dendritic and axonal arborizations needs to be either specified as a probability density function (e.g. a mixture of Gaussians), or can be estimated from samples of reconstructed dendritic/axonal arborizations.
The five main processing steps are illustrated in the figure above:
- A preset overall synaptic density is reached.
- Synapses are placed where dendritic and axonal densities are highest.
- No more than one synapse is placed in a single discrete voxel.
Several methods to optimize these criteria can be used:
- Random draws, followed by pruning;
- The Lasso method (under development), a linear least squares algorithm that uses a constraint that parameters cannot exceed a given value (here: at most one synapse per voxel);
- The Ising model (under development), which computes an optimal synapse configuration by minimizing an energy function.
The resulting matrix X has the same size as Y but is much sparser since it contains only ones (potential synapse) and zeros (no synapse).
- Connectivity (conMat): Each synapse is assigned to a pre- and postsynaptic neuron;
- Minimum Spanning Tree: The entire set of synapses for a given neuron is used to reconstruct its arborization, using the minimal spanning tree algorithm, as implemented in the TREES toolbox;
- Standard set of visualizations, to analyse the consecutive steps of the pipeline.
SynapseGenerator is implemented in Matlab; its core elements are currently ported to Python.
This second iteration of the online documentation consists of the following parts:
The examples are designed such that they run smoothly on normal desktop computers with 8GB memory. With the forthcoming port to Python, we will develop a parallel computing strategy to keep requirements low.