About
lgn-simulator is a visual stimulus-driven simulator of spatiotemporal cell responses in the early part of the visual system consisting of the retina, lateral geniculate nucleus (LGN) and primary visual cortex. The model behind is a linear mechanistic, firing rate model that incorporates the influence of thalamocortical loops, in addition to the feedforward responses. The advantage of the simulator lies in its computational and conceptual ease, allowing for fast and comprehensive exploration of various scenarios for the organization of the cortical feedback.
Theory
- Receptive fields
- Linear information processing
- Impulse response function
- Convolution theorem
- Spatio-Temporal summation
- Descriptive model
- Mechanistic model
- The dLGN circuit
- Fourier transform
Getting started
The lgn-simulator is written as library. Thus the library can be included in main.cpp
files and used in different applications. The namespace is lgnSimulator
.
#include <lgnSimulator.h> using namespace lgnSimulator; int main(int argc, char *argv[]) { ... }
A minimalistic main.cpp
file can be found here.
Development and technical details
lgn-simulator is written in C++ using Qt Creator. The main classes are:
- lgnSimulator::Integrator: computes the forward and backwrad FFT of both 2d and 3d datasets.
- lgnSimulator::Stimulus: virtual class for stimulus types.
- lgnSimulator::Neuron: virtual class for neuron types.
- lgnSimulator::Kernel: virtual class for kernels.
Neurons
Kernels
Non-seperable kernels can be added by creating a subclass of lgnSimulator::Kernel. Alternatively a seperable kernel can be added by creating a subclass of lgnSimulator::SeparableKernel, which is also a subclass of lgnSimulator::Kernel. Seperable kernels consist of a lgnSimulator::SpatialKernel and a lgnSimulator::TemporalKernel.
Spatial kernels:
Spatial difference of Gaussians kernel | |
Spatial elliptic Gaussian kernel | |
Spatial delta kernel | |
Spatial Gaussian kernel | |
Constant spatial kernel |
Temporal kernels:
Temporal biphasic kernel | |
Temporal difference of exponentials kernel | |
Temporal decaying exponential kernel | |
Temporal delta kernel | |
Temporal Gaussian kernel | |
Constant temporal kernel | |
Temporal two sided exponential decay kernel |
Stimulus
The stimlus can be both gratings (lgnSimulator::Grating) or natural scenes/movies (lgnSimulator::NaturalScene and lgnSimulator::NaturalSceneVideo).
Grating stimuli:
Grating stimulus with a center mask and a surround mask | |
Grating stimulus with circular mask | |
Grating stimulus without mask | |
Grating stimulus with gaussian mask |
All classes
List of all classes in the simulator is found here: All classes