SenseLab Home ModelDB Home

Neural model of two-interval discrimination (Machens et al 2005)
Accession: 50656
Two-interval discrimination involves comparison of two stimuli that are presented at different times. It has three phases: loading, in which the first stimulus is perceived and stored in working memory; maintenance of working memory; decision making, in which the second stimulus is perceived and compared with the first. In behaving monkeys, each phase is associated with characteristic firing activity of neurons in the prefrontal cortex. This model implements both working memory and decision making with a mutual inhibition network that reproduces all three phases of two-interval discrimination. Machens, C.K., Romo, R., and Brody, C.D. Flexible control of mutual inhibition: a neural model of two-interval discrimination. Science 307:1121-1124, 2005.
Reference: Machens CK, Romo R, Brody CD (2005) Flexible control of mutual inhibition: a neural model of two-interval discrimination. Science 307:1121-4 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type:  Connectionist Network;
Brain Region(s)/Organism:  Prefrontal cortex (PFC);
Cell Type(s):   
Channel(s):   
Gap Junctions:  
Receptor(s):  
Gene(s):  
Transmitter(s):  
Simulation Environment:  MATLAB (web link to model);
Model Concept(s):  Action Selection/Decision Making; Maintenance;
Implementer(s):  
Model files (located externally to ModelDB) Help downloading and running models

Web links to a model associated with the paper

Machens, C.K., Romo, R., and Brody, C.D. Flexible control of mutual inhibition: a neural model of two-interval discrimination. Science 307:1121-1124, 2005.

Model code is here
http://www.cshl.org/labs/brody/Papers/Brody/machens_romo_brody_science_matlab_code.zip
and here http://www.sciencemag.org/content/vol307/issue5712/images/data/1121/DC1/Machens.Matlabcode.SOM.zip

Supplementary information is here
http://www.cshl.org/labs/brody/Papers/Brody/machens_romo_brody_science_suppinfo.pdf and here
http://www.sciencemag.org/cgi/data/307/5712/1121/DC1/1

A "perspective" document is here http://www.cshl.org/labs/brody/Papers/Brody/machens_romo_brody_science_perspective.pdf

The model runs as is under linux/unix installations of Matlab.
For Windows the following changes need to be applied:
The default compiler shipped with Windows Matlab is a C compiler, not a C++ compiler.
You can get a free C++ compiler, the Borland C++ Builder 5.5, at
http://community.borland.com
To use the Borland compiler, you'll have to
  1. Install it following their instructions
  2. In Matlab, run mex -setup, let it search for compilers, and ask for the Borland compiler when it gives you that option
  3. Change all the files in our model that end in ".cc" to ending in ".cpp"
  4. In the aforementioned .cpp files, insert this line to be the first line:

    #include <stdlib.h>

    (For reasons I completely don't understand, if that is before the #include "mex.h" line, everything works, but if the mex.h line is the first one, the compiler chokes. Don't worry about having the stdlib.h line both before and after the mex.h line, that is ok. As long as there is a copy of the stdlib.h line before the mex.h one, we are in business.)
  5. Change in ccspikesim.cpp all drand48() to the following: (double(rand())/(RAND_MAX+1.0))
  6. Phew! You're done. Compile (as per Tutorial.m with .cc changed to .cpp) and, hopefully, enjoy.

ModelDB Home  SenseLab Home   Help
Questions, comments, problems? Email the ModelDB Administrator
How to cite ModelDB
This site is Copyright 2012 Shepherd Lab, Yale University