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

 Download zip file 
Help downloading and running models
Accession:152197
"... 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. ..."
Reference:
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;
Gene(s):
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 psy.ox.ac.uk];
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.insert('hh')
        self.soma.Ra = 100
        self.soma.cm = 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
        d=1
        p=1
        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.verbose=0
        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...