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

 Download zip file 
Help downloading and running models
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.
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;
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];
Search NeuronDB for information about:  I A; I_K,Na; Gaba; Glutamate;
% Figure S3
% Run the following matlab scripts:
% Run simulations:
% runTenInhomoFSGJcorrVariationJITTERSaveGJcur.m
% Read data:
% readTenInhomoFSJITTERWithGJcur.m
% Make the frequency curves:
% makeTenInhomoFScorrVarJITTER.m
% Make current through GJ figs:
% makeSpikeCenteredGJcurPlotJITTER.m

close all

nonCon = find(numGaps == 0);
GJcon = find(numGaps == 15);

randSeedNC = randSeed(nonCon);
randSeedGJ = randSeed(GJcon);

ujitterDt = unique(jitterDt);

% Remove randseeds that are not completed
uRandSeed = setdiff(randSeed, ...
                    setdiff(randSeed, ...

cellCtr = ones(length(ujitterDt),1);                     

clear refFreq GJfreq

for uIdx = 1:length(uRandSeed)
  refIdx = find(randSeed == uRandSeed(uIdx) & numGaps == 0);
  GJidx = find(randSeed == uRandSeed(uIdx) & numGaps == 15);
  if(isempty(setdiff(ujitterDt, jitterDt(refIdx))) ...
      & isempty(setdiff(ujitterDt, jitterDt(GJidx))))
    % All pMix values are in this run, use it.  

    for jIdx = 1:length(ujitterDt)
      refPidx = refIdx(find(jitterDt(refIdx) == ujitterDt(jIdx)));
      GJPidx = GJidx(find(jitterDt(GJidx) == ujitterDt(jIdx)));
      for i=1:numCells(refPidx)
        c = cellCtr(jIdx);
        refFreq(jIdx,c) = firingFreq(refPidx,i);
        GJfreq(jIdx,c) = firingFreq(GJPidx,i);
        cellCtr(jIdx) = c + 1;

meanFreqRef = mean(refFreq,2);
meanFreqGJ = mean(GJfreq,2);
stdMeanFreqRef = std(refFreq,0,2) / sqrt(size(refFreq,2)-1);
stdMeanFreqGJ = std(GJfreq,0,2) / sqrt(size(GJfreq,2)-1);

p(1) = bar(ujitterDt*1e3,meanFreqRef,'r'); hold on
set(p(1),'facecolor',[144 144 254]/255)

p(2) = bar(ujitterDt*1e3,meanFreqGJ,0.65, 'k');
z = zeros(size(-stdMeanFreqGJ));

errorbar(ujitterDt*1e3,meanFreqGJ,z,stdMeanFreqGJ, 'k.')
legend(p,'Unconnected', ...
         'Gap junction','Location','Best');

xlabel('Jittering (\sigma ms)','FontSize',20)
ylabel('Frequency (Hz)','FontSize',20)
title('Gap junctions filter uncorrelated input','FontSize',24)
set(gca, 'xtick', ujitterDt*1e3)
set(gca, 'fontsize',20)
a = axis; a(1) = -1; a(2) = max(ujitterDt)*1e3+1; axis(a)

box off

saveas(p(1), 'FIGS/FS-freq-GJ-popCorrVarJITTER.fig', 'fig');


px(1) = plot(ujitterDt*1e3,meanFreqRef,'r-','linewidth',2); hold on
px(2) = plot(ujitterDt*1e3,meanFreqGJ,'k-','linewidth',2);

errorbar(ujitterDt*1e3,meanFreqGJ,-stdMeanFreqGJ,stdMeanFreqGJ, 'k.')
legend(px,'Unconnected', ...
         'Gap junction','Location','Best');

xlabel('\sigma of jittering (ms)','FontSize',20)
ylabel('Frequency (Hz)','FontSize',20)
title('Gap junctions filter uncorrelated input','FontSize',24)
set(gca, 'xtick', ujitterDt*1e3)
set(gca, 'fontsize',20)
a = axis; a(1) = -1; a(2) = max(ujitterDt)*1e3+1; axis(a)

box off

saveas(px(1), 'FIGS/FS-freq-GJ-popCorrVarJITTER-curves.fig', 'fig');

Loading data, please wait...