| 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)
|
|
|
Web links to a model associated with the paper
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
- Install it following their instructions
- In Matlab, run mex -setup, let it search for compilers, and
ask for the Borland compiler when it gives you that option
- Change all the files in our model that end in ".cc" to ending
in ".cpp"
- 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.)
- Change in ccspikesim.cpp all drand48() to the following:
(double(rand())/(RAND_MAX+1.0))
- Phew! You're done. Compile (as per Tutorial.m with .cc changed to .cpp) and, hopefully, enjoy.
| |