=================
CHANGES for MDPOW
=================

Add summary of changes for each release. Use ISO dates. Reference
GitHub issues numbers and PR numbers.

2021-01-03    0.8.0
ALescoulie, orbeckst

Changes

* dropped support for Python 2 and <3.6: only Python 3.7--3.9
  are supported (#177)
* removed unused POWConfigParser.getintarray() (PR #187)
* removed deprecated mdpow-gyhd script, use mdpow-solvationenergy
  instead (#183)

Enhancements

* new Ensemble and EnsembleAtomGroup objects for loading set of system
  simulations (issue #168, PR #179)
* new EnsembleAnalysis framework for collecting data from MDPOW simulations 
  (issue #168, PR #179)
* new EnsembleAnalysis: dihedrals (#190, PR #193)    
* new EnsembleAnalysis: solvation shell (#195, PR #196)  
* new exception config.NoSectionError to indicate missing section
  ("protocol") in the YAML run input file (PR #187)
* new config.NoOptionWarning when undefined options are used (with
  default None) and POWConfigParser.get() now logs when an option is used
  at level DEBUG (PR #187)

Fixes

* run.get_mdp_files() finds the full path for an MDP file and raises ValueError
  when MDP file is not found (PR #187)
* POWConfigParser.getpath() returns None for empty options instead of raising
  TypeError (PR #187)
* POWConfigParser.getlist() and getarray() return empty list or array for
  empty options instead of raising TypeError (PR #187)


2021-08-04    0.7.1
orbeckst, iorga

Fixes

* restrict alchemlyb to <0.5.0 for Python 2 (otherwise the installation fails
  due to an unsatisfiable pandas dependency) (#180)
* fix failure of mdpow-solvation script "AttributeError: 'AttributeDict' object
  has no attribute 'Gibbs'" (#180)
* fix fep.p_transfer() only analyzing the second input Gsolv (would lead to an
  error like "results.DeltaA does not contain 'Gibbs'") (PR #185)
* ensure that pickle files created under Python 2 are also readable under
  Python 3
* documentation fixes (PR #176)


2021-08-02    0.7.0
orbeckst, VOD555, ALescoulie

Changes

* renamed package to MDPOW
* support Python 3.7 -- 3.9 on Linux and macOS (#84)
* tested with GROMACS 4.6.5, 2018.6, 2020.6, 2021.1 (PR #159, #164)
* removed all generated docs from package
* config parser MERGES user runinput.yml with the package defaults
  (#8)
* Configuration setting mdrun.maxthreads now also applies to energy
  minimization with mdpow-equilibrium.py/mdpow.run() (#119)
* Default plot option is now "none" for the mdpow-* scripts (PR #142)
* Default estimator for mdpow analysis scripts is now alchemlyb MBAR
  (#139, PR #142)
* mdpow analysis scripts now default to statistical inefficiency
  calculation (--SI) and stride=1 (#139, PR #142)
* updated bundled CHARMM/CGENFF with charmm36-mar2019 (previously was
  charmm36-jul2017)
* removed deprecated -DFLEXIBLE grompp preprocessor flag from
  em_opl.mdp template file
* updated MDP templates (PR #155):
  - add files for AMBER (same as OPLS) and CHARMM for em, NPT, and bar (FEP)
    stages
  - NOTE: explicitly set "cutoff-scheme = verlet" in all MDP files;
    for GROMACS 4.6.5 FEP will fail with a FATAL ERROR "The Verlet cut-off scheme
    does not (yet) support free-energy calculations with perturbed
    atoms, only perturbed interactions." so you need to set the
    cutoff-scheme to the value "group".
  - disable energy group calculation to allow running on GPUs with
    modern GROMACS versions (such as 2021)
  - added comments regarding GROMACS bug
    https://gitlab.com/gromacs/gromacs/-/issues/3403 that requires
    manually increasing rlist >= solute diameter
  - added comment regarding 'pme_order = 6' preventing PME calculation
    on GPUs with GROMACS 2021.
* store version information in mdpow.__version__ instead of VERSION
  get_version() (#165)

Enhancements

* tested with GROMACS 4.6.5, 2018.6, 2020.6, 2021.1 (PR #159, #164)
* tested on Linux and and macOS (PR #159, #164)
* supported CHARMM and AMBER forcefield, including PRM parameter files
  with the "setup.prm" parameter in the configuration file (#104)
* supported wet-octanol mixed solvent boxtype but this only works with
  GROMACS >= 2018 (#98)
* support OPLS-AA TIP4PD, AMBER TIP4PEW and cyclohexane, and CHARMM TIP5P
  and cyclohexane solvent types (#141)
* supported forcefield options in scripts (#123)
* supported multiple edr files input in fep.py (#132)
* supported alchemlyb estimators (MBAR and TI) in analysis functions
  and scripts (#133 #135)
* boxtype and minimum distance (#30) can be set in runinput.yml and are
  documented (#91, #88)
* can now set fep.setup.maxwarn in config file (#113)

Fixes

* fixed: return fig in fep.py so plot function in scripts can access the
  object (#129)
* fixed: buffering kwarg was removed from openany() so code is
  compatible with GromacsWrapper >= 0.8.0 (#107)
* fixed: GROMACS 2020 fails with "Inconsistency in user input:
  Could not do a restart with appending because the checkpoint file was not
  found. Either supply the name of the right checkpoint file or do not use
  -append": mdpow.run.runMD_or_exit() does not anymore add -append to GROMACS
  invocation (#128)
* fixed mdpow-pow and mdpow-pcw scripts (#138)
* fixed template em_charmm.mdp to use standard CHARMM non-bonded parameters
  for energy minimization (PR #155)


2017-05-02    0.6.1
orbeckst, iorga, ianmkenney, rhheilma

* works with Gromacs 2016.x, 5.1.x, and 4.6.x (#36)
* removed unused analysis.py and analysis/thermodynamics.py
* supported water models: TIP4P, TIP3P, TIP5P, SPC, SPC/E, and
  new: M24 (modified TIP3P, #46)
* fixed sc-power can only take integer powers (#71)
* use PyBOL for building the testing environment
* removed run.MDrunnerSimple (#60)
* used flexible water model (-DFLEXIBLE) for more robust energy
  minimization
* FEP failed with IndexError when lambdas where presented as a list
  (#78)
* EDR files are now output by default instead of XVG (#75)
* fep.Gsolv.analyze() automatically converts EDR to XVG.bz2 if
  necessary and can process the XVG/MBAR format of Gromacs 5.x
  for TI (issue #82)
* deprecated mdpow-ghyd script (issue #14)


2016-06-29    0.6.0
orbeckst, ianmkenney

Code and development are now public on GitHub https://github.com/Becksteinlab/MDPOW

* supported solvents: water, octanol, cyclohexane (new) (#11, #16)
* supported water models: TIP4P, and new: TIP3P, TIP5P, SPC, SPC/E (#38)
* FEP simulations are now done in NPT (Parrinello-Rahman barostat)
  instead of NVT (#28)
* can run with Gromacs BAR and/or TI
* input file format was changed from ini to YAML (#1, #5, #6)
* additional configuration options in the runinput.yml file (#30, #38)



2011-09-06    0.5.1
orbeckst

Bug fixes and the mdpow-rebuild-simulation script to fix-up the state
files. For details see the git log commit messages.


2011-08-25    0.5.0
orbeckst, iorga

Fully working version with all scripts in place. Was used for the SAMPL3
challenge. For details see the git log commit messages.


For earlier releases see the commit messages.
