Initial run instructions
These are instructions for setting up the software for an initial run
CARLsim installation
Users need to install the branch named “ca3net” (aka the Hippocampome of CSTP branch) of CARLsim6 (link) to run this simulation. This was required at the time this documentation was made. Possibly, the Hippocampome branch will be merged with the main branch in the future but there is further development to be done before that. Some conditions should be known about using the hippocampome branch.
A quick overview is:
* COBA is enabled by default and should always be used (see issue #27).
* Do not include setConductances() in a line of code (see issue #27).
* setSTP() needs to be set to “true” for any synaptic connection to work (see issue #27). The 9-parameter and not 3-parameter version of setSTP() should be used.
* Spike generator code may not work (see issue #29).
* If using a refractory period (e.g., setting its value to 1 or more in setNeuronParameters()) then a user should only use the RUNGE_KUTTA4 integration method (see issue #24).
* In connect() and other synaptic connection statements a user should only use a delay of 1 (see issue #20). Setting connection delays greater than one are allowed in the CSTP branch unlike in the main branch CARLsim code. However, there is indicated to be bugs with any delay greater than 1 so that should not be used.
* Grid3D neuron sizes are not processed correctly (see issue #18).
* Only the GPU version of CARLsim’s processing should be used. For example, when including sim(), a user should only use GPU_MODE not CPU_MODE (see issue #18). Code for the Hippocampome features has only been developed for GPUs and will not work correctly with CPU.
* Only use CARLsim6 not a different CARLsim version (see issue #18). The code has not been developed for any other version.
While these issues exist, a user can just avoid using code that they instruct to avoid, and experiments such as those in the article can be performed correctly.
Directory structure
Some additional folders will need to be created that are omitted from the Github files to save storage space. The directories for the project should be (”*” represents a new directory):
Project directory:
/build_dir *
/data
/output *
/output/spikes *
/results *
/scripts
/scripts/videos *
/src
/standalone
The new directories should be located in a place in a user’s hard drive where sufficient space for up to gigabytes of results will be stored. Standard running of the simulation will only produce limited megabytes of results output. Running the simulation with neuron monitors that record voltage and current for up to 128 neurons, including running the simulation for hours of simulated time, can result in large results files being created. Users can choose a storage folder for such large data on their machines and create softlinks to the folders in the simulation project directory so that the data will be stored appropriately. This can be especially useful when multiple copies of this project are created for running seperate experiments and a storage location is wanted where sufficient space is availible.
The build_dir directory should be a softlink to were the build directory (as opposed to the project directory) is located for the project in CARLsim.
The output directory will store virtual animal movement position records. A subdirectory “spikes” will be required to be made in this directory. A softlink can be made to where this directory should be stored on a user’s computer.
The results directory will store output files such as spike recordings and neuron reader output. A softlink should be made to where this is located.
The videos directory will store plot videos created by the Matlab software. It can be a softlink to another storage directory.
Build directory:
/data *
/output *
/results *
The data directory should be a softlink to the data folder in the project directory.
The output and results directories should be the same softlinks as in the project folder. A user has the option of making these folders located in the build directory instead of softlinks to another storage location if wanted.
File structure
Some additional files are needed than what are included in the Github files, and those were omitted to save storage space. Additional files needed:
/data/anim_angles.cpp *
/data/anim_angles.csv *
/data/anim_speeds.cpp *
/data/anim_speeds.csv *
/data/ext_dir.cpp
/data/ext_dir_initial.cpp
/data/ext_dir_initial_rot_l.cpp
/data/ext_dir_initial_rot_r.cpp
/data/grc_to_in_conns.csv *
/data/init_firings.cpp
/data/synapse_weights.csv *
anim_angles.cpp, anim_angles.csv, anim_speeds.cpp, and anim_speeds.csv are reformatted data files that store data on animal movement speeds and angles.
grc_to_in_conns.csv is a file that lists which GrC -> IN layer connections should be present. It can be automatically generated by the simulation but saves time in running the software for it to be precomputed.
synapse_weights.csv is a file that likes weight values for IN -> GrC connections. It is generated through a Matlab weight distribution builder script.
New project
A new CARLsim project should be created for this software. A script is provided to automate the creation of the project. Instructions for creating a project are in the “new CARLsim project” documentation.
Animal data
Note: “import_animal_data” in general_params.cpp should be set to “#define import_animal_data 0” if real animal data is not included for the software. Otherwise, a file import error will occur.
Building required files
See the building required files documentation to build files needed to run the simulation.
Data directory link
A user should create a softlink to the data directory in the project folder in CARLsim’s build folder. In linux this can be done by:
$ ln -s project_data_directory build_directory
Output directory
In the build folder a directory named “output” is needed. That folder needs to have a directory named “spikes” in it.
Output, results, and build_dir links
The project folder must contain links named “output” and “results” to folders with those same names in the build directory. Some scripts may require a softlink named “build_dir” in the project directory that links to the build directory.