Factors contribution to GDP-induced [Cl-]i transients (Lombardi et al 2019)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:253369
This models are used to evaluate which factors influence the GDP (giant depolarizing potential) induced [Cl-]I transients based on a initial model of P. Jedlicka
Reference:
1 . Lombardi A, Jedlicka P, Luhmann HJ, Kilb W (2019) Interactions Between Membrane Resistance, GABA-A Receptor Properties, Bicarbonate Dynamics and Cl-Transport Shape Activity-Dependent Changes of Intracellular Cl- Concentration Int J of Mol Sci [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Neuron or other electrically excitable cell; Dendrite; Synapse;
Brain Region(s)/Organism: Mouse; Hippocampus;
Cell Type(s): Hippocampus CA3 pyramidal GLU cell;
Channel(s):
Gap Junctions:
Receptor(s): GabaA;
Gene(s):
Transmitter(s): Gaba;
Simulation Environment: NEURON;
Model Concept(s): Synaptic Plasticity;
Implementer(s):
Search NeuronDB for information about:  Hippocampus CA3 pyramidal GLU cell; GabaA; Gaba;
/
LombardiEtAl2019
Isolated_Dendrite_tauNKCC1__Fig9
cldif_CA3_NKCC1_HCO3.mod *
gabaA_Cl_HCO3.mod *
VDpas.mod *
vecevent.mod *
cell_isolated_dendrite.hoc *
cell_soma_dendrite.hoc *
cell_soma_dendrite_1000um.hoc
cell_soma_dendrite_fine.hoc
Freq_PSC.ses
gabaA_Cl_HCO3.o
GABA-Stim_1xPSC_isolated_dendrite_GUI.hoc
GABA-Stim_2xPSC_Spatial_Sum_isolated_dendrite.hoc
GABA-Stim_2xPSC_Spatial_Sum_isolated_dendrite_enlarged_tauNKCC1.hoc
GABA-Stim_3xPSC_isolated_dendrite_GUI.hoc
GABA-Stim_5xPSC_Freq_isolated_dendrite.hoc
GABA-Stim_5xPSC_Freq_isolated_dendrite_back.hoc
GABA-Stim_5xPSC_Freq_isolated_dendrite_enlarged_tauNKCC1.hoc
GABA-Stim_5xPSC_Spatial_isolated_dendrite-Draft.hoc
init_Cldif_isolated_dendrite.hoc
Isolated_Dendrite.ses *
Isolated_Dendrite_Diff_Flux_1xGABA.ses
Isolated_Dendrite_Diff_Flux_3xGABA.ses
Isolated_Dendrite_Diff_Flux_Laptop.ses
start_GABA-Stim_2xPSC_Spatial_Sum_isolated_dendrite.hoc
start_GABA-Stim_2xPSC_Spatial_Sum_isolated_dendrite_enlarged_tauNKCC1.hoc
start_GABA-Stim_5xPSC_Freq_isolated_dendrite.hoc
start_GABA-Stim_5xPSC_Freq_isolated_dendrite_enlarged_tauNKCC1.hoc
start_procedure.hoc
                            
// Simulation and analysis of Spatiotemporal Component of Cl- Gradients in a isolated dendrite

// ------------Procedures and Functions -------------------------------
// --------------------------------------------------------------------

// Function MakeShort ---------------------------------------//
// Inputs: $1 Objref to Inputvector                          //
//         $2 Objref to Outoutvector                         //
//         lenoutvec  desired lendth of Outputvector         //
//                                                           //
// Reduce Inputvec to Outputvev by averaging n elements      //
// n (reducing factor) = floor(Inputvec.size() / lenoutvec)  //
// ----------------------------------------------------------//

obfunc MakeShort() {local i, n

  n = int($o1.size()/$3)
  $o2.resize($3)
  for i=0, $3-1 {
    $o2.x[i] = $o1.mean(i*n, (i+1)*n-1)
  }
  return $o2
}   //  End of function


// Determining Cl- and HCO3- Properties -----------------------------------
  Cl_conc = 10

   forsec all {
      cli0_cldif_CA3_NKCC1_HCO3 = Cl_conc
      cli_Start_cldif_CA3_NKCC1_HCO3 = Cl_conc
      cli_cldif_CA3_NKCC1_HCO3 = Cl_conc
      hco3i0_cldif_CA3_NKCC1_HCO3 = 14.1
      hco3i_Start_cldif_CA3_NKCC1_HCO3 = 14.1
      hco3i_cldif_CA3_NKCC1_HCO3 = 14.1
    }

//----- Define run parameters ---------------------
  tstop = 3000   // Duration
  v_init = -60   // Initial voltage
  dt = 0.05      // Step Interval in ms
  steps_per_ms = 20
  
  lenghtoutputvec = 2000                   // Number of Lines for output (< 32000 for Excel-Figures)

// Determination Parameters GABA
  ANZAHL_GABA = 1        //Anzahl der synaptischen Pulse
  G_GABA = 0.000789 * 2000    //This Value was pultiplished for the analysis 
  P_GABA = 0.18
  DECAY_GABA = 37
  fGABA = 3333    // latency = 0.3 Hz
  fGABA = 1000   
  fGABA = 333  
  fGABA = 100  
  fGABA = 33  
  
  GABA_SYN_LOCATION_1 = 0.5  // Position GABA Synapse for Pulses
  GABA_SYN_LOCATION_2 = 0.5  // Position GABA Synapse for Pulses
  GABA_SYN_LOCATION_3 = 0.5  // Position GABA Synapse for Pulses
  GABA_SYN_LOCATION_4 = 0.5  // Position GABA Synapse for Pulses
  GABA_SYN_LOCATION_5 = 0.5  // Position GABA Synapse for Pulses


//----- Insert synapses -------------------------
// Determination of Synapses
  objref gabasyn1, gabasyn2, gabasyn3, gabasyn4, gabasyn5 
  dend {
    // insert GABA synapse 
    gabasyn1 = new gaba(GABA_SYN_LOCATION_1)
    gabasyn2 = new gaba(GABA_SYN_LOCATION_2)
    gabasyn3 = new gaba(GABA_SYN_LOCATION_3)
    gabasyn4 = new gaba(GABA_SYN_LOCATION_4)
    gabasyn5 = new gaba(GABA_SYN_LOCATION_5)
    gabasyn1.tau1 = 0.1
    gabasyn1.tau2 = DECAY_GABA 
    gabasyn1.P = P_GABA
    gabasyn2.tau1 = 0.1
    gabasyn2.tau2 = DECAY_GABA 
    gabasyn2.P = P_GABA
    gabasyn3.tau1 = 0.1
    gabasyn3.tau2 = DECAY_GABA 
    gabasyn3.P = P_GABA
    gabasyn4.tau1 = 0.1
    gabasyn4.tau2 = DECAY_GABA 
    gabasyn4.P = P_GABA
    gabasyn5.tau1 = 0.1
    gabasyn5.tau2 = DECAY_GABA 
    gabasyn5.P = P_GABA
  }

    ONSET_PULSE_1 = GABA_Onset + 0 * fGABA
    ONSET_PULSE_2 = GABA_Onset + 1 * fGABA
    ONSET_PULSE_3 = GABA_Onset + 2 * fGABA
    ONSET_PULSE_4 = GABA_Onset + 3 * fGABA
    ONSET_PULSE_5 = GABA_Onset + 4 * fGABA

    // Definition of synaptic Stimuli
       objref stimGABApuls1, stimGABApuls2, stimGABApuls3, stimGABApuls4, stimGABApuls5  //Pulssequenz GABA
       stimGABApuls1 = new NetStim(GABA_SYN_LOCATION_1)
       stimGABApuls1.number = ANZAHL_GABA
       stimGABApuls1.start = ONSET_PULSE_1
       stimGABApuls2 = new NetStim(GABA_SYN_LOCATION_2)
       stimGABApuls2.number = ANZAHL_GABA
       stimGABApuls2.start = ONSET_PULSE_2
       stimGABApuls3 = new NetStim(GABA_SYN_LOCATION_3)
       stimGABApuls3.number = ANZAHL_GABA
  stimGABApuls3.start = ONSET_PULSE_3
  stimGABApuls4 = new NetStim(GABA_SYN_LOCATION_4)
  stimGABApuls4.number = ANZAHL_GABA
  stimGABApuls4.start = ONSET_PULSE_4
  stimGABApuls5 = new NetStim(GABA_SYN_LOCATION_4)
  stimGABApuls5.number = ANZAHL_GABA
  stimGABApuls5.start = ONSET_PULSE_4

// Linkage of synaptic Inputs
  objref synpulsegaba1,synpulsegaba2, synpulsegaba3 
  synpulsegaba1 = new NetCon(stimGABApuls1, gabasyn1, 0, 0, G_GABA)
  synpulsegaba2 = new NetCon(stimGABApuls2, gabasyn2, 0, 0, G_GABA)
  synpulsegaba3 = new NetCon(stimGABApuls3, gabasyn3, 0, 0, G_GABA)
  synpulsegaba4 = new NetCon(stimGABApuls4, gabasyn4, 0, 0, G_GABA)
  synpulsegaba5 = new NetCon(stimGABApuls5, gabasyn5, 0, 0, G_GABA)



tauCli_Steps = 50                          
objref tauCli_List
tauCli_List = new Vector(tauCli_Steps)
// manually put desired tau_Values in List 
  for i=0, TauCli_Steps{
    tauCli_List.x[i] = exp(i/8.045)    // exponential increase intau
  }

fGABA_Steps = 5                           // 3 different decay constants
objref fGABA_List
fGABA_List = new Vector(fGABA_Steps)
// manually put desired tau_Values in List 





// --- Simulation starts here

//-- Outer Loop Variation of tauCl -------------------

tauCli_Step = 0

while (tauCli_Step < tauCli_Steps){
   forsec all {
      tau_NKCC1_cldif_CA3_NKCC1_HCO3 = tauCli_List.x[tauCli_Step]
      tau_passive_cldif_CA3_NKCC1_HCO3 = tauCli_List.x[tauCli_Step]
   }

    
    printf("Sequence %g of %g; tauCli = %g, fGABA = %g, ", (fGABA_Step*tauCli_Steps+tauCli_Step+1), (tauCli_Steps*fGABA_Steps), tauCli_List.x[tauCli_Step], fGABA_List.x[fGABA_Step])



   // Run Simulation --------------------------------------------------------
       run()
    
    // Put Data in Output Matrix --------------------------------------------
    // ---- => shrink the parameters to output-size before ---------------------
     MakeShort(timevec, shorttimevec, lenghtoutputvec)   
     voltOutmatrix.resize(shorttimevec.size(), 1 + pGABA_Steps*tauHCO3_Steps)
     voltOutmatrix.setcol(0, shorttimevec)
     cliOutmatrix.resize(shorttimevec.size(), 1 + pGABA_Steps*tauHCO3_Steps)
     cliOutmatrix.setcol(0, shorttimevec)
     hco3iOutmatrix.resize(shorttimevec.size(), 1 + pGABA_Steps*tauHCO3_Steps)
     hco3iOutmatrix.setcol(0, shorttimevec)


     // Goto next fGABA
     fGABA_Step+=1
  }  
  // End inner loop ---------------------------------

  // Goto next tauCli_value
     tauCli_Step+=1
} // End of outer loop