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

 Download zip file 
Help downloading and running models
"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. ..."
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]
Citations  Citation Browser
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;
Simulation Environment: C or C++ program;
Model Concept(s): STDP;
Implementer(s): Talathi Sachin [talathi at];
Search NeuronDB for information about:  GabaA; Gaba; I Na,t; I K;
readme * *
CN_absynapse.h * *
CN_absynapseECplast1.h * *
CN_absynapseECplast2.h * *
CN_absynapseECplast3.h * *
CN_DCInput.h * *
CN_ECneuron.h * *
CN_HHneuron.h * *
CN_inputneuron.h * *
CN_LPneuronAstrid.h * *
CN_LPneuronRafi4.h * *
CN_multifire_inputneuron.h * *
CN_neuron.h * *
CN_NeuronModel.h * *
CN_Poissonneuron.h * *
CN_Rallsynapse.h * *
CN_rk65n.h * *
CN_synapse.h * *
CN_synapseAstrid.h * *
CN_TimeNeuron.h * *
CN_Valneuron.h * *
CN_Valneuron2.h *
ids.h *
Makefile *
testCN * *
   Author: Thomas Nowotny
   Institute: Institute for Nonlinear Dynamics
              University of California San Diego
              La Jolla, CA 92093-0402
   email to:
   initial version: 2005-08-17


#include ""

ECneuron::ECneuron(int inlabel, double *the_p= ECN_p):
  neuron(inlabel, ECN_IVARNO, ECNEURON, the_p, ECN_PNO)

ECneuron::ECneuron(int inlabel, tnvector<int> inpos, double *the_p= ECN_p):
  neuron(inlabel, ECN_IVARNO, ECNEURON, inpos, the_p, ECN_PNO)

inline double ECneuron::E(double *x)
  return x[idx];

#define _xfunc(a,b,k,V) ((a)*(V)+(b))/(1.0-exp(((V)+(b)/(a))/(k)))

void ECneuron::derivative(double *x, double *dx)
  Isyn= 0.0;
  forall(den_it) {
    Isyn+= den_it->c_value()->Isyn(x);
  // differential eqn for E, the membrane potential
  dx[idx]= -(ipower(x[idx+1],3)*x[idx+2]*p[0]*(x[idx]-p[1]) +

  // diferential eqn for m, the probability for one Na channel activation
  // particle
  _a= 0.32*(13.0-x[idx]-p[8]) / (exp((13.0-x[idx]-p[8])/4.0)-1.0);
  _b= 0.28*(x[idx]+p[8]-40.0)/(exp((x[idx]+p[8]-40.0)/5.0)-1.0);
  dx[idx+1]= _a*(1.0-x[idx+1])-_b*x[idx+1];

  // differential eqn for h, the probability for the Na channel blocking
  // particle to be absent
  _a= 0.128*exp((17.0-x[idx]-p[8])/18.0);   
  _b= 4.0 / (exp((40-x[idx]-p[8])/5.0)+1.0);
  dx[idx+2]= _a*(1.0-x[idx+2])-_b*x[idx+2];

  // differential eqn for n, the probability for one K channel activation
  // particle
  _a= .032*(15.0-x[idx]-p[8]) / (exp((15.0-x[idx]-p[8])/5.0)-1.0); 
  _b= 0.5*exp((10.0-x[idx]-p[8])/40.0);
  dx[idx+3]= _a*(1.0-x[idx+3])-_b*x[idx+3];

  // differential equation for the Ih1 activation variable
  _a= _xfunc(-2.89e-3, -0.445, 24.02, x[idx]);
  _b= _xfunc(2.71e-2, -1.024, -17.4, x[idx]);
  dx[idx+4]= _a*(1.0-x[idx+4])-_b*x[idx+4];

  // differential equation for the Ih2 activation variable
  _a= _xfunc(-3.18e-3, -0.695, 26.72, x[idx]);
  _b= _xfunc(2.16e-2, -1.065, -14.25, x[idx]);
  dx[idx+5]= _a*(1.0-x[idx+5])-_b*x[idx+5];

#undef _xfunc