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,"%sutils = $Revision: 1.22 $, ",pkgversions)

begintemplate Utils

public error
public warning
public min, max
public mean, stdev, stderr
public mul_ratio_round
public list_join, list_copy

//
// error(String error) 
//
// Issue error string and stop simulation
//

proc error() {
    print "Error: ", $s1
    stop
}

//
// warning(String error) 
//
// Issue warning string
//

proc warning() {
    print "Warning: ", $s1
}

//
// x = min(double a, double b)
// 
// return minimum of a and b
//

func min() {
    if ( $1 < $2 ) { return $1 } else { return $2 }
}

//
// x = max(double a, double b)
// 
// return maximum of a and b
//

func max() {
    if ( $1 > $2 ) { return $1 } else { return $2 }
}

//
// mean(Vector dest, Matrix src) 
// 
// Compute mean of columns of src storing output in mean
// 
proc mean() { local i
    $o1 = new Vector($o2.ncol())
    for i=0, $o2.ncol()-1 {
        $o1.x(i) = $o2.getcol(i).mean()
    }
}

//
// stdev(Vector dest, Matrix src) 
// 
// Compute standard deviation of columns of src storing output in stdev
// 
proc stdev() { local i
    $o1 = new Vector($o2.ncol())
    for i=0, $o2.ncol()-1 {
        if ($o2.getcol(i).size > 1) {
            $o1.x(i) = $o2.getcol(i).stdev()
        } else {
            $o1.x(i) = 0
        }
    }
}

//
// stderr(Vector dest, Matrix src) 
// 
// Compute standard deviation of columns of src storing output in stderr
// 
proc stderr() { local i
    $o1 = new Vector($o2.ncol())
    for i=0, $o2.ncol()-1 {
        if ($o2.getcol(i).size > 1) {
            $o1.x(i) = $o2.getcol(i).stderr()
        } else {
            $o1.x(i) = 0
        }
    }
}

//
// mul_ratio_round(Vector out, int n, Vector ratio) 
// Return a vector OUT whose elements sum to N and are approximately in the ratio RATIO
// 
objref ratio, out, out_floor, out_rem, si
proc mul_ratio_round() { local n, i
    n     = $2
    ratio = $o3
    out   = ratio.c()
    out.mul(n/ratio.sum())
    out_rem = out.c
    out.floor()
    out_rem.sub(out)
    si = out_rem.sortindex()
    i = si.size()
    while(out.sum() < n) {
        i = i - 1
        out.x(si.x(i)) = out.x(si.x(i)) + 1
    }
    $o1 = out
}

// 
// list_join(List ldest, List lsrc)
// Append every object in lsrc to ldest
// 
proc list_join() {
    for i=0,$o2.count()-1 {
        $o1.append($o2.object(i))
    }
}

//
// list_copy(ldest, lsrc, src_start, src_end) 
// Copies lsrc into ldest, starting at src_start and finishing at src_end
// 
proc list_copy() { local src_start, src_end, i
    src_start = $3
    src_end   = $4
    $o1 = new List()
    for i = src_start, src_end {
        $o1.append($o2.object(i))
    }
}

endtemplate Utils

objref utils
utils = new Utils()