Striatal NN model of MSNs and FSIs investigated effects of dopamine depletion (Damodaran et al 2015)

 Download zip file 
Help downloading and running models
Accession:169984
This study investigates the mechanisms that are affected in the striatal network after dopamine depletion and identifies potential therapeutic targets to restore normal activity.
Reference:
1 . Damodaran S, Cressman JR, Jedrzejewski-Szmek Z, Blackwell KT (2015) Desynchronization of fast-spiking interneurons reduces ß-band oscillations and imbalance in firing in the dopamine-depleted striatum. J Neurosci 35:1149-59 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network; Neuron or other electrically excitable cell; Axon; Dendrite;
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): I Sodium; I Potassium; Kir;
Gap Junctions: Gap junctions;
Receptor(s): D1; D2; GabaA; Glutamate;
Gene(s):
Transmitter(s): Gaba; Glutamate;
Simulation Environment: GENESIS;
Model Concept(s): Synchronization; Detailed Neuronal Models; Parkinson's;
Implementer(s): 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; D1; D2; GabaA; Glutamate; I Sodium; I Potassium; Kir; Gaba; Glutamate;
/
DamodaranEtAl2015
Matlab_files
Inputwithcorrelation.asv *
Inputwithcorrelation.m *
InputwithCorrelation2.m *
makeDaughterInput.m *
makeDaughterInsignal.m *
makeTrainInput.m *
makeTrainInsignal.m *
poissonMaxTime.m *
writeInput.asv *
writeInput.m *
                            
%
% Generates 2Hz square waves with 0.5 dutycycle.
%

function insignal = makeTrainInsignal(corr_syn, nSyn, ...
                                      upFreq, downFreq, maxTime)

  nShare = nSyn - sqrt(corr_syn)*(nSyn-1);

  baseFreq = 2.5;
  dutyCycle = 0.5;
  
  stateTime = dutyCycle/baseFreq;
  
  
  for i=1:nShare

    isUpstate = 1; % Start with upstate
    startTime = 0;

    trainSpikes{i} = [];
    
    for startTime = 0:stateTime:(maxTime-stateTime)

      if(isUpstate)
          curFreq = upFreq;          
      else
          curFreq = downFreq;          
      end
      
      trainSpikes{i} = [trainSpikes{i}; ...
                        startTime + poissonMaxTime(curFreq, stateTime)];
      
      isUpstate = ~isUpstate;
      
    end          
         
  end
  
  allSpikes = [];
  
  for i=1:nShare
      allSpikes = [allSpikes; trainSpikes{i}];
  end
  
  % Sortera spikarna!
  allSpikes = sort(allSpikes);
  
 % disp('total antal spikar     unika')
 % [length(allSpikes) length(unique(allSpikes))]

  for i=1:nSyn
    finalSpikes{i} = [];
  end
  
  for i=1:length(allSpikes)
     repeats = nSyn / nShare;
     repeats = floor(repeats) + (rand(1) < mod(repeats,1));

     freeTrains = 1:nSyn;
     
     for j=1:repeats
         idx = ceil(length(freeTrains)*rand(1));
         trainIdx = freeTrains(idx);
         freeTrains(idx) = [];
         
         finalSpikes{trainIdx} = [finalSpikes{trainIdx}; allSpikes(i)];
     end     
  end

  
  for i=1:nSyn
     trainLen(i) = length(finalSpikes{i}); 
  end

  maxLen = max(trainLen); 
  insignal = inf*ones(maxLen,nSyn);

  for i=1:nSyn
     insignal(1:length(finalSpikes{i}),i) = finalSpikes{i}; 
      
  end