V2.5
Version 2.5 (Dec 19, 2018)
This page contains changes that will end up in 2.5
Changes from version 2.4 which are relevant for users:
Changes leading to incompatible behavior:
- RMSD, MULTI-RMSD, PATHMSD, PROPERTYMAP, PCAVARS, PCARMSD, FIT_TO_TEMPLATE, DIPOLE, ALPHARMSD, ANTIBETARMSD, and PARABETARMSD now automatically make molecules whole. In case you do not want them to do it, use NOPBC flag,
- There is some subtle change in the installation layout (see below). There should be no visible effect, however it is now compulsory
to set correctly the
LD_LIBRARY_PATHvariable for the linux executable to work correctly. The procedure has been tested well on OSX and Linux, but could give problems on other platform. Please report possible problems on the mailing list. - driver now stops correctly when using COMMITTOR. If you want to continue the analysis, use the
NOSTOPflag in COMMITTOR. - METAD the calculation of the reweighting factor is now activated by CALC_RCT instead of REWEIGHTING_NGRID and REWEIGHTING_NHILLS, the frequency of update can be set by RCT_USTRIDE, the default value is 1 and should be OK for most of the cases
- Fixed sign in Cartesian components of PUCKERING with 6 membered rings (thanks to Carol Simoes and Javi Iglesias).
New actions:
- COLLECT_FRAMES
- EUCLIDEAN_DISSIMILARITIES
- HBPAMM_MATRIX
- HBPAMM_SH
- LANDMARK_SELECT_FPS
- LANDMARK_SELECT_RANDOM
- LANDMARK_SELECT_STAGED
- LANDMARK_SELECT_STRIDE
- OUTPUT_ANALYSIS_DATA_TO_COLVAR
- OUTPUT_ANALYSIS_DATA_TO_PDB
- OUTPUT_PCA_PROJECTION
- PAMM
- PLUMED
- PRINT_DISSIMILARITY_MATRIX
- PROJECT_ALL_ANALYSIS_DATA
- READ_DISSIMILARITY_MATRIX
- RESELECT_LANDMARKS
- REWEIGHT_WHAM
- SKETCHMAP_CONJGRAD
- SKETCHMAP_POINTWISE
- SKETCHMAP_READ
- SKETCHMAP_SMACOF
- SKETCH_MAP
- SMACOF_MDS
- WHAM_HISTOGRAM
- WHAM_WEIGHTS
New command line tools:
- completion (used to generate command line completion scripts).
- pdbrenumber (see here).
New modules:
- A new PIV module has been included, contributed by Silvio Pipolo and Fabio Pietrucci. This module implements the following collective variable:
- A new LOGMFD module has been included, contributed by Tetsuya Morishita. This module implements the following bias:
Changes in the ISDB module
- CS2BACKBONE is now mpi parallelized in particular with DOSCORE and CAMSHIFT
- SAXS has an additional implementation based on Bessel functions that can be faster for large systems (new keyword BESSEL)
- SAXS keyword SCEXP has been renamed into SCALEINT
- SAXS includes the MARTINI bead structure factors for Proteins and Nucleic Acids
- SAXS includes a GPU implementation based on ArrayFire (need to be linked at compile time) that can be activated with GPU
- METAINFERENCE and all related methods has a new keyword REGRES_ZERO to scale data using a linear scale fit
- CALIBER new bias to perform Maximum Caliber replica-averaged restrained simulations
Changes in the eABF/DRR module (contributed by Haochuan Chen and Haohao Fu):
- DRR now supports the extended generalized ABF(egABF) method.
- DRR accepts different GRID options for CVs and extended variables.
- The MAXFACTOR option is added in DRR to control the factor of biasing force.
- drr_tool can calculate the divergence of gradients now. (Maybe useful for future pABF)
- Fixed conflicts of output files in multiple replicas.
Changes in the EDS module:
- EDS implements Levenberg-Marquardt optimization in addition to previous gradient descent.
- EDS no longer automatically increases prefactor for bias parameter updates. This results in more stable optimization for the cases tested.
- EDS now has a larger default RANGE parameter to go with these other changes.
Other changes:
- METAD there is a new FLYING_GAUSSIAN keyword to activate the flying gaussian methods by Spiwok (contributed by Spiwok and Hozzova)
- EXTERNAL can now SCALE the input grid. This allows for more flexibility without modifying the grid file.
- ALPHABETA can now combine dihedral angles with different coefficients
- INCLUDE can now be used also before setup actions.
- CENTER can now be computed using trigonometric functions (PHASES) to simplify its calculation with periodic boundary conditions.
- Libmatheval is not used anymore. MATHEVAL (and CUSTOM) are still available
but employ an internal implementation of the lepton library.
Functions available in libmatheval and absent in the original lepton library have been added so as to have backward compatibility.
atan2(y,x)function has also been added. Notice that MATHEVAL (and CUSTOM) switching functions using the lepton library have been further optimized with respect to PLUMED 2.4. Finally, notice that it is possible to use asmjit to optimize performance (see CUSTOM). - Implemented bash autocompletion, see here.
- MOLINFO now allows selecting atoms from chains with a numeric ID (see here).
- Removed the patch for GMX 5.1.4
- LAMMPS patch has been finally removed. Notice that LAMMPS has native support for PLUMED now.
- AMBER patch has been finally removed. Notice that AMBER (sander module) has native support for PLUMED starting from version 15.
- RMSD calculation has been optimized. This should positively affect the performances of CVs where many RMSD values are computed on small groups of atoms, such as secondary structure variables.
- In METAD, when using a bias factor equal to one (no bias) the
rctcomponent is set to zero rather than to one. - New shortcuts are available for selecting atoms:
@allatomsand@mdatoms(see here). - When using MOLINFO, also the following shortcuts are available for selecting atoms:
@nucleic,@protein,@water,@ions,@hydrogens,@nonhydrogens. - When using MOLINFO, individual atoms can be chosen also from water molecules (e.g.
@OW-100). - Additional switching function COSINUS contributed by Michael King
- added API to set the number of used openMP threads from the linked code, updated gromacs 2018.3 patch to use it
Changes from version 2.4 which are relevant for developers:
- Code has been cleanup up replacing a number of pointers with
std::unique_ptr. Alldeletestatements in the core parts of the code have been eliminated. - Exceptions cannot be disabled (
--disable-cxx-exceptionsoption has been removed from./configure). - Every exception thrown in PLUMED now also writes its message on PLUMED log.
- Runtime loader in
Plumed.cnow works also when linked without-rdynamic(that is, its names are not exported). Notice that all the combinations are expected to work, that is:Plumed.cfrom <=2.4 or >=2.5 combined with libplumedKernel from <=2.4 or >=2.5. In order to achieve this the following changes are implemented: - libplumedKernel does not depend anymore on
Plumed.c. This allows loading it even in cases where names in the loader are not visible. The relevant function needed to be compatible withPlumed.c<=2.4 are found usingdlsym. Plumed.cdoes not need anymore libplumedKernel to register itself, but rather searches the relevant functions usingdlsym. In addition, if it is not able to loadlibplumedKernelsince the latter is <=2.4 and needsPlumed.cto be visible, it just uses as a fallbacklibplumed, which should load properly.- In addition to the capability mentioned above, the MD-code interface has been significantly improved and allows for:
- Translation of exception (allowing to mix PLUMED and an MD-code linked against a different C++ library).
- Possibility to choose the path to the PLUMED kernel while instantiating a Plumed object. See the developer documentation for more information.
- The installation layout of shared libraries has been modified. In particular,
both
libplumed.soandplumedlinks tolibplumedKernel.so. This reduces considerably the size of the installed package. In addition, it allows using two-level namespace on OSX. Notice that this implies that on Linux one should always set theLD_LIBRARY_PATHflag to have a working executable. - A smaller number of header files is installed. In particular, all the files that were historically generated in subdirectories
(such as
plumed/core/tools/Vector.h', just includingplumed/tools/Vector.h`) are not installed and the related include statements are fixed. This makes the installed package smaller. - List of preferred compilers (used when
CXXorCCare not set) has been changed. On OSX,./configurewill tryclang++/clangas first choices. - Added
--enable-static-archiveto./configureto build alibplumed.astatic library (yes by default). - Stop setting
DYLD_LIBRARY_PATHinsourceme.shand in modulefile. Notice that as of PLUMED v2.3.3 it should not be needed. - Coverage scan is not anymore contained in developer manual. It can be found in a separate repository
github.com/coverage-branch(see here). In addition, coverage for third-party libraries included in PLUMED is reported as well. - It is not possible anymore to use
make install prefix=/path. Prefix can only be changed during./configure(see here). - Exception class has been rewritten to allow more extensive messages. Now also function name is shown.
- On linux, library is linked with
-Bsymbolic. - When launching
plumed, flags--no-mpiand--mpican appear multiple times. The last appearance is the effective one. - Internal BLAS and LAPACK libraries updated to gromacs 2018.
- Choosing
./configure --prefix=$PWDdoes not lead anymore to deletion of all header files. - A copy of
plumed-runtimeis installed inprefix/lib/plumedand can be used for testing. - Absolute/relative soname/install_name can be configured on linux/OSX. This feature is only for testing, the default choice is the typical one used on the respective operating system.
- On OSX,
plumedandlibplumed.dylibwill findlibplumedKernel.dylibusing@loader_path. - Using CXX compiler to link the main program.
- plumed can be compiled with ArrayFire to enable for gpu code. SAXS collective variable is available as part of the isdb module to provide an example of a gpu implementation for a CV
Version 2.5.1 (Apr 1, 2019)
For users:
- in SAXS the keyword ADDEXP is removed. Furthemore, SAXS intensities are automatically normalised for I(0)=1, in case experimental data are provided, the intensity is rescaled with the intensity of the lowest q provided. As a consequence SCALEINT is only needed for additional adjustments.
- gromacs patch updated to gromacs 2018.5
- Fixed a bug in gromacs patch that was resulting in incorrect number of threads (0) set when not explicitly using
-ntompon the command line or settingOMP_NUM_THREADS(see here). To apply this fix you need to re-patch gromacs. Notice that setting the number of threads to zero might lead to inconsistent results when using secondary structure variables or other multicolvars. - Fixed PLUMED so that when zero threads are selected from gromacs (see previous fix) the number of used threads is set to 1. This fix allows to use a GROMACS executable patched with PLUMED 2.5.0 and linked at runtime with PLUMED 2.5.1 without introducing errors. However, re-patching is preferred since it selectes the correct number of threads.
- Python wrappers:
- Fixed building of python interface on MacOS Mojave (see here, thanks to Omar Valsson).
- Numpy is not required anymore at build time (though it is required at runtime for our tests).
- Raw python arrays can be passed as an alternative to Numpy ndarrays.
Version 2.5.2 (Jul 19, 2019)
For users:
- New shortcuts are available for selecting protein atoms:
@chi2-#,@chi3-#,@chi4-#and@chi5-# - Fixed performance of CUSTOM when having zero derivatives with respect to some arguments.
- New --parse-only option in driver to check the validity of a plumed input file
- New patch for GROMACS 2019.2
- Module VES: Fixed performance of BF_CUSTOM for basis functions with linear terms (e.g. having zero derivatives).
- Python wrappers:
- Python module is now always named
plumedirrespectively of program prefix and suffix. Notice that python module is installed inside thelib/program_namedirectory and thus it is not necessary to useprogram_namein order to install multiple modules side by side. - Python module can be compiled without compiling PLUMED first.
Plumedobject can be explicitly finalized usingfinalize(). Can be used to make sure all files are closed, but it is not necessary if thePlumedobject gets correctly collected by Python.Plumedobject can be used in context managers (e.g.with plumed.Plumed() as p:).- Precompiled binaries are available on Anaconda cloud on the conda-forge channel.
Version 2.5.3 (Oct 11, 2019)
For users:
- Fixed a bug with CONVERT_TO_FES and periodic variables, see here
- Fixed a bug with FOURIER_TRANSFORM
- Updated patch for GROMACS 2019.4
- Updated patch for GROMACS 2018.8
- Python module:
- Fixed building with clang-8.
- Set
language_levelfor cython to the actually used language level. - Force using cython when compiling from source. Still using the pre-generated cpp file when installing from PyPI, to avoid cython dependency.
- Using python 2 to create the cpp file uploaded on PyPI (this will change to python 3 in 2.6, see here).
- Module VES: Fixed a bug in updating of bias potential in VES_LINEAR_EXPANSION that is present for certain integrators that call the calculation of the bias multiple times (see here) and replica exchange.
Version 2.5.4 (Jan 27, 2020)
For users:
- Includes all fixes up to 2.4.7
Version 2.5.5 (Jul 8, 2020)
For users:
- Includes all fixes up to 2.4.8
For developers:
- Small fix to avoid unique global symbols (see here)
Version 2.5.6 (Oct 26, 2020)
For users:
- Report an error when using all weights set to zero in reference PDB files. Same as here fixed in 2.4, but now the check is done in more cases.
- Fixed overflow in reweighting factor when using non well-tempered metadynamics (thanks to Michele Invernizzi, see here).
- Fixed READ with EVERY when reading a trajectory file (see here).
For developers:
- Fixed a warning in
wrapper/Plumed.happearing with recent clang versions.
Version 2.5.7 (Apr 16, 2021)
Not maintained
This branch is not maintained Users are invited to upgrade to a newer version.
For users:
- Fixed handling of periodic variables in ves_md_linearexpansion (see here).
- Small fix that might affect performance (backport of a fix needed for master branch, see here).