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
FIGS5
BlueGene
FIGS
INDATA
UTDATA
a_channel.g *
a_channel_MOD.g
ampa_channel.g *
channelsMOD.g
channelsSobol.g
channelsSobolSynch.g
checkAllEqual.m *
findSpikes.m *
fsConnect.g *
fsInhomogeneNeurons.g *
fsInputFromFile.g
fsInputInject.g *
fsNeuron.g *
fsSomaOutput.g *
gaba_channel.g *
inspectTrace.m
k13_channel.g *
k13_channel_MOD.g
k3132_channel.g *
k3132_channel_MOD.g
makeAllSynapticInput.m
makeCorrPairFigure.m
makeDaughterNoise.m *
makeFSMorph.m
makeFSMorphMOD.m
makeFSrandomNetwork.m
makeShuffleCorrCrossCorr.m
makeShuntingSensitivityFigure.m
makeTrainNoise.m *
na_channel.g *
na_channel_MOD.g
poissonMaxTime.m *
protodefs.g
protodefsInhomogene.g
protodefsMOD.g
protodefsSobol.g
protodefsSobolSynch.g
readTenFSsensitivity.m
readTenFSsensitivityOLD.m
runFSsensitivity.m
runTenFSsensitivity.m
simFourFSsaveGJcur.g
writeFSMODinfo.m
writeInput.m *
writeSobolSynchInfo.m
                            
% [gapSrc, gapDest, conMat] = makeFSrandomNetwork(numFS, numGJ)
%
% This function generates the random GJ connections for a FS network
% numFS is the number of FS connections
% FSidx is the index of the FS neurons to connect, eg. 0:2:20
% numGJ is the number of GJ per FS
%
% Use showFSnetwork(conMat) to visualize connections.

function [gapSrc, gapDest, conMat] = makeFSrandomNetwork(FSidx, numGJ)

if(length(FSidx) == 1)
  disp('makeFSrandomNetwork has changed, now requires index of neurons')
  FSidx = (1:FSidx)-1;
end
  
numFS = length(FSidx);

validMatrix = 0;
randCtr = 0;

while(~validMatrix && randCtr < 100) 

  conMat = zeros(numFS,numFS);
  validCons = ones(numFS,numFS);
  validCons = validCons - diag(diag(validCons));

  conNum = 1;

  while(nnz(validCons) > 0)
    validId = find(validCons);
    id = ceil(length(validId)*rand);
  
    conMat(validId(id)) = conNum;
    validCons(validId(id)) = 0;
  
    [y,x] = find(conMat == conNum);

    % Connections are symmetrical
    conMat(x,y) = conNum;
    validCons(x,y) = 0;
  
  
    % Take away the connections that are no longer possible
    % No diagonal elements
    % Row sum must be numGJ, same with column sum

    if(nnz(conMat(:,y)) >= numGJ)
       validCons(:,y) = 0; 
    end

    if(nnz(conMat(:,x)) >= numGJ)
      validCons(:,x) = 0; 
    end

    if(nnz(conMat(x,:)) >= numGJ)
      validCons(x,:) = 0;
    end

    if(nnz(conMat(y,:)) >= numGJ)
      validCons(y,:) = 0;
    end
  
    conNum = conNum + 1;
  
    % conMat
    % validCons
    % keyboard
  
  end

  if(nnz(conMat) == numFS*numGJ)
    validMatrix = 1; 
  else
    randCtr = randCtr + 1;  
  end

end  

if(nnz(conMat) ~= numFS*numGJ)
  disp(['Warning, should have ' num2str(numFS*numGJ) ' connections ' ...
        'but only have ' num2str(nnz(conMat))])    
  keyboard
end

GJctr = zeros(numFS,1);

for i=1:max(conMat(:))
  % Symmetric matrix, since GJ are two way connections
  [x,y] = find(conMat == i);
  
  x = x(1);
  y = y(1);
  
  % We number the neurons 1 to n in matlab, but genesis uses 0 to (n-1)
  %gapSrc{i} = ['/fs[' num2str(x-1) ']/primdend' num2str(GJctr(x)+1)];
  %gapDest{i} = ['/fs[' num2str(y-1) ']/primdend' num2str(GJctr(y)+1)];
  gapSrc{i} = ['/fs[' num2str(FSidx(x)) ']/primdend' num2str(GJctr(x)+1)];
  gapDest{i} = ['/fs[' num2str(FSidx(y)) ']/primdend' num2str(GJctr(y)+1)];
  
  GJctr(x) = mod(GJctr(x),3)+1;
  GJctr(y) = mod(GJctr(y),3)+1;
  
end


Loading data, please wait...