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,"%s, ", nrnversion(), pkgversions)
sprint(pkgversions,"%sbpap-sims = $Revision: 1.5 $, ",pkgversions)

load_file("bpap-dendburst.hoc")
load_file("bpap-somainj.hoc")
load_file("TreePlot.hoc")
load_file("ChannelBlocker.hoc")
load_file("VarList.hoc")
load_file("epspsizes.hoc")
load_file("TreePlotArray.hoc")
load_file("Integrator.hoc")
load_file("utils.hoc")
load_file("bpap-graphics.hoc")
load_file("bpap-spiketrain.hoc")
load_file("bpap-cell.hoc")
load_file("bpap-pars.hoc")
load_file("bpap-data.hoc")
load_file("bpap-run.hoc")

//cvode.atol(1e-8) for no activity
// Set up the parameter lists and the default parameters
pars_set_defaults()

cell_model = "ca1_mrg_cell2"

// Need to set these here to speed up computation that occurs 
// while loading the model
cell_set_cvode_atol(0.0001)

cell_setup_cell()

// cell_setup_cell() uses cvode, so switch back to fixed step if desired here
cell_set_cvode_active(1)

// We want to record from four synapses on the trunk in this case
screc_inputs_sri = new Vector()
objref seg 
// Specify a SegmentRefList of synapses we alway want to record from.
// These are at the following distances from the soma:
//
// Dist    Segment                          
//  25.7um apical_dendrite[0] (0.25)         
// 115.4um apical_dendrite[4] (0.50) 
// 258.6um apical_dendrite[25](0.50)

// These distances can be found using cell_print_trunk_distances()

// apical_dendrite[0] seg = new SegmentRef(0.25)
// screc_inputs_sri.append(segreflist.find_ind_of_segment(seg))
// apical_dendrite[4] seg = new SegmentRef(0.5)
// screc_inputs_sri.append(segreflist.find_ind_of_segment(seg))
// apical_dendrite[25] seg = new SegmentRef(0.5)
// screc_inputs_sri.append(segreflist.find_ind_of_segment(seg))

parlist.appendVector("screc_inputs_sri")
screc_inputs_sr = new SegmentRefList()
// for i=0, screc_inputs_sri.size() - 1 {
//     screc_inputs_sr.append_segment(segreflist.srl.object(screc_inputs_sri.x(i)))
// }
//create_and_distribute_screc_inputs()
create_and_distribute_inputs()

// Print picture of cell
graphics_lineup_shapeplot()
graphics_mark_screc_synapses()
// Shape[0].printfile("datastore/somainj.eps")

//
// Experimental setup 
// 

// Soma iclamp
setup_soma_iclamp()
tstop = 200

// Channel blockers
objref kapblocker, kadblocker
kapblocker = new ChannelBlocker("gkabar_kap",sl)
kadblocker = new ChannelBlocker("gkabar_kad",sl)

strdef dataname
proc save_parameters_and_data_sims() {
    data_get_dataname(dataname, "dendburst")
    data_save_parameters_and_data(dataname)
}

// 
//  The commands to run the simulations
// 

// Figure 1: response to somatic current injection

dendburst_state = 0
soma_iclamp_state = 1

if (1) {
    nruns = 1
    run_bpap()
    
    strdef dataname
    sprint(dataname, "%s-somainj-Ra%03g-cv%01g", cell_model, cell_Ra, cvode_on)
    data_save_parameters_and_data(dataname)
}

// Figures 2-4
// 
// We want to record from a different set of synapses in this case
screc_inputs_sri = new Vector()
objref seg 
// Specify a SegmentRefList of synapse we alway want to record from.
// oc>segreflist.srl.o(screc_inputs_sri.x(0)).name     
// apical_dendrite[5] seg = new SegmentRef(0.125)
// screc_inputs_sri.append(segreflist.find_ind_of_segment(seg))
// apical_dendrite[74] seg = new SegmentRef(0.5)
// screc_inputs_sri.append(segreflist.find_ind_of_segment(seg))
// apical_dendrite[51] seg = new SegmentRef(0.91666667 )
// screc_inputs_sri.append(segreflist.find_ind_of_segment(seg))
// apical_dendrite[28] seg = new SegmentRef(0.5 )
// screc_inputs_sri.append(segreflist.find_ind_of_segment(seg))

//10, 146, 102, 49
parlist.appendVector("screc_inputs_sri")
screc_inputs_sr = new SegmentRefList()
// for i=0, screc_inputs_sri.size() - 1 {
//     screc_inputs_sr.append_segment(segreflist.srl.object(screc_inputs_sri.x(i)))
// }
//create_and_distribute_screc_inputs()
create_and_distribute_inputs()
graphics_lineup_shapeplot()
graphics_mark_screc_synapses()

// Figures 2 & 4: response to SC stimulation from 240 synapses 

dendburst_state = 1
soma_iclamp_state = 0
nsyn = 250
jitter = 0
nruns = 100
vtreerecinds.append(38, 39, 40, 224, 225, 226)

if (1) {
    run_bpap()
    save_parameters_and_data_sims()
}