Home
Name Modified Size InfoDownloads / Week
campari 2024-04-20
parameters 2010-11-24
README.txt 2024-04-20 18.8 kB
README_v4.txt 2024-04-19 14.7 kB
README_v3.txt 2020-12-30 863 Bytes
README_v2.txt 2017-09-05 20.6 kB
README_v1.txt 2014-02-12 6.6 kB
Totals: 7 Items   61.6 kB 0
*** WELCOME TO CAMPARI V5 ***

Thank you for your interest in our software and research. We sincerely hope you find CAMPARI useful. For user documentation, installation instructions, etc. open the html-documentation in your browser (http://campari.sourceforge.net/index.html), and navigate from there.

- The CAMPARI development team


*** Release notes ***

*** New features (just keyword description, for more see the documentation) ***

- Addition of a Python interface: using ForPy, CAMPARI now calls Python code directly and offers a pregenerated interface for doing so. CAMPARI exposes many of its intrinsic data structures to Python so that users can work with these data, most often to implement custom analysis routines. Tutorial 18 covers this use case scenario in detail.
- Addition of a new trajectory standard defined in the SQL language: this is a fully functional standard to write and read trajectory data in/from an SQL database, specifically PostgreSQL interfaced through C++ code that relies on libpqxx. The goal is to have a much tighter integration of data and meta-data, to provide constant-time access to arbitrary data slices, and to allow distributed storage through native support, i.e., to exploit SQL's intrinsic strengths. See FMCSC_XYZPDB and FMCSC_PDB_FORMAT (option 6 both times), which link to the description of the standard and list all associated keywords. Notably, this includes the ability to deposit snapshot connectivity data for trajectory ensembles such as replica-exchange or PIGS. 
- Addition of rigorous treatment of triclinic boxes (3D periodic containers with arbitrary angles between unit cell vectors): in the most general case, this creates the very difficult task of identifying near(est) images, which due to the lack of orthogonality between cell vectors is much more complicated. The implementation favors rigor of speed since speed is aided, generally speaking, by problem-specific and unsafe heuristics. Triclinic containers are available in almost all tasks except that no analytical volume element is provided in pair correlation analyses.
- Addition of fluctuating volume conditions (NPT) during trajectory analysis: except for the actual mechanisms of measuring the pressure and scaling the volume, this is complete, i.e., it does support, for example, correct calculations of PME energies in a trajectory analysis run (FMCSC_ENSEMBLE 3). This is often necessary when analyzing trajectories from other software and is illustrated in Tutorial 17.
- Addition of transition path theoretical analyses to the graph-based analysis suite, see FMCSC_TPTMODE. These algorithms provide a natural extension of committor probabilities. They are explored in detail in Tutorial 19. In addition, for small enough graphs, there is now the option to compute full matrices of mean first-passage times (FMCSC_MFPT_MATRIX).
- In trajectory analysis, it is now possible to supply an explicit map to remap the indices of atoms in input PDB files (role of FMCSC_PDB_TEMPLATE) to CAMPARI-internal numbering. The association by name had a few limitations, most notably that atoms have to be grouped in residues (a convention violated for example by Maestro/Desmond) in the binary trajectory file. See keyword FMCSC_PDB_ATOMMAP.
- Better usability of small molecule screens: There is now a way to set an execution time limit that will lead to a clean termination, including dumping the unprocessed molecules into a new output file to become the input file of the next run. This is to work better with queue time limits on supercomputers.
- Better consistency in small molecule screens, part 1: automatically assigned bond types can now be stored and recovered directly in the mol2 files written by CAMPARI. This is necessary (or highly desirable) because the inference of bonded parameters on electronically hindered but otherwise rotatable bonds depends on the input conformer and might thus change across a normal screening workflow (FCMSC_MOL2RESPECTBOND).
- Better consistency in small molecule screens, part 2: the effective residues of a screened molecule can now also be set in a conformation-independent manner (using only the bond graph), with similar implications as the previous concern (FMCSC_MOL2CUTMODE).
- Better consistency in small molecule screens, part 3: energy-based scores can now be constructed as explicit (ensemble) averages across clusters (FMCSC_MOL2ENMODE) and are provided in a dedicated output file.
- Better consistency in small molecule screens, part 4: the relaxation mechanism (FMCSC_TMD_RELAX) can now be used within a small molecule screen with tethering in a special mode to try to filter out molecules that are unlikely to fit after placement in the tethering site, see FMCSC_MOL2PRUNEMODE.
- The treatment of input PDB files has been vastly improved. The sequence extraction tool has been reworked to be successful in a wider range of circumstances and be much more efficient. CAMPARI is now able to tolerate incomplete residues when rebuilding N-terminal (or 5'-terminal) tails, which is a frequent issue for experimental structures of polynucleotides. Many more names are understood, such as automatic translations of PDB residue names of D-amino acids or a much more extensive comprehension of different atom name conventions, etc.
- PDB output files can now carry meta-information, see FMCSC_PDB_AUXINFO, which can also be helpful for visualization software to interpret these files, and create atom names in additional standards, see FMCSC_PDB_W_CONV. They have also been better protected from range the restrictions of the standard format to remain as informative as possible (e.g., by avoiding identical chain letters in subsequent chains even after all standard letters have been exhausted) and from deriving poor names for atoms in unsupported residues.
- CAMPARI can now write structure and trajectory files that contain a fixed number of solvent molecules chosen according to a distance criterion, see FMCSC_XYZ_PRUNE. This is to be able to reduce the size of trajectory files without discarding all solvent molecules entirely, an issue particularly relevant for long-term storage.
- A large number of improvements to the treatment of unsupported residues, in particular polynucleotide ones, has been implemented. The goal was to be able to abstract better from variations in the input, to produce saner structures when rebuilding, to enforce what is known about the systems a priori, and to produce better PDB files.
- During the creation of initial system configurations, there is now the option to avoid randomized small molecules (usually water and ions) to be too surrounded by atoms whose positions are defined from structural input (usually biopolymers, cofactors, ligands). This is to prevent solvent molecules from being placed in internal, apparent cavities, see FMCSC_RANDOMBURIAL, which was not safely preventable for high-density solvents such as water.
- The treatment of aggregate quantities through cluster algebra in structural clustering has been improved especially for the periodic case. This refers to aggregate operations like mean differences or joint radii, all of which occur (thus far) only in uncommon edge cases, specifically parallel, tree-based clustering with split/merge operations and cluster (FMCSC_CREFINE) refinement. 
- There are options to set geometries of 3-, 4-, and 5-point water models through keywords. This can be used, in conjunction with patches or parameter file modifications, to create correct implementations of water models with differing geometries (which was previously only possible through relatively complex detours). See keywords FMCSC_WATER3S_GEOM, FMCSC_WATER4S_GEOM, and FMCSC_WATER5S_GEOM.
- The generalized reaction-field method can now be modified through FMCSC_IONICSTR.
- To improve threads-parallel performance for larger numbers of threads, there is now the option to reduce the team size for specific tasks that are known to scale poorly, see FMCSC_NRTHREADSONMOL.
- To improve automation and usability, the key-file builder and the CHARMM parameterizer (both Ruby scripts in the tools/ directory) have been revised with several bug fixes each. 
- File-based clustering with data read-in is now available for the NetCDF data mining executable as well.


*** Implementation changes ***

In the sending of data for structural clustering in an MPI-parallel run, the data are now sent only after manual pooling but as fully blocking sends. The reasons is that we encountered issues with buffer or queue exhaustion that eventually lead to crashes. From limited analysis, this exhaustion happened because the senders could continue immediately while the master was increasingly lagging behind. Since this is somewhat implementation-defined, we moved to the safer option of executing fewer sends/receives but fully blocking them (neither sender nor receiver can continue until the final handshake is complete).
Some minor convenience features are for CAMPARI to be less picky and/or produce more explainable errors for its command line invocation, the read-in of lists for FMCSC_SIZE and FMCSC_ORIGIN, and the choice of cutoff lengths in periodic boundary conditions.
In terms of internal representation, the yline2/fline2/psish/phish constructs have been removed entirely, which implies a change in the logic to building polypeptide backbone atoms, in particular HN and O/N_i+1. This was a long-overdue simplification from the removal of a historical artifact in the code.
There is some basic time instrumentation in master.f90, mcstat.f90, and prtpdb.f90 that can be enabled at compile time to check the speed of trajectory read/write operations (DEBUG_TIMEIO).


*** Bug fixes (these might also affect the reproducibility of prior results, i.e., highlight a problem with a V4 calculation) ***

A bug has been fixed where a call was not clearly identifiable (missing parentheses) as an OpenMP function call, which could lead to an error.
A bug has been fixed that could cause a memory violation when too few points were available for structural clustering during the estimation of the distance spectrum.
A bug has been fixed that could cause a memory violation when using steric grids (thanks to Dietrich Truembach) because of an insufficient, hard-coded size parameter.
A bug has been fixed if a minimization terminated immediately because the step counter (nstep) had not been updated. This could lead to unintended calls to a thread safety debugging routein and/or undefined behavior.
A bug has been fixed that could cause an error in rare circumstances when using the approximate progress index method by underestimating the required number of random numbers: this exhaustion could lead to a list size violation 
A bug has been fixed that could leave a relevant helper array uninitialized in contact map analysis, leading normally only to wasted computations.
A bug has been fixed that would prevent the NetCDF data miner from working correctly with choice 10 for FMCSC_CMODWEIGHTS.
A bug has been fixed that could cause a list size violation when a small molecule screen was encountering an unusual combinations of an input system with a mismatched request for FMCSC_MOL2AUXINPUT.
An issue has been addressed where a request of a calculation in Monte Carlo logic (FMCSC_DYNAMICS 1, 5, 7) for a very large system could lead to an attempt to allocate extreme amounts of memory. A similar issue has been addressed to eliminate unnecessary computations to speed up, for example, trajectory analysis tasks in this logic.
A bug has been fixed where, when using FMCSC_XYZ_REFMOL to create a uniform reference frame in periodic boundary conditions, the reference position of molecules might have been incorrect. This was because it was always taken as the geometrical center even when FMCSC_DYNAMICS was not 1. This clashed with the logic used everywhere else and led to values for the geometric centers being used that had not been updated.
Two bugs have been fixed where CAMPARI evaluates joint conditional statements but the compiler is free to change the evaluation order leading to unavailable fields being queries. These were split onto multiple lines (additional nest), which enforces the correct order.
A bug has been fixed where grid-based cutoffs were not correctly initialized when used in conjunction with FMCSC_TMD_RELAX and FMCSC_DYNAMICS 2 or 3.
A bug has been fixed that could lead to memory violations when resizing lists while using grid-based cutoffs with certain input settings.
A bug has been fixed where the reading of a replica exchange trace file in a parallel analysis run could lead to the program hanging if the trace file was exhausted earlier (encountered as an ultimately unclear, compiler-specific issue).
A bug has been fixed where a distance or position restraint target was exactly 0.0 (not the agreement but the actual value itself). This was most relevant for position restraints to the origin or for simulations without excluded volume and could lead to an effective zero-divided-by-zero, triggering an FP exception.
A bug has been fixed where in the threads-parallel version, in rare scenarios, the loop bounds per thread could become erroneous when using FMCSC_LREL_MD 4/5 and calculating forces.
A bug has been fixed where Tarjan's algorithm in the threads-parallel version had an illicitly used exit condition (too many components) leading to a race condition / undefined behavior.
A bug has been fixed where the accounting for time control in iterative, graph-based algorithms (such as iterative MFPT) was not handled correctly by the Oracle compiler because of a lack of an automatic/correct type conversion between different integer types.
A bug has been fixed where in the PIGS trace file reader the back calculation of step numbers could lead to integer overflow. 
A bug has been fixed where under very specific circumstances, with OpenMP code, some initialization statements could be skipped (a small number of small molecules for a small-to-medium-sized team of threads), leading to erroneous results.
An issue has been fixed where the time accounting was not reporting correct numbers in file-based clustering at the end of log-output.
A bug has been fixed in MC_randomize() that could lead to faulty memory access and ill-informed diagnostics about failed tail minimization.
Several bugs have been fixed in the treatment of unsupported residues: missing terminations (error detected, but program did not stop) for polynucleotides; removal of first backbone atom leading to downstream errors; an error triggered by attempting to combine unsupported nucleotides with the ABSINTH model; missing pucker usage for unsupported residues where this pucker angle was actually detected correctly; an error caused by a missing initialization when lumping O3* atoms for nucleotide residues in a particular way; two potential (rare) errors during topology inference; an error where the sugar pucker could become active even though the Z-matrix setup for this was missing.
A bug has been fixed where a bad linkage could be created for a reconstructed, 3'-terminal tail of a polynucleotide due to naming problems with O3* and 2O3*.
A bug has been fixed where the mechanism of FMCSC_XYZ_FORCEBOX on read-in was not correctly applied to a template structure leading to setup errors.
A bug has been fixed where the maximum solvent-accessible volume fractions were not computed entirely correctly for the phosphodiester model compound in the ABSINTH model for polynucleotides.
A bug has been fixed that could access an uninitialized field when using FMCSC_CDISTANCE 2 or 4 in conjunction with FMCSC_CMODWEIGHTS not 0.
A bug has been fixed that would not set instantaneous RMSD (FMCSC_ALIGNCALC) output file names correctly in certain MPI-parallel calculations.
A bug has been fixed that would not set file names correctly for clustering features (FMCSC_CDUMP) in certain MPI-parallel calculations.
A bug has been fixed that could have performed an array copy for uneven array sizes in the NetCDF data miner with FMCSC_CDISTANCE being 9. 
An issue has been fixed that screens against bad combinations of FMCSC_CCOLLECT and FMCSC_REFREQ.
An issue has been fixed that provides more consistent and interpretable output for nucleic acid dihedral angle with FMCSC_CDISTANCE in a corresponding option. 
A bug has been fixed that was triggered by having a frames file (FMCSC_FRAMESFILE) with exactly one input line.
A bug has been fixed that would allow setting FMCSC_MOL2OUTMODE to 0, which is an undefined option.
Two bugs have been fixed that could cause array range exceptions during the setup of polar interactions.
A bug has been fixed that would not correctly stop or alter a run with threads parallelization when certain concerted rotation moves were requested that are incompatible with threads parallelization.
An issue has been fixed that did not enforce the correct value for FMCSC_FEGMODE when using the (G)RF or Ewald methods for long-range electrostatics in free energy growth calculations.
A bug has been fixed that could lead to an array being allocated to insufficient size for rare combinations of sequence and structural input.
A bug has been fixed that could lead to errors when performing a small molecule screen with grid-based cutoffs.
A bug has been fixed that could lead to an array being allocated to insufficient size when trying to use Ulmschneider-Jorgensen bond angle concerted rotation moves with a minimal molecule.
An issue has been fixed to prevent an absurd scenario of a small molecule possessing more than 50 rings from causing a segmentation fault.
A bug has been fixed that prevented a string utility routine from correctly dealing with negative input numbers (not used in this way).
A bug has been fixed that could lead to erroneous loop bounds assigned to threads if the number of interactions was tiny relative to the number of threads (either a system of few atoms or a system that was almost completely constrained) in a calculation with cutoffs and nonbonded interactions.
Three bugs have been fixed that could erroneously access an unallocated element during structural input processing of partially incomplete input.
A bug has been fixed where an unrelated and unallocated field could inadvertently be queried while using a short FMCSC_FLUSHTIME and FMCSC_TMD_RELAX.

For the bug fixes above, please note that we cannot ascertain that these bugs were actually all present and triggerable in version 4: some of them might have resulted from intermittent modifications. Also note that the majority of these bugs were related to edge cases or silent (picked out only by explicit debugging options), which is of course the normal scenario.

Source: README.txt, updated 2024-04-20