COPASI: biochemical network simulator
COPASI is a software application for simulation and analysis of biochemical networks and their dynamics. COPASI is a stand-alone program that supports models in the SBML standard and can simulate their behavior using ODEs or Gillespie's stochastic simulation algorithm; arbitrary discrete events can be included in such simulations.
COPASI carries out several analyses of the network and its dynamics and has extensive support for parameter estimation and optimization. COPASI provides means to visualize data in customizable plots, histograms and animations of network diagrams. (list of features).
Follow us on Twitter.
Precompiled versions of COPASI are available for all operating systems on the COPASI Homepage.
COPASI's sources are available from our github repository. These sources are written in standard C++ and will compile on Linux, OS X and Windows.
To start compiling COPASI we recommend to use the copasi-dependencies package.The dependency package compiles all the dependencies
necessary for COPASI, they include
SBW as well as the Qt libraries
Qt MML widget. Instructions for building the dependencies are described
Once the dependencies have been built, COPASI is easily compiled using CMake:
git clone https://github.com/copasi/COPASI mkdir build_copasi cd build_copasi cmake -DBUILD_GUI=OFF -DCMAKE_INSTALL_PREFIX=~/copasi -DCOPASI_DEPENDENCY_DIR=../copasi-dependencies/bin ../COPASI make make install
In the above
../copasi-dependencies/bin is the location of the build folder of the compiled
copasi-dependencies. The option
BUILD_GUI=OFF builds only the
command line version of COPASI (aka
CopasiSE). To build the graphical
CopasiUI), and having Qt 4 or 5 installed, the option would
need to be
BUILD_GUI=ON. In that case you'd additionally provide an option
SELECT_QT=Qt4) for COPASI to look for the Qt libraries. (To help finding the Qt version you selected, you should specify the
Qt5_DIR=<dir> variable to point to the
lib/cmake/Qt5 directory of the Qt5 installation. Alternatively for Qt4 you can set the
QT_DIR=<dir> variable to point to your Qt4 installation.)
CMAKE_INSTALL_PREFIX=~/copasi specifies, that COPASI ought to be installed in the current users home directory in a subfolder
copasi. The path
../COPASI is the source directory of COPASI that has been created by the git clone command in the first statement.
There are many more compile options available, options for building the language bindings as well as options to enable some experimental features that are not yet available in the stable builds that are released publicly. To view the complete set of options, start the graphical cmake frontend in the continuing from the above command this would be done with:
The correct version number
The COPASI version number you will see in your application is generated during the build process. For this to work we install git hooks, so it gets updated automatically, by running:
once from the COPASI source dir (which will set up the paths to astyle, gawk, dos2unix and wget). This helps us keep commits formatted correctly from different operating systems. Once that is set up, a call to:
will update the
<copasi/CopasiVersion.h> to match that of the selected branch. That
Linking a C++ program against the COPASI API
To link your own program against the COPASI C++ API you would first build COPASI as described above however, with an additional CMake option
-DCOPASI_INSTALL_C_API=ON. Thus the full configure / make / install commands from above would be:
git clone https://github.com/copasi/COPASI mkdir build_copasi cd build_copasi cmake -DCOPASI_INSTALL_C_API=ON -DBUILD_GUI=OFF -DCMAKE_INSTALL_PREFIX=~/copasi -DCOPASI_DEPENDENCY_DIR=../copasi-dependencies/bin ../COPASI make make install
Now additionally to the COPASI SE executable being built, also all COPASI header files and the COPASI (static) library will be installed into the
CMAKE_INSTALL_PREFIX (thus in the example above header files will end up in
~/copasi/include and libraries in
~/copasi/lib). We also export a CMAKE configuration that you can import for your own CMAKE projects. That way you only need to add a line like:
find_package(libCOPASISE-static CONFIG REQUIRED)
CMakeLists.txt file of your project. And later link your project against
libCOPASISE-static. This will then automatically link against all the libraries that the COPASISE library was linked against. In order for CMake to find the configuration you would either have to include the
lib/cmake folder of your install prefix into your projects
CMAKE_PREFIX_PATH variable or specify an option
libCOPASISE-static_DIR with the folder of the config file when configuring your project. For the prefix specified above this would be:
The gist of a complete example CMakeList.txt is also available.