Simulated cortical color opponent receptive fields self-organize via STDP (Eguchi et al., 2014)

 Download zip file 
Help downloading and running models
"... In this work, we address the problem of understanding the cortical processing of color information with a possible mechanism of the development of the patchy distribution of color selectivity via computational modeling. ... Our model of the early visual system consists of multiple topographically-arranged layers of excitatory and inhibitory neurons, with sparse intra-layer connectivity and feed-forward connectivity between layers. Layers are arranged based on anatomy of early visual pathways, and include a retina, lateral geniculate nucleus, and layered neocortex. ... After training with natural images, the neurons display heightened sensitivity to specific colors. ..."
1 . Eguchi A, Neymotin SA, Stringer SM (2014) Color opponent receptive fields self-organize in a biophysical model of visual cortex via spike-timing dependent plasticity Front. Neural Circuits 8:16 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism: Neocortex; Thalamus; Retina;
Cell Type(s): Hodgkin-Huxley neuron;
Channel(s): I K; I Na, leak;
Gap Junctions:
Receptor(s): GabaA; AMPA;
Transmitter(s): Gaba; Glutamate;
Simulation Environment: NEURON; Python;
Model Concept(s): Learning; STDP; Laminar Connectivity; Development; Information transfer; Sensory processing; Hebbian plasticity; Vision;
Implementer(s): Eguchi, Akihiro [akihiro.eguchi at];
Search NeuronDB for information about:  GabaA; AMPA; I K; I Na, leak; Gaba; Glutamate;
from neuron import h
from neuron import gui

class CellClass(object):
    def __init__(self,x,y):
        self.x = x
        self.y = y
        self.soma = h.Section(name='soma', cell=self)
        self.soma.L = 10
        self.soma.nseg = 1
        self.soma.diam = 30
        self.soma.Ra = 100 = 10
        #settings for synapse
#         self.syn = h.ExpSyn(0.8,sec=self.soma)
#         self.syn.tau = 5

        # for excitatory inputs
        self.AMPA = h.ExpSyn(0.5,sec=self.soma)
        self.AMPA.tau = 5
        self.AMPA.e = 0 # this is above resting potential, which causes depolarization
        # for inhibitory inputs
        self.GABA = h.ExpSyn(0.5,sec=self.soma)
        self.GABA.tau = 10
        self.GABA.e = -80   # this is below resting potential, which causes hyperpolarization

        #STDP constant
        self.LR = 0.000015#0.00001 stdp?
#         self.LR = 0.000005#0.00001 hebb?
        self.syn_STDP = h.ExpSynSTDP(0.8,sec=self.soma)
        self.syn_STDP.tau = 5
        self.syn_STDP.d = d#LTD
        self.syn_STDP.p = p#LTP
        self.syn_STDP.LR = self.LR
    def setWeightRange(self, minWeight,maxWeight):
        self.syn_STDP.minWeight = minWeight
        self.syn_STDP.maxWeight = maxWeight
    def setLearningState(self,state):
        self.syn_STDP.learning = state
    def setLR(self,num):
        self.syn_STDP.LR = self.LR*num

Loading data, please wait...