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

 Download zip file 
Help downloading and running models
Accession:245411
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.
Reference:
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;
function PreSynStim(othercell)
str othercell

    if (!{exists {othercell}})
        create compartment {othercell}
        create spikegen {othercell}/spikegen
        setfield {othercell}/spikegen thresh 1
        addmsg {othercell} {othercell}/spikegen INPUT Vm

    end
end

function PreSynSync(othercell, cellpath)
str othercell,cellpath

    int j
    str CompName

   PreSynStim {othercell} 
   for (j=1; j<12; j=j+1)
        if ({spinesYesNo})
            CompName={cellpath}@"/tertdend1_"@{j}@"/spine_1/"@{spcomp1}
        else
            CompName={cellpath}@"/tertdend1_"@{j}
        end
        addmsg   {othercell}/spikegen  {CompName}/{NMDAname} SPIKE 
        addmsg   {othercell}/spikegen  {CompName}/{AMPAname} SPIKE 
   end
   for (j=2; j<=16; j=j+1)
        if ({spinesYesNo})
            CompName={cellpath}@"/tertdend"@{j}@"_1/spine_1/"@{spcomp1}
        else
            CompName={cellpath}@"/tertdend"@{j}@"_1"
        end
        addmsg   {othercell}/spikegen  {CompName}/{NMDAname} SPIKE 
        addmsg   {othercell}/spikegen  {CompName}/{AMPAname} SPIKE 
   end
end

function PreSynSyncRandom(othercell, cellpath, ConnProb, targetcomp)
str othercell,cellpath
str targetcomp
float ConnProb

//targetcomp is either a number specifying distance from soma for synaptic input
//or it is the word "any" to allow connecting to any segment of your morphology
//this will have to be modified if using real morphology, or multiple spines per comp

    int anycomp=0
    str CompName
    float rannum
    float position,targetlocation

    if ({targetcomp} == "any")
        targetlocation=somaLen
    else
        targetlocation={targetcomp}
    end

    PreSynStim {othercell} 
    int anystim=0
    foreach CompName ({el {cellpath}/#[TYPE=compartment]}) 
        position={getfield {CompName} position}
        if ({position}>={targetlocation})
            rannum={rand 0 1}
            if ({rannum}<{ConnProb})
                if ({spinesYesNo})
                    str stimname={CompName}@"/spine_1/"@{spcomp1}
                else
                    str stimname={CompName}
                end
                anystim=1
                addmsg   {othercell}/spikegen  {stimname}/{NMDAname} SPIKE 
                addmsg   {othercell}/spikegen  {stimname}/{AMPAname} SPIKE 
		if ({desensYesNo}==1)
			addmsg   {othercell}/spikegen  {facchan} SPIKE
			echo "Stimulating Facsynchan"
		end
            end
        end
    end
    return {anystim}
end

//Functon call, from STDP or PlasStim:
//float GabaProb=0.5
//float MaxDist="100e-6"
//float GabaDelay=30e-3
//PreSynSyncGaba {precell} {neuronname} {GabaProb} {MaxDist} {GabaDelay}

function PreSynSyncGaba(othercell, cellpath, ConnProb, GabaDist, StimDelay)
str othercell,cellpath
float GabaDist, StimDelay
float ConnProb

//targetcomp is either a number specifying max distance from soma for synaptic input
//or it is the word "any" to allow connecting to any segment of your morphology
//StimDelay is the delay between Ctx stimulation and triggering a GABA PSP due to AP in FSI

    int anycomp=0
    str CompName
    float rannum
    float position


    PreSynStim {othercell} 
    int anystim=0
    foreach CompName ({el {cellpath}/#[TYPE=compartment]}) 
        position={getfield {CompName} position}
        if ({position}<={GabaDist})
            rannum={rand 0 1}
            if ({rannum}<{ConnProb})
              str stimname={CompName}
              anystim=1
              addmsg   {othercell}/spikegen  {stimname}/{GABAname} SPIKE 
							int msgnum = {getfield {CompName}/{GABAname} nsynapses} - 1
							setfield {CompName}/{GABAname} synapse[{msgnum}].weight 1 synapse[{msgnum}].delay StimDelay
            end
        end
    end
    return {anystim}
end


Loading data, please wait...