Coincident glutamatergic depolarization effects on Cl- dynamics (Lombardi et al, 2021)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:266823
"... we used compartmental biophysical models of Cl- dynamics simulating either a simple ball-and-stick topology or a reconstructed CA3 neuron. These computational experiments demonstrated that glutamatergic co-stimulation enhances GABA receptor-mediated Cl- influx at low and attenuates or reverses the Cl- efflux at high initial [Cl-]i. The size of glutamatergic influence on GABAergic Cl--fluxes depends on the conductance, decay kinetics, and localization of glutamatergic inputs. Surprisingly, the glutamatergic shift in GABAergic Cl--fluxes is invariant to latencies between GABAergic and glutamatergic inputs over a substantial interval..."
Reference:
1 . Lombardi A, Jedlicka P, Luhmann HJ, Kilb W (2021) Coincident glutamatergic depolarizations enhance GABAA receptor-dependent Cl- influx in mature and suppress Cl- efflux in immature neurons PLOS Comp Bio
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Synapse; Dendrite;
Brain Region(s)/Organism:
Cell Type(s): Hippocampus CA3 pyramidal GLU cell;
Channel(s):
Gap Junctions:
Receptor(s): GabaA; AMPA; NMDA;
Gene(s):
Transmitter(s): Gaba; Glutamate;
Simulation Environment: NEURON;
Model Concept(s): Short-term Synaptic Plasticity; Synaptic Plasticity; Chloride regulation;
Implementer(s): Jedlicka, Peter [jedlicka at em.uni-frankfurt.de]; Kilb, Werner [wkilb at uni-mainz.de];
Search NeuronDB for information about:  Hippocampus CA3 pyramidal GLU cell; GabaA; AMPA; NMDA; Gaba; Glutamate;
/
_For Zip -Neuron-Models_AMPA-GABA
Fig7cd_Real_Cell_GDP_one for display
cldif_CA3_NKCC1_HCO3.mod *
gabaA_Cl_HCO3.mod *
vecevent.mod *
Cell1_Cl_HCO3_Pas_Fine.hoc
GDP_Cl_All_short.ses
Single_GDP_gGABA-0.789-nGABA-534_Fix_gAMPA_Fix_Cl.hoc
Single_GDP_gGABA-0.789-nGABA-534_VDpas_Div_gAMPA_Div_Cl.hoc
start_Single_GDP_gGABA-0.789-nGABA-534_Fix_gAMPA_Fix_Cl.hoc
                            
//--------------------------------------------------------------------
// Simulation of  a single GDP
//---------------------------------------------------------------------


// Used to stimulate a GDp for display

// ------------Definition of Parameters -------------------------------
// --------------------------------------------------------------------

// seed Values for random generator
seed_AMPA = 0  // seed for random function
seed_GABA = seed_AMPA+2  

// Define Cl--Concentration
Cli = 50 

// Determining Parameters GABA ---------------------------
G_GABA = 0.000789  // synaptic weight according to miniature events 
DECAY_GABA = 37
P_GABA = 0.18
ngabasyn = 534 
gninputs = 1 // number of inputs per synapse

// Determination Parameters AMPA ------------------------------------
G_AMPA = 0.000305 * 10 
DECAY_AMPA = 11
nampasyn = 107 //Number of AMPA-Synapses  // calculated was 107
aninputs = 1 // number of inputs per synapse

// Definition of various runtime parameters --------------------------

ndend=56  // Number of dendrites

tstop = 1500   // Duration
v_init = -60   // Initial voltage
dt = 0.01       // Step Interval in ms


// ---------Definition of objects -------------------------------------
// --------------------------------------------------------------------


// Objects for Synapses ---------------------------------------------------------
objref gabasyn[ngabasyn]                            // Definition of synapse objects
objref ampasyn[nampasyn]


// random function for localization of synapses
objref rand_ampa_loc, rand_gaba_loc

// random function for localization of synapses in which dendrite
objref rand_ampa_dend, rand_gaba_dend

// random function for synapses parameters
objref rand_gaba_t, rand_gaba_g
objref rand_ampa_t, rand_ampa_g

// definition of Vectors for Gaba-Stimulation (t_vec = timestamps t_vecr = sorted timestamps, g_vec = rel conductance)
objref gabastim[ngabasyn], gaba_t_vec[ngabasyn], gaba_t_vecr[ngabasyn], synpulsegaba[ngabasyn], gaba_g_vec[ngabasyn]
// definition of Vectors for AMPA-Stimulation
objref ampastim[nampasyn], ampa_t_vec[nampasyn], ampa_t_vecr[nampasyn], synpulseampa[nampasyn], ampa_g_vec[nampasyn]


