Software¶
System Requirements¶
Stride is written in C++ and portable over all platforms that have the GNU C++ compiler. De software has no dependencies on external libraries. The following tools needs to be installed:
- g++
- make
- CMake
- Boost
- Python (optional, for automatization)
- Doxygen (optional, for documentation)
- LaTeX (optional, for documentation)
- Sphinx (optional, for documentation)
- Nodejs, npm, electron and electron-packager (optional, for visualization)
Installation¶
To install the project, first obtain the source code by cloning the repository to a directory or download a zip file with all project material from the Bitbucket website and de-compress the archive. The build system for Stride uses the CMake tool. This is used to build and install the software at a high level of abstraction and almost platform independent (see http://www.cmake.org/). The project includes the conventional make targets to “build”, “install”, “test” and “clean” the project. There is one additional target “configure” to set up the CMake/make structure that will actually do all the work. For those users that do not have a working knowledge of CMake, a front end Makefile has been provided that invokes the appropriate CMake commands. More details on building the software can be found in “INSTALL.txt” in the source folder.
Documentation¶
The Application Programmer Interface (API) documentation is generated automatically using the Doxygen tool (see www.doxygen.org) from documentation instructions embedded in the code .
The user manual distributed with the source code has been written in LaTeX (see www.latex-project.org).
Directory layout¶
The project directory structure is very systematic. Everything used to
build the software is stored in the directory ./src
:
src/main
: Code related files (sources, third party libraries and headers, ...)
src/main/<language>
: source code, per coding language: cpp (for C++), python, R, ...src/main/resources
: third party resources included in the projectsrc/doc
: documentation files (API, manual, ...)
src/doc/doxygen_ref_man
: files needed to generate the reference documentation with Doxygensrc/doc/user_man
: files needed to generate the user manual with Sphinxsrc/test
: test related files (scripts, regression files, ...)
File formats¶
The Stride software supports different file formats:
- CSV
- Comma separated values, used for population input data and simulator output.
- HDF5
- Hierarchical Data Format 5, designed to store and organize large amounts of data.
- JSON
- JavaScript Object Notation, an open standard format that uses human-readable text to transmit objects consisting of attribute-value pairs.
- TXT
- Text files, for the logger.
- XML
- Extensible Markup Language, a markup language (both human-readable and machine-readable) that defines a set of rules for encoding documents.
Testing¶
Unit tests and install checks are added to Stride based on Google’s gtest framework. In addition, the code base contains assertions to verify the simulator logic. They are activated when the application is built in debug mode and can be used to catch errors at run time.
Results¶
The software can generates different output files:
- cases.csv
- Cumulative number of cases per day.
- person.csv
- Individual details on infection characteristics.
- logfile.txt
- Details on transmission and/or social contacts events.