Spike is a small numerical toolset that can simulate single neurons and evaluate the resulting spike trains statistically by calculation all sorts of quantities like the firing rate etc. It is build as a library with which you can write your own scripts, it comes, however, with some useful executables ready to use.
- Catch2: unit testing
- doxygen: API documentation
- boost: json file parser, program options and logging
- progress bar
To install Spike, clone the repository by typing
git clone https://git.physik.hu-berlin.de/cheg/master/Spike.git
then create a build directory and build the project using cmake
mkdir -p build/ && cd build
cmake .. && make
One of the out-of-the-box executables is firing_rate
.
Given a .json
input file, this program calculates the firing rate of the neuron.
An example file looks like this:
We try to follow a test-driven development style. To build all tests type
make tests_Spike
and run them with
./tests_Spike
Notes are written in .md
files in the docs/
directory.
Classes and functions are documented in the according .h
files and an API documentation can be generated from them using (inside the docs/doxygen
directory)
doxygen Doxyfile
Details on the implementation are written in .cpp
files.
The master branch should at all times contain a working copy of Spike. New features are added via feature branches. The master is locked, the only way to get code into the master is by merging feature branches, which triggers the CI pipieline to make sure the master is building and passes all tests.
We mostly follow the C++ Core Guidelines. Some important conventions we follow are:
- Use a
.cpp
suffix for code files and.h
for interface files. - Use include guards for all
.h
files. - Document code in the
.h
files. - Only declare functions in headers, write the actual code in the respective
.cpp
file.
Christoph Egerland @egerlanc