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 = 20000   // Duration
  v_init = -60   // Initial voltage
  dt = 0.05      // Step Interval in ms
  steps_per_ms = 20
  
  lenghtoutputvec = 3000                   // Number of Lines for output (< 32000 for Excel-Figures)

// Determination Parameters GABA
  ANZAHL_GABA = 5        //Anzahl der synaptischen Pulse
  G_GABA = 0.000789 * 2000    //This Value was pultiplished for the analysis 
  P_GABA = 0.18
  DECAY_GABA = 37  
  GABA_SYN_LOCATION_1 = 0.5  // Position GABA Synapse for Pulses
  ONSET_GABA = 100

//----- Insert synapses -------------------------
// Determination of Synapses
  objref gabasyn1
  dend {
    // insert GABA synapse 
    gabasyn1 = new gaba(GABA_SYN_LOCATION_1)
    gabasyn1.tau1 = 0.1
    gabasyn1.tau2 = DECAY_GABA 
    gabasyn1.P = P_GABA
  }

tauCli_Steps = 30                          
objref tauCli_List
tauCli_List = new Vector(tauCli_Steps)
// manually put desired tau_Values in List 
  for i=0, tauCli_Steps-1{
    tauCli_List.x[i] = exp((i+50)/8.045)    // exponential increase intau
    printf("%g - %g, ", i, tauCli_List.x[i])
  }

fGABA_Steps = 5                           // 3 different decay constants
objref fGABA_List
fGABA_List = new Vector(fGABA_Steps)
// manually put desired tau_Values in List 
  fGABA_List.x[0] = 3333    // synaptic weight according to miniature events
  fGABA_List.x[1] = 1000   
  fGABA_List.x[2] = 333  
  fGABA_List.x[3] = 100  
  fGABA_List.x[4] = 33  

// Definition of synaptic Stimuli
   objref stimGABApuls1
   stimGABApuls1 = new NetStim(GABA_SYN_LOCATION_1)
   stimGABApuls1.number = ANZAHL_GABA
   stimGABApuls1.start = ONSET_GABA

   // Linkage of synaptic Inputs
   objref synpulsegaba1
   synpulsegaba1 = new NetCon(stimGABApuls1, gabasyn1, 0, 0, G_GABA)



// ---------Definition of Output Vectors and File Output --------------
// --------------------------------------------------------------------

//-- Define  ------
  objref timevec, shorttimevec
  objref voltvec, shortvoltvec
  objref clivec, shortclivec
  objref voltOutmatrix  
  objref cliOutmatrix  

  strdef voltOutFileName, cliOutFileName        // Name of File Output
  objref voltOutFile, cliOutFile

//--- Assign -------
  timevec = new Vector()
  shorttimevec = new Vector()
  voltvec = new Vector()
  shortvoltvec = new Vector()
  clivec = new Vector()
  shortclivec = new Vector()
  voltOutmatrix = new Matrix()
  cliOutmatrix = new Matrix()

//-- Link Output Vectors ----------------
  timevec.record(&t)                          // Time vector
  voltvec.record(&dend.v(GABA_SYN_LOCATION_1))    
  clivec.record(&dend.cli(GABA_SYN_LOCATION_1))


// --- Simulation starts here

//-- Outer Loop Variation of fGABA -------------------

fGABA_Step = 0

while (fGABA_Step < fGABA_Steps){

   stimGABApuls1.interval = fGABA_List.x[fGABA_Step]

   // Inner Loop Variation of tauCli --------------------------------------------------
   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 \n", (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 + fGABA_Steps*tauCli_Steps)
        MakeShort(voltvec, shortvoltvec, lenghtoutputvec)
        voltOutmatrix.setcol(0, shorttimevec)
        shortvoltvec.x[0] = tauCli_List.x[tauCli_Step] 
        shortvoltvec.x[1] = fGABA_List.x[fGABA_Step]
        voltOutmatrix.setcol(fGABA_Step*tauCli_Steps+tauCli_Step+1, shortvoltvec)  
        MakeShort(clivec, shortclivec, lenghtoutputvec)
        shortclivec.x[0] = tauCli_List.x[tauCli_Step] 
        shortclivec.x[1] = fGABA_List.x[fGABA_Step]
        cliOutmatrix.resize(shorttimevec.size(), 1 + fGABA_Steps*tauCli_Steps)
        cliOutmatrix.setcol(0, shorttimevec)
        cliOutmatrix.setcol(fGABA_Step*tauCli_Steps+tauCli_Step+1, shortclivec) 

     // Goto next tauCli_value
     tauCli_Step+=1
  } 
  // End inner loop ---------------------------------
  
  // Goto next fGABA
  fGABA_Step+=1
} // End of outer loop

// Save the Data --------------------------------------------------------------------
  voltOutFile = new File()
  sprint(voltOutFileName, "Result_Soma_Dendrite_Var_tauCli-enlrg_Var-fGABA_Volt.asc")
  voltOutFile.wopen(voltOutFileName) 
  voltOutmatrix.fprint(voltOutFile, "\t%g")     
  voltOutFile.close

  cliOutFile = new File()
  sprint(cliOutFileName, "Result_Soma_Dendrite_Var_tauCli-enlrg_Var-fGABA_Cli.asc")
  cliOutFile.wopen(cliOutFileName) 
  cliOutmatrix.fprint(cliOutFile, "\t%g")     
  cliOutFile.close