Dynamic dopamine modulation in the basal ganglia: Learning in Parkinson (Frank et al 2004,2005)

 Download zip file 
Help downloading and running models
See README file for all info on how to run models under different tasks and simulated Parkinson's and medication conditions.
1 . Frank MJ (2005) Dynamic dopamine modulation in the basal ganglia: a neurocomputational account of cognitive deficits in medicated and nonmedicated Parkinsonism. J Cogn Neurosci 17:51-72 [PubMed]
2 . Frank MJ, Seeberger LC, O'reilly RC (2004) By carrot or by stick: cognitive reinforcement learning in parkinsonism. Science 306:1940-3 [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: Basal ganglia;
Cell Type(s): Neostriatum medium spiny direct pathway GABA cell;
Channel(s): I Na,t; I K,leak; I Cl,Ca;
Gap Junctions:
Receptor(s): D1; D2; Glutamate; Gaba;
Transmitter(s): Dopamine; Gaba; Glutamate;
Simulation Environment: Emergent/PDP++;
Model Concept(s): Simplified Models; Synaptic Plasticity; Pathophysiology; Rate-coding model neurons; Parkinson's; Reinforcement Learning; Action Selection/Decision Making; Hebbian plasticity;
Implementer(s): Frank, Michael [mfrank at u.arizona.edu];
Search NeuronDB for information about:  Neostriatum medium spiny direct pathway GABA cell; D1; D2; Glutamate; Gaba; I Na,t; I K,leak; I Cl,Ca; Dopamine; Gaba; Glutamate;
#!/usr/local/bin/css -f

float SEM(float* vals, float avg, int n) {
  float sd = 0;
  int i;
  for(i=0;i<n;i++) {
    float d = vals[i] - avg;
    sd += d * d;
  return sqrt(sd / (float)(n-1)) / sqrt(n);

void Anal(String fnm) {
  fstream istrm;
  istrm.open(fnm, ios::in);

  fstream ostrm;
  ostrm.open(fnm + ".dt", ios::out);

  float sse[1000];
  int i;

  while(!istrm.eof() && istrm.good()) {
    String_Array& col = ReadLine(istrm);
    if(istrm.eof() || istrm.bad()) break;
    sse[i]=8.33*col[3]; // convert from errors out of 12 to percent

  for (i=0;i<1000;i++)

    ostrm << "_D:" << "\t" << 10*(i%20) << "\t" << sse[i] << "\n";
  cout << fnm << ".dt:\n";
  system("more " + fnm + ".dt");
  cout << "\n";

void Main() {
  int i;
  for(i=1;i<argc;i++) {