Striatal Spiny Projection Neuron, inhibition enhances spatial specificity (Dorman et al 2018)

 Download zip file 
Help downloading and running models
We use a computational model of a striatal spiny projection neuron to investigate dendritic spine calcium dynamics in response to spatiotemporal patterns of synaptic inputs. We show that spine calcium elevation is stimulus-specific, with supralinear calcium elevation in cooperatively stimulated spines. Intermediate calcium elevation occurs in neighboring non-stimulated dendritic spines, predicting heterosynaptic effects. Inhibitory synaptic inputs enhance the difference between peak calcium in stimulated spines, and peak calcium in non-stimulated spines, thereby enhancing stimulus specificity.
1 . Dorman DB, Jedrzejewska-Szmek J, Blackwell KT (2018) Inhibition enhances spatially-specific calcium encoding of synaptic input patterns in a biologically constrained model. Elife, Kennedy, Mary B, ed. [PubMed]
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: Basal ganglia;
Cell Type(s): Neostriatum spiny neuron;
Channel(s): Ca pump; Kir; I A; I A, slow; I CAN; I K,Ca; I Krp; I Na,t; I L high threshold; I R; I T low threshold; IK Bkca; IK Skca; Na/Ca exchanger;
Gap Junctions:
Receptor(s): AMPA; NMDA; GabaA;
Gene(s): Cav3.2 CACNA1H; Cav3.3 CACNA1I; Cav1.2 CACNA1C; Cav1.3 CACNA1D; Cav2.2 CACNA1B; Kv4.2 KCND2; Kir2.1 KCNJ2; Kv2.1 KCNB1;
Transmitter(s): Gaba; Glutamate;
Simulation Environment: GENESIS;
Model Concept(s): Calcium dynamics; Detailed Neuronal Models; Synaptic Integration; Synaptic Plasticity;
Implementer(s): Dorman, Daniel B ;
Search NeuronDB for information about:  GabaA; AMPA; NMDA; I Na,t; I L high threshold; I T low threshold; I A; I K,Ca; I CAN; I A, slow; Na/Ca exchanger; I Krp; I R; Ca pump; Kir; IK Bkca; IK Skca; Gaba; Glutamate;
//PlasStim can do hfs or theta (train of pre-syn stim), no current injection

function PlasStim (PreStim, StimComp, file, pulseFreq, pulses, trainFreq, numtrains )
    str PreStim
    str StimComp, file
    float pulseFreq, trainFreq
    int pulses, numtrains

    float initSim=0.1
    float interpulse, intertrain,PreStimPct
    int pulse, train, anystim

    //**********set the filenames, and 
    //set up presynaptic element for stimulating
    str filenam={file}@"Stim"@{pulseFreq}@"Hz_"@{trainFreq}@"Hz"
    if ({PreStim}==2)
        PreSynStim {precell} 
        if ({spinesYesNo})
            str stimname={StimComp}@"/spine_1/"@{spcomp1}
	    echo {StimComp}@"/spine_1/"@{spcomp1}	
            str stimname={StimComp}
        addmsg {precell}/spikegen  {neuronname}/{stimname}/{NMDAname} SPIKE 
        addmsg {precell}/spikegen  {neuronname}/{stimname}/{AMPAname} SPIKE 
        PreStimPct= {PreStim}
        if ({PreStimPct}>0 && {PreStimPct}<=1)
            PreSynStim {precell} 
            anystim={PreSynSyncRandom {precell} {neuronname} {PreStimPct} {StimComp}}
            if ({anystim}==0)
                echo "ERROR in PlasStim/PreSynSync: no successful connections"
        elif ({PreStimPct}<=0)
            echo "ERROR in PlasStim: PreStim," {PreStim} ", must be string between 0 and 1"

    echo "################ simulating Synchronous Stim, Freqs:" {pulseFreq} {trainFreq} 
    //setfilename {Vmfile} {filenam} 1 {Vmhead}
    //setfilename {Cafile} {filenam} 1 {Cahead}
    //setfilename {Gkfile} {filenam} 1 {Gkhead}
    //setfilename {spinefile} {filenam} 1 {spinehead}

// Determine the interpulse and intertrain intervals
    if ({pulses}>1)
    if ({numtrains}>1)
        intertrain = (1/{trainFreq})-(pulses)*{interpulse}

    create asc_file /output/Tertweight
    setfield /output/Tertweight   flush 1  leave_open 1 append 1 float_format %0.6g
    useclock /output/Tertweight 5e-4
    addmsg /cell/tertdend1_3/spine_1/head/AMPA /output/Tertweight  SAVE synapse[0].weight	
    setfield /output/Tertweight filename /output/"weight_tert.txt"

//step through the simulation
    step {initSim} -time
    if ({pulseYN})
        setfield {precell} Vm 10
        step 1 
        setfield {precell} Vm 0
        step {initSim} -time
    for (train=0; train<numtrains; train=train+1)
        for (pulse=0; pulse<pulses; pulse=pulse+1)
            setfield {precell} Vm 10
            step 1 
            setfield {precell} Vm 0
            step {interpulse} -time
        step {intertrain} -time

    if ({pulseYN})
        step {initSim} -time
        setfield {precell} Vm 10
        step 1 
        setfield {precell} Vm 0
    step {initSim} -time

    fileFLUSH {Vmfile} {Cafile} {Gkfile} {spinefile}
		int nummsg={getmsg {precell}/spikegen -out -count}
		int i
		for (i=0; i<nummsg; i=i+1)
			deletemsg {precell}/spikegen 0 -outgoing 

Loading data, please wait...