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

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:

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:

lgnSimulator::DOG

Spatial difference of Gaussians kernel

lgnSimulator::EllipticGaussian

Spatial elliptic Gaussian kernel

lgnSimulator::SpatialDelta

Spatial delta kernel

lgnSimulator::SpatialGaussian

Spatial Gaussian kernel

lgnSimulator::SpatiallyConstant

Constant spatial kernel

Temporal kernels:

lgnSimulator::Biphasic

Temporal biphasic kernel

lgnSimulator::DOE

Temporal difference of exponentials kernel

lgnSimulator::DecayingExponential

Temporal decaying exponential kernel

lgnSimulator::TemporalDelta

Temporal delta kernel

lgnSimulator::TemporalGaussian

Temporal Gaussian kernel

lgnSimulator::TemporallyConstant

Constant temporal kernel

lgnSimulator::TwoSidedExponentialDecay

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:

lgnSimulator::CSCircleMaskGrating

Grating stimulus with a center mask and a surround mask

lgnSimulator::CircleMaskGrating

Grating stimulus with circular mask

lgnSimulator::FullFieldGrating

Grating stimulus without mask

lgnSimulator::GaussianMaskGrating

Grating stimulus with gaussian mask

All classes

List of all classes in the simulator is found here: All classes