-
Notifications
You must be signed in to change notification settings - Fork 10
/
CHANGES
257 lines (213 loc) · 10.3 KB
/
CHANGES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
=================
CHANGES for MDPOW
=================
Add summary of changes for each release. Use ISO 8061 dates. Reference
GitHub issues numbers and PR numbers.
2024-10-11 0.9.0
cadeduckworth, orbeckst, VOD555, a-ws-m
Changes
* change in TI implementation in fep.Gsolv.analysis(): scipy.integrate.simpson()
now always uses Cartwright's approach to compute the last interval instead of
the old `even="last"` behavior. This change **may lead to small numerical
differences in output** (#281)
* added testing/support for Python 3.10 (#202) to 3.12 (#283)
* dropped testing/support for Python 3.9 (#286), 3.8 (#281), 3.7 (#248),
3.6 (PR #220, #202)
* support Gromacs 2022.4 and 2023.1 (#256) and 2024.3 (PR #290)
* use pymbar >= 4 and alchemlyb >= 2 (#246)
* for ensemble.EnsembleAnalysis._single_frame()
changed 'pass' to 'raise NotImplementedError' (#216)
* for ensemble.EnsembleAnalysis._single_universe()
changed 'pass' to 'raise NotImplementedError' (#216)
* for ensemble.EnsembleAnalysis.run() changed to detect
and use _single_frame OR _single_universe (#216)
* _prepare_universe and _conclude_universe removed from
EnsembleAnalysis.run() method, no longer needed (per comments, #199)
* internal log_banner() now uses logger as argument (PR #247)
* use `black` formatter for codebase (#271)
* implemented `forcefields.Forcefield` class (#267)
- facilitates users using non-default forcefields without changing package
code
- `equil.Simulation` has new `ff_class` argument
- each `Forcefield` has unique `default_water_model`, replacing global
`DEFAULT_WATER_MODEL`
- `get_solvent_model()` and `get_solvent_identifier()` take either `str` or
`Forcefield` type for the `forcefield` argument
- both functions also use the `Forcefield`-specific `default_water_model`
(fixes #112)
* `forcefields.DEFAULT_WATER_MODEL` removed (#267)
* changed `system.top` and `system_octwet.top` to act as templates and added
`.template` suffix (#267)
* removed `forcefields.get_ff_paths()` (#267)
* changed `forcefields.get_solvent_identifier()`: will raise `ValueError`
instead of returning `None` (#267)
Enhancements
* convert figure components to SVG, save as individual PDFs,
and generate PDF of all figures combined in one file,
for workflows dihedrals module (#243)
* add RDKit mol object to dihedrals plot with dihedral atom
indices labeled and dihedral atom group bonds highlighted
for workflows dihedrals module (#243)
* new workflows registry that contains each EnsembleAnalysis for which
a workflows module exists, for use with workflows base module (#229)
* new workflows base module that provides iterative workflow use for
directories that contain multiple projects (#229)
* new workflows module (#217)
* new automated dihedral analysis workflow (detect dihedrals with SMARTS,
analyze with EnsembleAnalysis, and generate seaborn violinplots) (#217)
* new workflows.base.guess_elements() function to guess elements
from masses (PR #264)
* add new exit_on_error=False|True argument to run.runMD_or_exit() so
that failures just raise exceptions and not call sys.exit() (PR #249)
Fixes
* for mdpow.workflows.dihedrals.periodic_angle() implement .copy(deep=True)
to explicitly make a copy DataFrame of the data for angle padding (#242)
* fix rcoulomb in CHARMM energy minimization MDP template file (PR #210)
* fix ensemble.EnsembleAnalysis.check_groups_from_common_ensemble (#212)
* updated versioneer (#285)
* fix that simulation stages cannot be restarted after error (#272)
* fix that testing resource data files were not packaged at all; they are now
included with the sdist (tar.gz) (23 MiB) but excluded from the wheel (whl)
(2.3 MiB) (#293)
2022-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.