// Start of Input generation -------------------------------------------
// Initialize Random Functions -----------
rand_ampa_loc = new Random(seed_AMPA+1)
rand_gaba_loc = new Random(seed_GABA+2)
rand_ampa_dend = new Random(seed_AMPA+3)
rand_gaba_dend = new Random(seed_GABA+4)
rand_ampa_t = new Random(seed_AMPA+5)
rand_ampa_g = new Random(seed_AMPA+6)
rand_gaba_t = new Random(seed_GABA+7)
rand_gaba_g = new Random(seed_GABA+8)

//Define properties of random Function
rand_gaba_t.normal(400, 9000)
rand_gaba_g.normal(1, 0.28) //rel variance of GABA according to results
rand_ampa_t.normal(500, 8500)
rand_ampa_g.normal(1, 0.26) //rel variance of AMPA according to results

// generate Vectors --- (gniputs, aninputs defines number of inputs per synapse) ------
for i = 0, ngabasyn-1 {
  gaba_t_vec[i] = new Vector(gninputs)
  gaba_t_vecr[i] = new Vector(gninputs)
  gaba_g_vec[i] = new Vector(gninputs)
}

for i = 0, nampasyn-1 {
   ampa_t_vec[i] = new Vector(aninputs)
   ampa_t_vecr[i] = new Vector(aninputs)
   ampa_g_vec[i] = new Vector(aninputs)
}

  // Distribute GABA synapses -----------------------------------------------------------
  for k=0, ngabasyn-1 {
      pos = rand_gaba_loc.uniform(0,ndend-1)
      pos2 = rand_gaba_dend.uniform (0.1, 0.5)
      dend_0[pos]{
        gabasyn[k] = new gaba(pos2)
        gabasyn[k].tau1 = 0.1
        gabasyn[k].tau2 = DECAY_GABA
        gabasyn[k].P = P_GABA
        }
      }

  // distribute AMPA synapses ------------------------------------------------------------------------
  for k=0, nampasyn-1 {
    pos = rand_ampa_loc.uniform(0,ndend-1)
    pos3 = rand_ampa_dend.uniform (0.1, 0.5)
    dend_0[pos]{
      ampasyn[k] = new Exp2Syn(pos3)
      ampasyn[k].tau1 = 0.1
      ampasyn[k].tau2 = DECAY_AMPA
    }                                              
  }

//-- Simulation starts here -----------------------------------------------------------------
//-------------------------------------------------------------------------------------------

forsec all {
  cli0_cldif_CA3_NKCC1_HCO3 = Cli
  cli_Start_cldif_CA3_NKCC1_HCO3 = Cli
  cli_cldif_CA3_NKCC1_HCO3 = Cli
}

// 2a. Generate timestamps/conductances for GABA synapses --------------------------------------
for f=0, ngabasyn-1 {
   for i=0, gninputs-1 {
       t = rand_gaba_t.repick()
       g = rand_gaba_g.repick()
       gaba_t_vec[f].x[i]=t
       gaba_g_vec[f].x[i]= abs(G_GABA*g)
   }
}

for f=0, ngabasyn-1 {
  gaba_t_vecr[f] = gaba_t_vec[f].sort()
}

// 2b. Generate timestamps/conductances for AMPA synapses --------------------------------------
for f=0, nampasyn-1 {
  for i=0, aninputs-1 {
      t = rand_ampa_t.repick()
      g = rand_ampa_g.repick()
      ampa_t_vec[f].x[i]=t
      ampa_g_vec[f].x[i]=G_AMPA
  }
}

for f=0, nampasyn-1 {                     
    ampa_t_vecr[f] = ampa_t_vec[f].sort()
}   

// 3. generate Vecstim-vectors from the sorted timestamp-vectors -------------------------------
for i=0, ngabasyn-1 {
   gabastim[i] = new VecStim()
   gabastim[i].play(gaba_t_vecr[i])    // GABA stimulator
}                                               

for i=0, nampasyn-1{
   ampastim[i] = new VecStim()
   ampastim[i].play(ampa_t_vecr[i])    // AMPA stimulator
}    

// 4. Play the Vecstim objects to the synapses ---------------------------------------------
for i=0, ngabasyn-1 {
   synpulsegaba[i] = new NetCon(gabastim[i], gabasyn[i], 0, 0, gaba_g_vec[i].x[0])
}                                                  // GABA NetCon

for i=0, nampasyn-1 {
   synpulseampa[i] = new NetCon(ampastim[i], ampasyn[i], 0, 0, ampa_g_vec[i].x[0])
}    
                                             // Ampa NetCon
 
// 6. Run Simulation --------------------------------------------------------
run()