CA1 pyramidal neuron: synaptically-induced bAP predicts synapse location (Sterratt et al. 2012)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:144490
This is an adaptation of Poirazi et al.'s (2003) CA1 model that is used to measure BAP-induced voltage and calcium signals in spines after simulated Schaffer collateral synapse stimulation. In the model, the peak calcium concentration is highly correlated with soma-synapse distance under a number of physiologically-realistic suprathreshold stimulation regimes and for a range of dendritic morphologies. There are also simulations demonstrating that peak calcium can be used to set up a synaptic democracy in a homeostatic manner, whereby synapses regulate their synaptic strength on the basis of the difference between peak calcium and a uniform target value.
Reference:
1 . Sterratt DC, Groen MR, Meredith RM, van Ooyen A (2012) Spine calcium transients induced by synaptically-evoked action potentials can predict synapse location and establish synaptic democracy. PLoS Comput Biol 8:e1002545 [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;
Brain Region(s)/Organism:
Cell Type(s): Hippocampus CA1 pyramidal GLU cell;
Channel(s): I Na,t; I L high threshold; I T low threshold; I A; I K; I M; I Mixed; I R; I_AHP;
Gap Junctions:
Receptor(s): AMPA; NMDA;
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Dendritic Action Potentials; Synaptic Plasticity;
Implementer(s): Sterratt, David ; Groen, Martine R [martine.groen at gmail.com];
Search NeuronDB for information about:  Hippocampus CA1 pyramidal GLU cell; AMPA; NMDA; I Na,t; I L high threshold; I T low threshold; I A; I K; I M; I Mixed; I R; I_AHP;
/
bpap
CA1_multi
datastore
pars
plots
poirazi-nmda-car
tests
validation-plots
README.txt
ampa_forti.mod
cacum.mod
cad.mod *
cagk.mod
cal.mod
calH.mod
car.mod
car_mag.mod
cat.mod
d3.mod *
h.mod
hha_old.mod
hha2.mod
kadist.mod
kaprox.mod
kca.mod
km.mod
nap.mod
nmda_andr.mod
somacar.mod
binaverages.m
bpap-cell.hoc
bpap-data.hoc
bpap-dendburst.hoc
bpap-graphics.hoc
bpap-gui.hoc
bpap-gui.ses
bpap-pars.hoc
bpap-record.hoc
bpap-run.hoc
bpap-scaling.hoc
bpap-sims.hoc
bpap-sims-cell1.hoc
bpap-sims-cell2.hoc
bpap-sims-scaling.hoc
bpap-somainj.hoc
bpap-spiketrain.hoc
ca1_mrg_cell1.hoc
ca1_mrg_cell2.hoc
ca1_poirazi.hoc
ChannelBlocker.hoc
CrossingFinder.hoc
epspsizes.hoc
figure-example.R
figures.R
figures-common.R
FileUtils.hoc
FormatFile.hoc
ghk.inc
GraphUtils.hoc
Integrator.hoc
Makefile
mosinit.hoc
NmdaAmpaSpineSynStim.hoc
NmdaAmpaSynStim.hoc
ObjectClass.hoc
plotscalingresults_pergroup1.m
plotscalingresults5.m
PointProcessDistributor.hoc
ReferenceAxis.hoc
removezeros.m
RPlot.hoc
scaling_plots.m
Segment.hoc
SimpleSpine.hoc
Spine.hoc
TreePlot.hoc
TreePlotArray.hoc
triexpsyn.inc
units.inc
utils.hoc
validate-bpap.hoc
VarList.hoc
VCaGraph.hoc
                            
if (name_declared("pkgversions") != 4 ) {  execute("strdef pkgversions") }
sprint(pkgversions,"%sca1_poirazi = $Revision: 1.6 $, ",pkgversions)

// The goal of this experiment is to insure that our cell responses
// are reasonably similar to the data on back propagating action potentials
// where the site of current injection is either at the soma or the apical trunk


//load_proc("nrnmainmenu")             // load main NEURON library
//load_template("ExperimentControl")   // load a custom made library function that centralizes parameters so as to 
load_file("nrngui.hoc")             // load main NEURON library
load_file("CA1_multi/template/load_templates.hoc")
strdef accstr                                                // not confuse experimental variable bindings with neurophysiological variable bindings
objref econ                          // Create an experiment object
show_errs=1
debug_lev=1
econ=new ExperimentControl(show_errs,debug_lev)
econ.self_define(econ) // points the object at itself
econ.morphology_dir = "CA1_multi/morphology/n123"                             // Setup morphology directory
econ.generic_dir = "CA1_multi/experiment/"                                    // Setup directory with cell-setup file
econ.add_lib_dir("Terrence","CA1_multi/lib")                                  // Setup directory with library functions 

if (unix_mac_pc() ==1 ) {
	econ.data_dir       = "CA1_multi/data"                       // Define directory to save produced data 
	sprint(econ.syscmd, "mkdir -p %s", econ.data_dir)  // make the data directory
	system(econ.syscmd)
}

// Setup cell

econ.xopen_geometry_dependent("cell")              // load the raw cell morphology
econ.xopen_geometry_dependent("cell-analysis")     // load user-defined semantics on morphology 
cell_analysis(econ)

printf("Opening cell setup\n")
econ.xopen_generic("cell-setup")                   // load the cell-setup file (define specific 
printf("Opened. Setting up cell\n")                // channels, membrane properties etc)
cell_setup(econ)

// Set simulation parameters for the experiment 

econ.defvar("Simulation Control", "tstop", "750", "Defines when the simulation stops.")
econ.defvar("Simulation Control", "dt", "0.1", "Timestep")
econ.defvar("Simulation Control", "steps_per_ms", "10", "How many points are plotted per ms")
setdt()


// Define directories for different cases tested
strdef data_dir
//data_dir       = "data/BPAP/Soma"             // Define directory to save produced data for somatic stimulation 
//data_dir       = "data/BPAP/Dend62"          // Define directory to save produced data for dendrite 62 stimulation
data_dir       = "data/BPAP/Dend64"          // Define directory to save produced data for dendrite 64 stimulation

if (unix_mac_pc() ==1 ) {
	sprint(econ.syscmd,  "mkdir -p %s", data_dir)                               // make directory
	//system(econ.syscmd) 
}

// Insert current clamp into soma or dendritic section
somaind = 0
access soma[somaind]

proc usetables() { local usetab
    usetab = $1
    usetable_mykca = usetab
    usetable_calH = usetab
    usetable_cal = usetab
    usetable_car = usetab
    usetable_cat = usetab
    usetable_hha2 = usetab
    usetable_hha_old = usetab
    usetable_kad = usetab
    usetable_kap = usetab
    usetable_km = usetab
    usetable_nap = usetab
    usetable_somacar = usetab
}
usetables(0)

// This function is used to override the function 
// apical_caR_calH_insert()in CA1_multi/experiment/cell-setup.hoc
// The only difference is that the density of the HVA L-type channel is 
// the same throughout the dendritic tree
proc cell_mods_apical_caR_caLH_insert() {
    forsec apical_trunk_list {
        for (x) {  
            xdist = find_vector_distance_precise(secname(),x)
            insert car
            gcabar_car(x) = 0.1*soma_car
            
            insert calH
            // if (xdist > 50) {            
            gcalbar_calH(x) = 4.6*soma_caLH
            // } else {
            //    gcalbar_calH(x) = 0.1*soma_caLH
            // }
        }
    }
}

proc cell_mods_original_apical_caR_caLH_insert() {
    forsec apical_trunk_list {
        apical_caR_caLH_insert()
    }
}

cell_mods_apical_caR_caLH_insert()

// Set up the reference axis
// The base is suppose to be the cell body layer
apical_dendrite[4]  base = new SegmentRef(0)
// The apex is around the bifurcation of the apical dendritic tree
apical_dendrite[92] apex = new SegmentRef(0.5)
// This is an adjustment for the distance of the true soma location 
ra_adjustment = adjustment