forked from alchemistry/alchemlyb
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES
439 lines (320 loc) · 14.2 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
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
# -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8 -*-
====================
alchemlyb CHANGELOG
=====================
The rules for this file:
* entries are sorted newest-first.
* summarize sets of changes - don't reproduce every git log comment here.
* don't ever delete anything.
* keep the format consistent (79 char width, MM/DD/YYYY date format) and do
not use tabs but use spaces for formatting
* accompany each entry with github issue/PR number (Issue #xyz)
* release numbers follow "Semantic Versioning" https://semver.org
??/??/2024 jaclark5, orbeckst
* 2.4.0
Enhancements
- Addition of `block_average` function in both `convergence` and
`visualization` (Issue #380, PR #381)
Enhancements:
- add CITATION.cff file with all authors from AUTHORS (issue #394, PR #395)
08/24/2024 xiki-tempula
* 2.3.2
Changes
- Remove Python 3.9 support (issue #389, PR #390).
Enhancements
- Add a tutorial section in the documentation (issue #382, PR #379).
07/08/2024 orbeckst, xiki-tempula
* 2.3.1
Changes
- alchemlyb adopts SPEC 0 (replaces NEP 29)
https://scientific-python.org/specs/spec-0000/
Fixes
- Support matplotlib 3.9.0 (issue alchemistry/flamel#28, PR#319).
05/21/2024 xiki-tempula
* 2.3.0
Changes
- Default value for keyword argument `initial_nk` of the MBAR estimator was
changed to "BAR" (run an initial BAR calculation before MBAR) instead of
`None` (start from all zeros) as this change provides a sizable speedup (PR
#357)
Enhancements
- `forward_backward_convergence` uses the bootstrap error when the
statistical error is too large. (PR #358)
- `BAR` result is used as initial guess for `MBAR` estimator. (PR #357)
- `forward_backward_convergence` uses the result from the previous step as
the initial guess for the next step. (PR #357)
04/06/2024 hl2500, xiki-tempula
* 2.2.0
Changes
- Require pandas >= 2.1 (PR #340)
- For pandas>=2.1, metadata will be loaded from the parquet file (issue #331,
PR #340).
- add support for Python 3.12, remove Python 3.8 support (issue #341, PR
#304).
Enhancements
- Add a TI estimator using gaussian quadrature to calculate the free energy.
(issue #302, PR #304)
- Warning issued when the series is `None` for `statistical_inefficiency`
(issue #337, PR #338)
- ValueError issued when `df` and `series` for `statistical_inefficiency`
doesn't have the same length (issue #337, PR #338)
Fixes
- data_fraction column in workflow.convergence won't be affected by the unit
conversion (issue #350, PR#319).
06/22/2023 xiki-tempula
* 2.1.0
Changes
- ValueError raised if concatenated amber output file is passed to amber
parser (issue #315, PR #326).
- Change the % based string formatting to {} based string formatting (issue
#323, PR #324).
- Use loguru instead of logging for log (issue #301, PR #303).
Enhancements
- "Statistical inefficiency" is logged at debug level for
equilibrium_detection and statistical_inefficiency (issue #295, PR#325).
- Add a parser to read serialised pandas dataframe (parquet) (issue #316,
PR#317).
- workflow.ABFE allow parquet as input (issue #316, PR#317).
- Allow MBAR estimator to use bootstrap to compute error (issue #320,
PR#322).
Fixes
- Fix the case where visualisation.plot_convergence would fail when the final
error is NaN (issue #318, PR#319).
DeprecationWarning
- The default MBAR error estimator in workflow.ABFE.estimate will change from
analytic to bootstrap=50 in 2.2.0 (issue #320, PR#322).
04/06/2023 xiki-tempula
* 2.0.1
Fixes
- Fix the dE method in u_nk2series to use the difference between two lambda
columns instead of using the next lambda column or the previous column for
the last window (issue #299, PR #300).
- work around hanging tests on Mac M1 by using Path.glob instead of glob.glob
in ABFE workflow (issue #309, PR #310).
12/12/2022 xiki-tempula, orbeckst
* 2.0.0
Changes
- use pymbar 4 as backend; this release is incompatible with pymbar 3.x
(issue #207, PR #268, discussion #205).
- The default for keyword argument `method` in estimators.MBAR was changed
from "hybr" to "robust" (issue #207, PR #268).
Enhancements
- Raise ValueError when no file has been matched in workflow.ABFE (PR #289).
- In workflows, the output folder will be created if it did not exist before
(PR #290).
Removals
- The AutoMBAR estimator was removed because pymbar 4's MBAR contains
equivalent functionality. (issue #284)
12/09/2022 DrDomenicoMarson, xiki-tempula, orbeckst
* 1.0.1
Fixes
- make workflow.ABFE handle 0 as input to forwrev instead of crashing (issue
#276, PR #282).
- Remove most of the iloc in the tests (issue #202, PR #254).
- AMBER parser now raises ValueError when the initial simulation time is not
found (issue #272, PR #273).
- The regex in the AMBER parser now reads also 'field=value' pairs where
there are no spaces around the equal sign (issue #272, PR #273).
- Pre-processing function slicing will not drop NaN rows (issue #274, PR
#275).
Deprecations
- deprecate AutoMBAR for removal in 2.0 because pymbar 4 already contains
equivalent functionality (issue #284, PR #285).
Internal Enhancements (do not affect API)
- Blackfy the codebase (PR #280).
- Refactor the test to make all the parsing done at conftest level (issue
#206, PR #278).
10/31/2022 orbeckst, xiki-tempula, DrDomenicoMarson
* 1.0.0
Changes
- The 1.x release only supports pymbar 3.x; alchemlyb 2.x will only support
pymbar >= 4.0. (#205)
- Default the units in plot_dF_state, plot_convergence and plot_ti_dhdl to
None. Remove the array input for plot_convergence (issue #247, PR #260).
- Now AMBER parser raises an exception when an inconsinstency in the input
file is found, instead of ignoring the file (issues #227 #238, PR #256)
- Now AMBER parser raises an exception when an inconsistency in MBAR data is
found (PR #253)
- Drop support for py3.7 (Issue #179, PR #214)
- forward_backward_convergence will use AutoMBAR as backend when `MBAR` is
selected as the estimator (PR #114).
- AutoMBAR accepts the `method` argument (PR #114).
- Refactor the subsampling module to unify the behaviour of
equilibrium_detection and statistical_inefficiency (PR #218).
- delta_f_, d_delta_f_, states_ are view of the original object in estimator
(issue #246, PR #252).
Enhancements
- Add u_nk2series and dhdl2series to convert u_nk and dHdl to series (PR
#218).
- Add remove_burnin keyword to decorrelate_u_nk and decorrelate_dhdl (PR
#218).
- Add a base class for workflows (PR #188).
- Add the ABFE workflow (PR #114, PR #231).
- Add R_c and A_c for "fractional equilibration time" convergence analysis
(issue #104, PR #239)
- Add the keyword arg final_error to plot_convergence (#249)
- All parsers now have a 'extract(file, T)' method that returns a dict with
both "dHdl" and "u_nk" data (or None). The AMBER parser when using this
function will read the file just once, extracting all data at once. (issue
#222, PR #240)
Fixes
- documented conda installation (available since 0.6.0) (#192)
- AMBER parsers now use 'ntpr' information to read time properly (issue #221,
PR #224)
- AMBER parsers now skip the reading of averages (issue #226, PR #230)
- AMBER parsers now check if the T provided by the user is the same at which
the simulations were run (issue #225, PR #232)
- changed how int/float are read from AMBER files (issue #229, PR #235)
- substitute the any_none() function with a check "if None in" in the AMBER
parser (issue #236, PR #237)
- Fix dhdl2series and u_nk2series would not reattach the unit. (PR #248)
- Removed the 'dhdl' keyword for uncorrelating the u_nk (see
`u_nk2series()`). Use 'dE' as an alternative or use 'all' (instead of the
deprecated 'dhdl_all') (PR #250).
07/22/2022 xiki-tempula, IAlibay, dotsdl, orbeckst, ptmerz
* 0.7.0
Changes
- Deployment to PyPI is now done automatically using github actions (Issue
#193)
- gmx parser now defaults to dropping NaN and corrupted lines (filter=True)
(#171, PR #183)
- remove broken .zip support from util.anyopen() (PR #197)
Enhancements
- Add filter function to gmx.extract to make it more robust (PR #183): can
filter incomplete/corrupted lines (#126, #171) with filter=True.
- Add support to util.anyopen() for taking filelike objects (PR #197)
Fixes
- Fixes setup.py and setup.cfg to prevent installations with Python versions
lower than 3.7 (Issue #193)
- added AutoMBAR to convergence analysis (#189)
- Fixed subsampling in statistical_inefficiency when lower or step keywords
are used (Issue #198, PR #199)
12/28/2021 schlaicha, xiki-tempula, jhenin, ttjoseph, orbeckst
* 0.6.0
Enhancements
- support Python 3.10
- support for Interleaved Double-Wide Sampling (IDWS) in NAMD (PR #135).
Windows may be split across NAMD .fepout files, allowing for interrupted
and restarted simulations, but each window must be complete (issue #145).
Various malformations of input files are detected, where lambdas do not
monotonically increase or decrease, or are inconsistent or missing.
- Convenience function for decorrelating u_nk and dHdl (PR #163).
- Time convergence function forward_backward_convergence introduced and
plot_convergence now takes dataframe from forward_backward_convergence as
input (PR #168).
- Automatic MBAR solver with fall back (issue #170, PR #172)
Fixes
- Subsampling now works with bounds and step (PR #167, issue #166).
- AMBER parser logger now always logs to alchemlyb.parsers.Amber instead of
the root logger (PR #173)
- updated deprecated pandas aggregation, now using groupby(level).agg (#175)
09/17/2021 xiki-tempula, orbeckst
* 0.5.1
Changes (not affecting code)
- update the Mission to also include general and robust workflows (discussion
#159, issue #160, PR #161)
Fixes
- MBAR estimator now correctly passes max_iterations to pymbar.MBAR. (PR
#162)
- docs (PR #157)
- visualisation.df_state.plot_dF_state() now correctly raises ValueError
instead of NameError when incorrect orientation keyword argument is
supplied
08/01/2021 xiki-tempula, orbeckst
* 0.5.0
Changes
- alchemlyb adopts NEP29
https://numpy.org/neps/nep-0029-deprecation_policy.html to effectively only
support the last 2-3 minor Python versions
- Removed support for Python 2.7 and 3.6 (issue #130, #140): supported/tested
Python versions are 3.7, 3.8, 3.9 on Linux, macOS, and Windows
- The scipy constant for gas constant is used for parsers instead of the
constants used by the corresponding MD engine (issue #125, PR #129). This
leads to small changes in results from GROMACS simulations in kT compared
to the previous releases, with a relative difference on the order of 1e-7.
- Added unit-awareness: the base unit remains kT but dataframes need to carry
the unit and temperature in a DataFrame.attrs so that dataframes can be
easily converted to different energy units (issue #125)
- The parser outputs dataframe with metadata (issue #125, PR #129).
- Visualisation module will change the data according to input unit (issue
#125, PR #129).
- Bump the minimum pandas version to 1.2 (issue #130, #140).
Enhancements
- postprocessors.units module for unit conversion (issue #125, PR #129).
- pass_attrs decorator for safely passing variable (issue #125, PR #129).
- alchemlyb.concat added to replace pd.concat (issue #125, PR #129).
Fixes
- `alchemlyb.concat()` should raise ValueError when given empty list, to be
compatible with pandas.concat() (issue #150, PR #152).
- Fix the support for pandas >= 1.3 by skipping 1.3.0 (issue #147, PR #148).
- Fix separate_dhdl not work for multiple columns (issue #149, PR #151).
06/08/2021 orbeckst
* 0.4.2
Fixes
- added back documentation that was lost in 0.4.1 release (#136)
06/01/2021 xiki-tempula, orbeckst
* 0.4.1
Enhancements
Deprecations
- Last release that supports Python 3.5 and 2.7.
Fixes
- The plotting function assumes that the default unit is kcal/mol where it is
kT (issue #124, PR #123).
- invalid escape sequence in plotting annotations (issue #133)
Changes
04/27/2021 wehs7661, dotsdl, xiki-tempula, orbeckst
* 0.4.0
Enhancements
- Allow the dhdl from TI estimator to be separated for multiple lambda (PR
#121).
- Allow the convergence to be plotted. (PR #121)
- Allow automatic sorting and duplication removal during subsampling (issue
#118, PR #119).
- Allow statistical_inefficiency to work on multiindex series. (issue #116,
PR #117)
- Allow the overlap matrix of the MBAR estimator to be plotted. (issue #73,
PR #107)
- Allow the dhdl of the TI estimator to be plotted. (issue #73, PR #110)
- Allow the dF states to be plotted. (issue #73, PR #112)
Deprecations
- Last version that is tested against Python 3.5 and 2.7.
Fixes
- removed redundant statistical inefficiency calculation in
`alchemlyb.preprocessing.subsampling.equilibrium_detection`
Changes
01/16/2020 dotsdl, orbeckst
* 0.3.1
Enhancements
Deprecations
Fixes
- added explicit `return_theta=True` for call to
pymbar.MBAR.getFreeEnergyDifferences, as this was happening prior to
changes in `pymbar` without the explicit call
Changes
08/05/2019 dotsdl, orbeckst, shuail, trje3733, brycestx, harlor, vtlim, lee212
* 0.3.0
Enhancements
- Amber TI parser (#10)
- Amber FEP (MBAR) parser (#42)
- Gromacs extended ensemble parser (#14)
- NAMD FEP parser (#7, #75)
- BAR estimator (#40)
- enhanced performance of Gromacs parsers with pandas.read_csv() (#81)
- GOMC TI and FEP parser (#77)
Deprecations
Fixes
- fixed TI estimator (PR #61)
- correctly use pV and U in the Gromacs parser (#59)
Changes
- defaults for statistical_inefficiency() are more conservative (#39)
- API Proposal was upgraded to API Principles (and updated)
(Note: release number 0.2.x was skipped.)
05/27/2017 dotsdl, ianmkenney, orbeckst
* 0.1.0
First release
Features:
- Parsers for GROMACS, including reduced potentials and gradients.
- Subsampler functions for slicing, statitistical inefficiency, equilibration
detection.
- Minimally functional estimators for MBAR, TI.
- high test coverage (works with data in alchemistry/alchemtests)