assoc-neural-oscs
is a collection of programs which simulate and explore the ability of neural oscillators to "remember" phase associations amongst themselves. Specifically, the programs study Pyramidal-Interneuron gamma-frequency oscillators (PING oscillators), which resemble networks found in the cortex and hippocampus. For more information on the neuroscience behind the project, see the literature review which discusses the theory which inspired the code.
Each numbered folder (2/2_1, 2/2_2, etc) correspond to the numbered sections of the "Results" section of the paper (in progress). To run the code generating the figures in the paper, navigate into the corresponding numbered directories.
In addition to code in the main numbered directories, there are tester routines for most of the utility functions in utils
, and there are many math and neuroscience-related utilities in the /utils
folder, which are used by the functions in the main folders, but which may be useful individually.
The project is written in C, so gcc
and make
are required to compile the code. Generally each leaf directory will have a makefile, so you can simply navigate into any leaf directory and run
$ make
to compile the code in that directory.
Compiling the code in a numbered directory using make
will generate a single executable, which can be executed by running
$ ./executable_name
The routines output data into ascii text files, so you can use your preferred graphing utility. Alternatively, you can use the provided python plotting tools in /graphing
. To use these tools you will need python installed, along witht the python packages numpy
and matplotlib
The data produced by the routines in the main numbered folders can be plotted by running that folder's plot routine:
$ python plotter.py
To compile, run, and plot all at once, you can just navigate into a main numbered leaf directory and run the command
$ ./run.sh
This will compile the code, and, if successful, execute the code, and, if succesful (and if you have python installed) plot the code using the provided plotting utilities.
Some of the routines are multithreaded to take advantage of multiprocessor machines. By default, the multithreaded routines run with 4 threads. However, if you would like to optimize for your machine(s), you can change the number of threads by changing the value of NUM_THREADS in /utils/multithreads/multithreads.h
.
Copyright (C) 2012 Brendan Hasz
www.cs.brandeis.edu/~bhasz/main.php
Brandeis University, Waltham, MA, USA