STDP promotes synchrony of inhibitory networks in the presence of heterogeneity (Talathi et al 2008)

 Download zip file 
Help downloading and running models
Accession:119159
"Recently Haas et al. (J Neurophysiol 96: 3305–3313, 2006), observed a novel form of spike timing dependent plasticity (iSTDP) in GABAergic synaptic couplings in layer II of the entorhinal cortex. Depending on the relative timings of the presynaptic input at time tpre and the postsynaptic excitation at time tpost, the synapse is strengthened (delta_t = t(post) - t(pre) > 0) or weakened (delta_t < 0). The temporal dynamic range of the observed STDP rule was found to lie in the higher gamma frequency band (> or = 40 Hz), a frequency range important for several vital neuronal tasks. In this paper we study the function of this novel form of iSTDP in the synchronization of the inhibitory neuronal network. In particular we consider a network of two unidirectionally coupled interneurons (UCI) and two mutually coupled interneurons (MCI), in the presence of heterogeneity in the intrinsic firing rates of each coupled neuron. ..."
Reference:
1 . Talathi SS, Hwang DU, Ditto WL (2008) Spike timing dependent plasticity promotes synchrony of inhibitory networks in the presence of heterogeneity. J Comput Neurosci 25:262-81 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism: Entorhinal cortex;
Cell Type(s):
Channel(s): I Na,t; I K;
Gap Junctions:
Receptor(s): GabaA; Gaba;
Gene(s):
Transmitter(s):
Simulation Environment: C or C++ program;
Model Concept(s): STDP;
Implementer(s): Talathi Sachin [talathi at ufl.edu];
Search NeuronDB for information about:  GabaA; Gaba; I Na,t; I K;
/
TalathiEtAl2008
simul_lrn
CNlib
CVS
readme *
CN_absynapse.cc *
CN_absynapse.h *
CN_absynapseECplast1.cc *
CN_absynapseECplast1.h *
CN_absynapseECplast2.cc *
CN_absynapseECplast2.h *
CN_absynapseECplast3.cc *
CN_absynapseECplast3.h *
CN_DCInput.cc *
CN_DCInput.h *
CN_ECneuron.cc *
CN_ECneuron.h *
CN_HHneuron.cc *
CN_HHneuron.h *
CN_inputneuron.cc *
CN_inputneuron.h *
CN_LPneuronAstrid.cc *
CN_LPneuronAstrid.h *
CN_LPneuronRafi4.cc *
CN_LPneuronRafi4.h *
CN_multifire_inputneuron.cc *
CN_multifire_inputneuron.h *
CN_neuron.cc *
CN_neuron.h *
CN_NeuronModel.cc *
CN_NeuronModel.h *
CN_Poissonneuron.cc *
CN_Poissonneuron.h *
CN_Rallsynapse.cc *
CN_Rallsynapse.h *
CN_rk65n.cc *
CN_rk65n.h *
CN_synapse.cc *
CN_synapse.h *
CN_synapseAstrid.cc *
CN_synapseAstrid.h *
CN_TimeNeuron.cc *
CN_TimeNeuron.h *
CN_Valneuron.cc *
CN_Valneuron.h *
CN_Valneuron2.cc *
CN_Valneuron2.h *
ids.h *
Makefile *
testCN *
testCN.cc *
                            
/*--------------------------------------------------------------------------
   Author: Thomas Nowotny
  
   Institute: Institute for Nonlinear Dynamics
              University of California San Diego
              La Jolla, CA 92093-0402
  
   email to:  tnowotny@ucsd.edu
  
   initial version: 2005-08-17
  
--------------------------------------------------------------------------*/

#ifndef CN_RALLSYNAPSE_CC
#define CN_RALLSYNAPSE_CC

#include "CN_synapse.cc"
#define Heaviside(x) ((x > 0) ? 1 : 0)

// This is the constructor to be used by derived classes passing the new
// internal var number, parameter number and type tag

Rallsynapse::Rallsynapse(neuron *insource, neuron *intarget,
			 double ingsyn, double inEsyn, double inEpre,
			 double intsyn, int inIVARNO, int inPNO, int inTYPE):
  synapse(insource, intarget, inIVARNO, inPNO, inTYPE)
{
  p[0]= ingsyn;           // gsyn strength of synapse
  p[1]= inEsyn;           // Esyn reversal potential in mV
  p[2]= inEpre;           // Epre presyn threshold potential in mV
  p[3]= intsyn;           // synaptic timescale in msec
} 

// This is the constructor to be used directly ...

Rallsynapse::Rallsynapse(neuron *insource, neuron *intarget,
			 double ingsyn, double inEsyn, double inEpre,
			 double intsyn):
  synapse(insource, intarget, RIVARNO, RPNO, RALL)
{
  p[0]= ingsyn;           // gsyn strength of synapse
  p[1]= inEsyn;           // Esyn reversal potential in mV
  p[2]= inEpre;           // Epre presyn threshold potential in mV
  p[3]= intsyn;           // synaptic timescale in msec
} 

Rallsynapse::Rallsynapse(neuron *insource, neuron *intarget, double *inp):
  synapse(insource, intarget, RIVARNO, RPNO, RALL)
{
  set_p(inp);
} 

Rallsynapse::~Rallsynapse()
{
}

double Rallsynapse::gsyn()
{
  return p[0];
}

void Rallsynapse::set_gsyn(double ingsyn)
{
  p[0]= ingsyn;
}

double Rallsynapse::Isyn(double *x)
{
  return -p[0]*x[idx+1]*(target->E(x)-p[1]);
}


void Rallsynapse::derivative(double *x, double *dx)
{
  dx[idx+0]= (-x[idx]+Heaviside(source->E(x)-p[2]))/p[3];
  dx[idx+1]= (-x[idx+1]+x[idx])/p[3];
}

// end of class implementation

#endif



Loading data, please wait...