Welcome to the CAMPARI home page!
We are proud to introduce the fifth official version of CAMPARI (V5).
In addition to numerous smaller changes and improvements, this version of CAMPARI extends
its predecessor (V4) by the addition of an original output and input format for trajectories
(based on PostgreSQL) that aims
to create a way to store and access simulation trajectories in a way that is more compliant
with FAIR principles than the established formats, see the description of the standard
here. This requires linking to libpqxx,
which is the "most official" programmatic interface into PostgreSQL. The second large addition is an interface
that allows user-created Python code to operate on data structures exposed by CAMPARI for this
purpose, most commonly to perform analyses that are not built into CAMPARI (see
the new Tutorial 18 for this). Unlike most Fortran-Python
links, here the Python code is subordinate, meaning it is not a CAMPARI API exposed to
Python but a general Python programming interface within CAMPARI for taking advantage of CAMPARI's abilities in
working with and generating molecular simulation data. This type of link relies on Elias Rabel's
ForPy, which is included with CAMPARI (in a minimally modified form).
Third, the interoperability with data created by other simulation software packages has been improved further, and CAMPARI now natively
supports general triclinic simulation containers (with rigorous nearest image evaluations in periodic
boundaries) and fluctuating volumes in trajectory analyses. Both of these used to be restrictions,
and the new Tutorial 17 illustrates the use of these features. This
also includes numerous robustness and compatibility enhancements in dealing with naming conventions
and unsupported residues. Fourth and last, we have included new network-based analyses into
the existing graph-based analysis module to extend the already existing calculations of committor probabilities
with pathway decomposition approaches (something known as transition path theory). This is explained
in detail in the new Tutorial 19.We have also implement a number of improvements elsewhere:
- Much better auxiliary tools: the sequence generator, the automatic patch file creator for CHARMM parameters, and the key-file builder have all been overhauled.
- Many additional name translations for structural input files, including new options (see here for the latter).
- Better robustness in small molecule screens regarding parameter assigments, see changes in Tutorial 16.
- Better management of investment of computing time in small molecule screens, see changes in Tutorial 16.
- Better rebuilding of missing N-terminal (or 5'-terminal) tails when the first, structurally resolved residue misses backbone atoms.
- Computation of full matrices of mean first-passage times (see here).
- Keyword-based adaptation of geometries of rigid water molecules (see for example, here).
- Better performance tuning for the OpenMP parallelization (see here).
As most functionalities of CAMPARI since the third version benefit from an OpenMP threads parallelization, the software is well-suited to run on the modern computing resources of today, which routinely feature tens of cores in a single shared-memory node, thereby extending the range of applicability of CAMPARI into large and dense systems while maintaining reasonable production rates. Because of our development model, CAMPARI does not strive to compete with pure performance-optimized codes like GROMACS but rather maintains its established philosophy, that is, to rigorously support and maintain a wide array of methods and analysis tools "under the same hood."
It is our continued hope that the tools we provide for the molecular simulations of biological systems and their analysis can be as useful to other users as they are to us. We believe that CAMPARI populates a relevant niche due to its unusual layout, internal structure (explicit and system-specific support for biological macromolecules at many levels), the wide class of supported algorithms, its extensive documentation (including tutorials, many of which have been revised and extended, and three completely new ones have been added in V5), and the reference implementation of the ABSINTH implicit solvent model and force field paradigm.
If you are new to this software and/or this documentation, please refer to the documentation overview page. From there, you will be able to obtain an idea of the basic workings of CAMPARI, and you will be directed to the remainder of the comprehensive documentation. Note that a few links may not work in the web-version of the documentation found at campari.sourceforge.net. In that case, please refer to a local copy obtained by downloading the package.
Some of the features built into CAMPARI include:
(Incomplete) overview of features supported by CAMPARI V5:
- Flexible Monte Carlo sampling of biopolymers in internal coordinate / rigid-body space
- Minimization and dynamics-based sampling (MD/LD in NVE/NVT) in internal coordinate / rigid-body space
- Ability to define constraints in internal coordinate / rigid-body space at the resolution of individual degrees of freedom
- Cartesian space minimization and dynamics-based sampling (MD/LD in NVE/NVT) including support for custom sets of holonomic constraints
- Hybrid sampling algorithms combining Monte Carlo and dynamics methods
- OpenMP-based shared memory parallelization of all supported samplers (with the exception of very few Monte Carlo move types)
- Ported parameters and paradigms for major force fields such as CHARMM22/27/36, AMBER94/99/03, OPLS-AA/L, or GROMOS53a5/6
- Full support and control of the ABSINTH implicit solvation model and underlying force field paradigm
- Near-complete control over Hamiltonian through tuning of intrinsic parameters via simple keywords as well as file-based patches, e.g., to support residues CAMPARI does not recognize natively
- Simulations of arbitrary systems based on 3D input geometries by means of extensive patch facilities to all energy terms
- Support for droplet and periodic boundary conditions with standard long-range electrostatic corrections such as particle-mesh Ewald or reaction field methods
- Very wide support for replica-exchange simulations (available in multidimensional form in Hamiltonian space) with explicit support for free energy calculations
- Hybrid MPI/OpenMP parallelism for multi-replica simulations: inter-replica communication via MPI and speed-up of individual replicas by OpenMP
- Full support for the Progress Index-Guided Sampling (PIGS) method
- Wang-Landau sampling in Monte Carlo simulations in energy or reaction coordinate space
- Support for sculpting of energy landscapes (commonly known as "accelerated molecular dynamics") for all samplers
- Different biasing potentials to global secondary structure content, polymeric properties or to individual geometric variables
- Bias potentials acting directly on Cartesian coordinate to create compartments (multi-phase systems) and compute transfer free energies
- Support for arbitrary tabulated potentials (spline-based) and density restraints (spatial)
- Molecule builder for polypeptides, polynucleotides, and various small molecules without the requirement to provide any structural or geometric input
- Built-in analysis routines pertaining to polymeric properties (e.g., simulated scattering data), structural properties (e.g., secondary structure assignment for polypeptides according to DSSP), solution structure (e.g., arbitrary pair correlation functions), and many more (with the ability to perform these analyses "on-the-fly")
- User-defined analysis routines can be executed by CAMPARI through its Python interface
- Various clustering algorithms operating on a large selection of possible coordinates, some with parallel (OpenMP) support
- An entire toolkit dedicated to network (Markov state) models and their analysis (committor probabilities, steady states, etc.)
- Implementations of published algorithms, e.g., for data mining, tree-based clustering, J. Chem. Theor. Comput. 8 (3), 1108-1120 (2012), kinetic partitioning, Comput. Phys. Comm. 184 (11), 2446-2453 (2013), automatic feature selection, J. Chem. Theor. Comput. 11 (11), 5481-5492 (2015), MSM-based reweighting, J. Chem. Phys., 150 (10), 104105 (2019); for simulation methodology, analysis of spatial density maps by equilibrium sampling, Structure 22 (1), 156-167 (2014), dynamics in mixed rigid body and dihedral angle space, J. Chem. Phys., 141 (3), 034105 (2014), the progress index guided sampling method, Biochim. Biophys. Acta, 1850 (5), 889-902 (2015), calculating transfer free energies using compartmentalization potentials, Phys. Chem. Chem. Phys. 20 (42), 27003-27010 (2018), and the use of CAMPARI and ABSINTH in virtual screening, J. Chem. Inf. Model. 60 (10), 5188-5202 (2020).
- Conversion of various binary trajectory file formats, including an original standard defined in PostgreSQL
- Very flexible parsing of different PDB naming conventions, intervention-free reconstructions of missing atoms and polymer tails
- Program execution in trajectory analysis mode, with some OpenMP support but also in hybrid MPI/OpenMP or MPI parallel modes to operate on many files at once
- Completely free and released under the GPL
Features currently not supported by CAMPARI but commonly found in other simulation software packages:
- Implicit solvation models other than ABSINTH or primitive models
- MPI-based "classic" domain decomposition for dense systems (see OpenMP functionality above)
- Sampling of constant-pressure ensembles using manostats (analysis is supported since Version 5)
- No accelerator (GPU) support
The above lists should provide you with a good idea of whether CAMPARI may be a useful addition to your toolkit. We are also happy to continue to highlight here a CAMPARI "spin-off" project that aims to provide accessibility to our data mining algorithms from R and was developed primarily by Davide Garolini, see its GitLab page.
Last but not least, the list of references contains many of the earliest examples of research performed with the help of CAMPARI (until about 2013), which provides only a limited picture of the software's capabilities.