Gap junction coupled network of striatal fast spiking interneurons (Hjorth et al. 2009)

 Download zip file 
Help downloading and running models
Accession:118389
Gap junctions between striatal FS neurons has very weak ability to synchronise spiking. Input uncorrelated between neighbouring neurons is shunted, while correlated input is not.
Reference:
1 . Hjorth J, Blackwell KT, Kotaleski JH (2009) Gap junctions between striatal fast-spiking interneurons regulate spiking activity and synchronization as a function of cortical activity. J Neurosci 29:5276-86 [PubMed]
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network; Neuron or other electrically excitable cell; Synapse; Channel/Receptor; Dendrite;
Brain Region(s)/Organism: Basal ganglia;
Cell Type(s): Neostriatum fast spiking interneuron;
Channel(s): I A; I_K,Na;
Gap Junctions: Gap junctions;
Receptor(s):
Gene(s):
Transmitter(s): Gaba; Glutamate;
Simulation Environment: GENESIS; MATLAB;
Model Concept(s): Activity Patterns; Ion Channel Kinetics; Synchronization; Detailed Neuronal Models;
Implementer(s): Hjorth, Johannes [hjorth at csc.kth.se];
Search NeuronDB for information about:  I A; I_K,Na; Gaba; Glutamate;
/
FSGJ_Hjorth2009
genesisScripts
a_channel.g *
ampa_channel.g *
cellMorphology.g *
channels.g
errorHandler.g *
fsConnect.g *
fsInhomogeneNeurons.g *
fsInputFromFile.g
fsInputInject.g *
fsNeuron.g *
fsSomaOutput.g *
gaba_channel.g *
k13_channel.g *
k3132_channel.g *
na_channel.g *
protodefsInhomogene.g
simFsMultiInhomogene.g
simFsMultiInhomogeneCurrentInjection.g
simFsMultiInhomogeneMeasureGJcurrent.g
                            
//
// fsInputFromFile.g
//
// Johannes Hjorth, hjorth@csc.kth.se
// December 2005
//
// Functions to read noise and insignal data from file to timetables
//

// Please note that readInputFromFile assumes that the files are numbered
// from 1 and up, whereas the input naming convention starts from 0

function readInputFromFile(inputName, filePath, fileNum)

    str inputName
    str filePath
    int fileNum

    str inputBasePath = "/input"
    int ctr

    str inputPath = {inputBasePath}@"/"@{inputName}

    if({maxTime} == 0)
        echo "readInputFromFile: Error, maxTime is set to 0"
        quit
    end

    if(!{exists {inputBasePath}})
        create neutral {inputBasePath}
    end

    echo "Reading from "{filePath}" files 1 to "{fileNum}
    echo "Connecting input to "{inputPath}[0]" to "[{{fileNum}-1}]


    for(ctr = 0; ctr < {fileNum}; ctr = ctr + 1)


        create timetable {inputPath}[{ctr}]
        setfield {inputPath}[{ctr}] maxtime {maxTime} \
                                    method 4 \
                                    act_val 1.0 \ 
                                    fname {filePath}{{ctr}+1}

        call {inputPath}[{ctr}] TABFILL

        create spikegen {inputPath}[{ctr}]/spikes

        setfield {inputPath}[{ctr}]/spikes \
                 output_amp 1 thresh 0.5 abs_refract 0.0001

        addmsg {inputPath}[{ctr}] {inputPath}[{ctr}]/spikes \
               INPUT activation
        
    end

end



//////////////////////////////////////////////////////////////////////////////
//
// Connects insignal objects to the synapses of the cells
//
// if the fsNetworkPath ends with [], eg /fs[] then all cells in the /fs
// path will get connected to the insignal specified. If it only says /fs then
// just the first cell /fs[0] will get connected.
//
//////////////////////////////////////////////////////////////////////////////


function connectFsInsignalToCell(fsNetworkPath, fsInsignalPath, channelTypes)

    str fsNetworkPath
    str fsInsignalPath
    str channelTypes

    str fsName, compName

    int insignalCtr = 0 // We assume that there are enough insignals in the path

    str channelType
    int dCtr, densityMax


    if({strlen channelTypes} == 0)
      echo "The function connectFsInsignal"
      echo "has been updated! Please add channelType argument to call."
      echo " "
      echo "eg. connectFsInsignal /fs /insignal \"AMPA GABA \""
      echo " "
      echo "Aborting genesis."
      quit
    end


    foreach fsName ({el {fsNetworkPath}}) // Loop through network cells if []

        // Connect to soma AMPA+GABA, later also NMDA

        foreach channelType ({arglist {channelTypes}}) // Add NMDA later
            echo "Connecting "{channelType}" inputs to "{fsName}" starting at "{fsInsignalPath}" (#"{insignalCtr}")"

            densityMax = {getfield {fsName} somaDensity{channelType}}

            for(dCtr = 0; dCtr < densityMax; dCtr = dCtr + 1)

                // echo "* soma ("{insignalCtr}")

                addmsg {fsInsignalPath}[{insignalCtr}]/spikes \
                       {fsName}/soma/{channelType}_channel SPIKE
                insignalCtr = {insignalCtr + 1}

            end


            // Connect to primary dendrites

            densityMax = {getfield {fsName} primDensity{channelType}}

            foreach compName ({el {fsName}/primdend#} \
                              {el {fsName}/primdend#/prim_dend#})

                for(dCtr = 0; dCtr < densityMax; dCtr = dCtr + 1)

                    // echo "* "{compName}" starting from input "{insignalCtr}

                    addmsg {fsInsignalPath}[{insignalCtr}]/spikes \
                           {compName}/{channelType}_channel SPIKE

                    insignalCtr = {insignalCtr + 1}
                end
            end


            // Connect to secondary dendrites

            densityMax = {getfield {fsName} secDensity{channelType}}

            foreach compName ({el {fsName}/secdend#} \
                              {el {fsName}/secdend#/sec_dend#})

                for(dCtr = 0; dCtr < densityMax; dCtr = dCtr + 1)

                    // echo "* "{compName}" starting from input "{insignalCtr}

                    addmsg {fsInsignalPath}[{insignalCtr}]/spikes \
                           {compName}/{channelType}_channel SPIKE
                    insignalCtr = {insignalCtr + 1}

                end
            end

            // Connect to tertiary dendrites

            densityMax = {getfield {fsName} tertDensity{channelType}}

            foreach compName ({el {fsName}/tertdend#} \
                              {el {fsName}/tertdend#/tert_dend#})

                for(dCtr = 0; dCtr < densityMax; dCtr = dCtr + 1)

                    // echo "* "{compName}" starting from input "{insignalCtr}

                    addmsg {fsInsignalPath}[{insignalCtr}]/spikes \
                           {compName}/{channelType}_channel SPIKE
                    insignalCtr = {insignalCtr + 1}
                end
            end
        end
    end
end

//////////////////////////////////////////////////////////////////////////////


function connectFsInsignal(fsNetworkPath, fsInsignalPath, channelTypes)
  str fsNetworkPath
  str fsInsignalPath
  str channelTypes

  connectFsInsignalToCell {fsNetworkPath}[] {fsInsignalPath} {channelTypes}

end


Loading data, please wait...