Synchronicity of fast-spiking interneurons balances medium-spiny neurons (Damodaran et al. 2014)

 Download zip file 
Help downloading and running models
Accession:156260
This study investigates the role of feedforward and feedback inhibition in maintaining the balance between D1 and D2 MSNs of the striatum. The synchronized firing of FSIs are found to be critical in this mechanism and specifically the gap junction connections between FSIs.
Reference:
1 . Damodaran S, Evans RC, Blackwell KT (2014) Synchronized firing of fast-spiking interneurons is critical to maintain balanced firing between direct and indirect pathway neurons of the striatum. J Neurophysiol 111:836-48 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism:
Cell Type(s): Neostriatum medium spiny direct pathway GABA cell; Neostriatum medium spiny indirect pathway GABA cell; Neostriatum fast spiking interneuron;
Channel(s):
Gap Junctions: Gap junctions;
Receptor(s): NMDA; Gaba;
Gene(s):
Transmitter(s):
Simulation Environment: GENESIS;
Model Concept(s): Detailed Neuronal Models; Parkinson's;
Implementer(s): Blackwell, Avrama [avrama at gmu.edu]; Damodaran, Sriraman [dsriraman at gmail.com];
Search NeuronDB for information about:  Neostriatum medium spiny direct pathway GABA cell; Neostriatum medium spiny indirect pathway GABA cell; NMDA; Gaba;
//genesis
//nsynapses

int densityMax_soma_AMPA_SP = 0, densityMax_soma_GABA_SP = 3, densityMax_pd_AMPA_SP = 0, densityMax_pd_GABA_SP = 6
int densityMax_sd_AMPA_SP = 1, densityMax_sd_GABA_SP = 3 , densityMax_td_AMPA_SP = 2, densityMax_td_GABA_SP = 1
int densityMax_soma_AMPA_FS = 1, densityMax_soma_GABA_FS = 3, densityMax_pd_AMPA_FS = 1, densityMax_pd_GABA_FS = 3
int densityMax_sd_AMPA_FS = 0, densityMax_sd_GABA_FS = 3 , densityMax_td_AMPA_FS = 1, densityMax_td_GABA_FS = 0
//3 6 3 1
int prim_dend_num_SP = 4, sec_dend_num_SP = 8, tert_dend_num_SP = 16*11
int nAMPA_SP = {densityMax_soma_AMPA_SP} + {densityMax_pd_AMPA_SP}*{prim_dend_num_SP} + {densityMax_sd_AMPA_SP}*{sec_dend_num_SP} + {densityMax_td_AMPA_SP}*{tert_dend_num_SP}
int nGABA_SP = {densityMax_soma_GABA_SP} + {densityMax_pd_GABA_SP}*{prim_dend_num_SP} + {densityMax_sd_GABA_SP}*{sec_dend_num_SP} + {densityMax_td_GABA_SP}*{tert_dend_num_SP}

int prim_dend_num_FS = 3*2, sec_dend_num_FS = 6*4, tert_dend_num_FS = 12*8
int nAMPA_FS = {densityMax_soma_AMPA_FS} + {densityMax_pd_AMPA_FS}*{prim_dend_num_FS} + {densityMax_sd_AMPA_FS}*{sec_dend_num_FS} + {densityMax_td_AMPA_FS}*{tert_dend_num_FS}
int nGABA_FS = {densityMax_soma_GABA_FS} + {densityMax_pd_GABA_FS}*{prim_dend_num_FS} + {densityMax_sd_GABA_FS}*{sec_dend_num_FS} + {densityMax_td_GABA_FS}*{tert_dend_num_FS}


function add_field (cellpath)
str cellpath, CName
//echo "entering add_field cellpath" {cellpath}
if ({cellpath} == "/library/SPcell_D1" || {cellpath} == "/library/SPcell_D2")
  foreach CName ({el {cellpath}/##[TYPE=compartment]}) 
 //   echo " entered foreach"
    addfield {CName} nsynallowed_a
    addfield {CName} nsynallowed_g
    if ({getfield {CName} position}==1.599999996e-05)
 //     echo "soma"
      setfield {CName} nsynallowed_a {densityMax_soma_AMPA_SP}
      setfield {CName} nsynallowed_g {densityMax_soma_GABA_SP}
    elif ({getfield {CName} position}==3.599999764e-05) 
 //     echo "prim"
      setfield {CName} nsynallowed_a {densityMax_pd_AMPA_SP}
      setfield {CName} nsynallowed_g {densityMax_pd_GABA_SP}
    elif ({getfield {CName} position}==6.022999878e-05)
  //    echo "sec"
      setfield {CName} nsynallowed_a {densityMax_sd_AMPA_SP}
      setfield {CName} nsynallowed_g {densityMax_sd_GABA_SP}
    elif ({getfield {CName} position}>7.0e-05)
  //    echo "tert"
      setfield {CName} nsynallowed_a {densityMax_td_AMPA_SP}
      setfield {CName} nsynallowed_g {densityMax_td_GABA_SP}
    end
  end
elif ({cellpath} == "/library/FScell")
  foreach CName ({el {cellpath}/##[TYPE=compartment]}) 
     addfield {CName} nsynallowed_a
     addfield {CName} nsynallowed_g
     if ({getfield {CName} position}==1.999999949e-05)
  //    echo "soma"
      setfield {CName} nsynallowed_a {densityMax_soma_AMPA_FS}
      setfield {CName} nsynallowed_g {densityMax_soma_GABA_FS}
     elif ({getfield {CName} position}>6.0e-05 && {getfield {CName} position}<12.0e-05) 
   //   echo "prim"
      setfield {CName} nsynallowed_a {densityMax_pd_AMPA_FS}
      setfield {CName} nsynallowed_g {densityMax_pd_GABA_FS}
     elif ({getfield {CName} position}>14.0e-05 && {getfield {CName} position}<26.0e-05)
  //    echo "sec"
      setfield {CName} nsynallowed_a {densityMax_sd_AMPA_FS}
      setfield {CName} nsynallowed_g {densityMax_sd_GABA_FS}
     elif ({getfield {CName} position}>28.0e-05 && {getfield {CName} position}<50.0e-05)
   //   echo "tert"
      setfield {CName} nsynallowed_a {densityMax_td_AMPA_FS}
      setfield {CName} nsynallowed_g {densityMax_td_GABA_FS}
     end
  end
end
end //function end


//SP
//int nAMPA  = 360
//int nGABA  = 227

//FS
//nAMPA = 127 
//nGABA = 93

//echo "nAMPA = "{nAMPA}""
//echo "nGABA = "{nGABA}""


function ndups_a (pDup,n)	
	float pDup
        int n
	int nD_a = {round {{pDup}*{n}}}
	return {nD_a}
end

function ndups_g (pDup,n)	
	float pDup
        int n
	int nD_g = {round {{pDup}*{n}}}
	return {nD_g}
end