Recent Releases of openpathsampling
openpathsampling - openpathsampling 1.7.0
OpenPathSampling 1.7.0 contains several pieces of new functionality and some bug fixes. Most significant is probably the experimental new path tree functionality, which works with data stored from SimStore ("experimental" storage, now recommended for most use cases).
Enhancements
- Add
restart_at_stepforExternalEngine(for numeric filenames) (#1105) - Custom
PathDensityHistogram._add_ops_trajectory(#1154 #refactor) - Volume shooting point selector (#1151)
Experimental (beta) features
Bugs fixed
- Fix
SQLStorageBackend.load_storable_function_table(#1153 #experimental) - Fix histogram xvals (#1150)
Miscellaneous improvements
- Let UUID determine equality for ensembles (#1155)
- Improvements to continuous integration / automated testing (#1149, #1156)
- Improvements to documentation (#1159)
- Python
Published by dwhswenson over 1 year ago
openpathsampling - openpathsampling 1.6.1
OpenPathSampling 1.6.1 is a minor update, primarily focused on allowing OPS to run/be tested on Python 3.12. In practice, that means removing dependency on tools that prevented Python 3.12 support. In particular, this removes nose from our testing requirements, and deprecates our integration with PyEMMA, which is no longer maintained.
DEPRECATION: As of OPS 1.6.1, we no longer recommend the use of PyEMMAFeaturizerCV. PyEMMA is no longer maintained. Please do not create collective variables based on PyEMMA.
Miscellaneous improvements
- Test against Python 3.12; deprecate PyEMMA (#1145 #Deprecations)
- Cut off
nose(#1141 #upstream_changed) - Fix a few more setup -> setupmethod tests (#1142 #upstreamchanged)
- Python
Published by dwhswenson almost 2 years ago
openpathsampling - openpathsampling 1.6.0
This is a long-overdue (and huge) release for OPS. While the only highlight feature is the addition of S-Shooting, this release contains many updates to maintain usability of OPS as its dependencies change, as well as a number of important bug fixes that are recommended for all users.
Deprecations: The FileSetter for external engines (e.g., Gromacs) will be changing from a sequential numeric value to a random string. See #1102 for details.
New features
- S-shooting (#787 @singraber)
Other enhancements
- Clear old ExternalMDSnapshots during
iter_generate(#1066) - New analysis testing utilities (#1068)
- Account for modifier acceptance in engine movers (#1075)
- add nocopy option to NoModifier and Deprecate 'subsetmask' (#1079)
- Take care of coordinate modifcation in selector probability_ratio (#1076)
Experimental (beta) features
Bugs fixed
- Use MDTraj codecs in SimStore JSON serialization (#1116)
- Prevent double monkey-patching experimental storage (#1109)
- Actually check for CVDefinedVolume.lambda_max == "inf" (#1092)
- SimStore: Fix storable function serialization (#1088)
- SimStore: Fix issue with internalized snapshot box vectors (#1086)
- OpenMMEngine: use masses from mdtraj topolgy directly (#1085 @hejung)
- unbreak API call to selector.probability_ratio (#1082)
Miscellaneous improvements
- Support Python 3.10; Python 3.11 (#1133)
- Fix Dropbox download of precalculated results (#1128)
- revert openmmtools import guard from test notebook (#1106)
- clarify error message on missing units (#1122)
- update copyright to 2022 (#1097)
- Improved implementation of shooting point selector pick (avoid model that might introduce index error in subclasses) (#1110 @hejung)
- Add FutureWarning for default filesetter external engines (#1102 #Deprecations)
- make a missed string into a rawstring (#1096)
- Guard against openmm import warnings (including those from OpenMMTools) (#1091)
- Add CITATIONS.md (#1064)
- Prevent non-string names in StorableNamedObject (#1052)
- Updates in response to changes in dependencies (#1137, #1136, #1134, #1132, #1129, #1114, #1130, #1126, #1093)
- Improvements to continuous integration and testing (#1123, #1100, #1089, #1081, #1078, #1073, #1058)
- Improvements to documentation (#1090, #1087, #1083, #1057 @bdice)
Thanks always to maintainers @sroet and @dwhswenson.
- Python
Published by dwhswenson about 2 years ago
openpathsampling - OpenPathSampling 1.5.2
OpenPathSampling 1.5.2 is a minor release. It includes updates to support OpenMM 7.6, as well as some small bugfixes.
Bugs fixed
- Prevent errors in ShootingPointAnalysis with invalid (e.g., max length) trajectories (#1046)
- Raise FileNotFoundError if sql backend tries to read a file that does not exist (#1045) #experimental
Miscellaneous improvements
- Python
Published by dwhswenson over 4 years ago
openpathsampling - OpenPathSampling 1.5.1
OpenPathSampling 1.5.1 is a minor bugfix release. It fixes a bug in SimStore's ability to store/reload some CV types (specifically, CVs that save NumPy arrays). It also fixes a backward compatibility problem with live visualizations in scripts written for OPS before 1.5.0.
We're also happy to welcome @sroet as a maintainer of OPS, and as a "standard contributor." As a maintainer, @sroet has merge access to OPS repositories. As a standard contributor, PRs from @sroet will no longer be tagged with his username in release notes.
Bugs fixed
- Fix bug with SimStore CVs storing NumPy arrays (#1035) #experimental
- Fix bug in live visualizer setup with implicit hooks (#1034 @hejung)
Miscellaneous improvements
- Fix OpenMM engine docs on nframesmax (#1037 @hejung) #docs
- Fix DataFrame.sortindex future warning (#1036) #upstreamchanged
- Python
Published by dwhswenson over 4 years ago
openpathsampling - OpenPathSampling 1.5
OpenPathSampling 1.5 is a significant release, including many new features and enhancements. Highlights of this release are the implementation of Spring Shooting and the development of new "hooks" where users can patch in custom code during the simulation process, enabling much greater flexibility.
Note that the hooks are still considered beta code, and therefore some aspects of that API may change.
DEPRECATION: As of OPS 1.5, MDTrajTopology should be imported from openpathsampling.engines, not from openpathsampling.engines.openmm.
New features and enhancements
- Spring Shooting mover/move scheme (#850 @sroet)
- "Hooks" to enable more simulation flexibility (#755, #911 @hejung)
- Gracious Kill Hook (#914 @hejung)
- Warn if CVDefinedVolume CVs return iterables (#1030)
- Shooting point selector with arbitrary bias (#1024)
- Add global random number generator; support in shooting pt selectors and pathmovers (#998 @sroet, #1008 @sroet #1015)
- Move ndofs to engine; add engine.hasconstraints() (#979)
Experimental (beta) features
- SimStore: Periodic CVs (#990)
- SimStore: Make storable function modes customizable (#1004)
- SimStore bug fixes and minor improvements (#985, #995, #1002, #1003, #1016, #1027) #bugfix
Bugs fixed
- Make histogramming more robust (#1029 @sroet)
- Fix problem with repeated ensemble names in MISTIS (#988)
- Fix MISTIS minus ensemble not forbidding other states (#983)
- Fix problem with Histogram.bin_range not getting set (#972)
Miscellaneous improvements
- Move MDTrajTopology into
engines.topology(#1012 @sroet, #1014) #Deprecations - Reduce unnecessary object creation (#975, #976 @sroet, #978 @sroet)
- Fix problems with PyEMMA tests (#997, #1009, #1018 @sroet, #1022 @sroet, #1023 @sroet)
- make test less flaky (#999 @sroet)
- Switch notebook tests to nbval (#987)
- Add automatic testing against OpenMM release candidates (#1019, #1020, #1021)
- Improve interactions with CodeCov (#980, #991, #1025)
- Improvements to the documentation (#939, #970, #1010 @sroet)
- Pin OpenMM != 7.5.1 (#1017)
- Pin sqlalchemy!=1.4.0 (#996)
- Add Python 3.8, 3.9 to testing matrix (#993)
- fix numpy 1.20 DeprecationWarnings (#974)
- Python
Published by dwhswenson over 4 years ago
openpathsampling - OpenPathSampling 1.4.2
OPS 1.4.2 is a bugfix release, most importantly fixing a bug in TIS analysis for interface sets with more than 10 interfaces.
Bugs fixed
- Fix simtk JSON storage in SimStore (#961)
- Fix broken WHAMing if an InterfaceSet has more than 10 interfaces (#967 @sroet)
Miscellaneous improvements
- Update ujson pin (#965)
- Make more deterministic test for shooting point selector (#964 @sroet)
- Fix broken link in Readme.md of toy mstis examples (#963 @sroet)
- Switch to CI GitHub Actions (#959, #966 @sroet)
- Python
Published by dwhswenson about 5 years ago
openpathsampling - OpenPathSampling 1.4.1
OPS 1.4.1 is a minor release to fix issues with imports when not all integrations are installed.
Miscellaneous improvements
- Remove nose from test_helpers (#958)
- Fix so SimStore tests pass without simtk.unit (#957)
- fix omt is None error in test suite (#954 @sroet)
- Python
Published by dwhswenson about 5 years ago
openpathsampling - OpenPathSampling 1.4
OpenPathSampling 1.4 introduces SimStore, our (experimental) new storage system. It is faster and more flexible than the old storage system, and will be the only storage in OPS 2.0. As an experimental addition, its API is not locked. However, the parts that are likely to change deal with extending SimStore (e.g., supporting new types). Regular usage to save and load results of simulations should now be stable.
In addition, OPS 1.4 adds a reactive flux (Bennett-Chandler) calculation, plus many small improvements and bug fixes.
New features and enhancements
- Reactive flux (#924 @singraber)
- Internalized snapshots; random filenames for external snapshots (#933)
Experimental (beta) features
- SimStore: Simplify OPS Storage constructor (#950)
- SimStore: Support for OpenMM snapshots (#949)
- SimStore: Type identification (#947)
- Fix bug in SimStore when appending to non-existent files (#941) #bugfix
- SimStore: Tags (#940)
- SimStore part 2: Storable functions (and more) (#929)
- SimStore: New storage subsystem (part 1) (#928)
Bugs fixed
- fix for filename counter of gromacs engine (#946 @hejung)
- OpenMM instantaneous temp should work if positions not set (#938)
- Fix: OPS hangs when external engine errors/exits unexpectedly (#913 @oliverdutton)
Miscellaneous improvements
- Improve CV storage error message about missing templates (#935)
- Fixes for deprecation warnings and syntax warnings (#923 @sroet, #936 @sroet, #944 @bdice)
- Improvements to documentation (#932, #937, #939)
- Miscellaneous cleanup (#951)
- Python
Published by dwhswenson about 5 years ago
openpathsampling - OpenPathSampling 1.3
The highlights of OpenPathSampling 1.3 are the PLUMED wrapper CVs for OPS (previously an external repository), and the optional progress indicators for analysis. In addition, OPS 1.3 brings several bugfixes, and adds support for newer versions of dependencies.
New features and enhancements
- PLUMED Collective Variables in OPS (#910 @apdealbao)
- Gromacs engine and example updates (#909)
- Progress indicators for analysis (#895, #902, #906)
- storage.filename is now an absolute path and a read-only property (#903 @hejung)
Bugs fixed
- Pin ujson<2 (bug in later versions can break reloading) (#926)
- use uuid instead of 'is' for selecting ensembles in rate calculation (#919 @sroet)
- Fix missing names in ExternalMDSnapshot (#908)
- DirectSimulation should use engine.start/.stop (#905)
Miscellaneous improvements
- Support for ujson 3 ((#917 @sroet, #921 @hejung)
- Improvements and maintenance of devtools (#912, #926, #927)
- Support for pandas 1.0 (#898 @sroet, #925)
- Improvements to documentation (#901, #909)
- make tqdm optional for tests (#916 @sroet)
- Fix missing newline in the VisitAllStatesEnsemble (#900)
- Python
Published by dwhswenson over 5 years ago
openpathsampling - OpenPathSampling 1.2
OpenPathSampling 1.2 brings several small improvements, including a new method to facilitate equilibration in path sampling, and some under-the-hood updates that will facilitate features intended for future releases.
New features and enhancements
- Refactor RandomVelocity so engine can do the randomization (#890)
- Add PathSampling.rununtildecorrelated (#884, #894)
- Add progress meter adapter classes (#882)
Miscellaneous improvements
- Fix pandas API change: setvalue -> at (#896) #upstreamchanged
- Improvements to the documentation (#865, #887, #893)
- Improvements to the CI (#893)
- Python
Published by dwhswenson about 6 years ago
openpathsampling - OpenPathSampling 1.1
The marquee feature in OPS 1.1 is the addition of GROMACS support. That also introduces the external engine framework, which can be used by other MD engines.
Another important change is that OPS is now pip-installable and can be installed through conda's conda-forge channel (starting with 1.1, new versions of OPS will not be in the omnia channel). Also note that many tools that previously were bundled with OPS now are not. In particular, if you want to use any of the following packages, you must install them separately:
- OpenMM
- OpenMMTools
- PyEMMA
- MSMBuilder
- Jupyter
They're all just a conda install away, and as soon as they're in your environment, OPS will interface with them as before.
Deprecations: CVs based on MSMBuilder featurizers are deprecated. MSMBuilder can no longer be tested in our standard test setup. We haven't removed support, but we can't recommend using it.
New features
- External Engine (#144)
- Gromacs engine (#819)
- Path density: Bresenham interpolation (#875)
- Simplify
Trajectory.__getattr__(#879) - Add information to MinusMove change.details (#874)
Bugs fixed
- Fix bug with leftbinedge in histogram (#851 @sroet)
- Fix problems with storage for nonperiodic systems (#835 [part from @ajsilveira])
- Fix Py3 bug in getting function name when CV storage raises error (#830 @ajsilveira)
Miscellaneous improvements
- Reduce install requirements; make PyPI/conda-forge possible(#867, #876)
- Use Autorelease for version/release management (#883)
- Add subpackages as a space for user contributions (#849)
- Some toy engine reprs (#880)
- Various improvements to documentation (#881 @sroet, #859, #856 @sroet, #847, #770 @hejung)
- Various improvements to CI/testing (#877, #866, #848)
- Deprecate MSMBuilder (#853) #Deprecations
- Python
Published by dwhswenson about 6 years ago
openpathsampling - OpenPathSampling 1.0
OpenPathSampling 1.0 is ready for release! Major changes since 0.9.6 include:
- New license! OPS is now under the MIT license. Versions of OPS prior to 1.0 are still licensed under LGPL 2.1 or later.
- Officially supported Python versions are now 2.7, 3.6, and 3.7
- Significant refactoring to clean up many parts of the code. In unusual circumstances, these could lead to API breaks. For details, see PRs linked under "Miscellaneous improvements -> Refactoring and API cleanup" below.
Deprecations: Use the generic Details object instead of MoveDetails, which adds no additional functionality.
New features
- "Visit all states" ensemble (#826)
- Make WHAM's lnZ accessible from outside (#825)
- Add engine property to OneWayShooting (#805)
Miscellaneous improvements
- Switch to MIT License (#844)
- Switch to 2.7/3.6/3.7; deploy docs on 3.7 (#815, #824)
- Update developer install process (#840, #842, #843)
- Improve performance on trajectoryfrommdtraj (#839) #performance
- Additions and improvements in the documentation (#820, #825, #828, #831, #838)
- snapshotfrompdb uses same code path as other functions (#833)
- Improve continuous integration (#808, #811, #814, #829)
- Shooting selector tests (#827)
- Refactoring and API cleanup (#809, #816, #818, #821, #823)
- Python
Published by dwhswenson over 6 years ago
openpathsampling - OpenPathSampling 0.9.6
OpenPathSampling 0.9.6 includes several new features, as well as many improvements to the examples and documentation. Highlights include:
- Interface constrained shooting, an efficient technique in TIS
- Better ways to load trajectories for the OpenMM engine (especially from Gromacs trajectories)
- bugfix for minus interface ensemble in cases where the transition is not particularly rare
New features
- Tools to get correctly reduced box vectors for OpenMM (#799)
- Simple function to load TRR files (#799)
- "Part-In-B" network (used in TPS rate calculation) (#796)
- Interface constrained shooting (#788, #791, #790, #800) [parts by @bolhuis]
Bugs fixed
- maskedarray fixes (#803)
- bugfix in minus ensemble (#803)
- Attempt to fix for old openmmtools as well as new (#768)
- Fix push-docs-to-s3 for pip 10 (#785)
Miscellaneous improvements
- Updates to Examples (#798)
- Fix notebook tests (#797)
- Updates to docs (#795, #793)
- Changes to .gitignore files (#792)
- Fixes for continuous integration (#802)
- Python
Published by dwhswenson over 7 years ago
openpathsampling - OpenPathSampling 0.9.5
OpenPathSampling 0.9.5 includes various minor bug fixes and improvements, but also marks a significant milestone in our movement toward 1.0: we now have drafts of the articles describing OPS that we consider ready for submission!
Bugs fixed
- Only keep existing value stores in attribute_list (#783)
- Omit using rejected paths in correlation visualization (#782)
- Fix problems in notebook tests (#776)
- Fix problem with netCDF not playing nicely with
simtk.unit(#776) - Volumes should only be bounded on one side (#772)
- Fix
TISEnsembleso it allows 0 frames between interface and state B (#772)
Miscellaneous improvements
- Fix pandas deprecation warning : replace df.as_matrix() with df.values (#781)
- Update minus ensemble implementation (#772)
- Fix openmmtools.RestorableIntegrator error (#764)
- Better source code organization and management (#754, #760)
- Add acknowledgments to docs (#766)
- Python
Published by dwhswenson over 7 years ago
openpathsampling - OpenPathSampling 0.9.4
OpenPathSampling 0.9.4 includes a few new features, several important bug fixes, and a lot of minor improvements. A few highlights include:
- New ability to include velocities when creating an OPS trajectory from an MDTraj trajectory
- New default colors in visualizations (better visibility for the most common type of color blindness)
- Significant updates to the documentation
- Major improvements in Python 3 support
- Critical bug fix in the direct MD flux calculation
- Critical bug fix in two-way shooting
Details on all improvements below.
New features
- Add velocities as input to
trajectory_from_mdtraj(#750) - Tools for converting flux to
pandasstructures (#735)
Bugs fixed
- Allow unicode for string options in engine option check (#757)
- Fix bug in
BackwardFirstTwoWayShooting(#752) - Fix problem with
HistogramPlotter2Dlimits (#732) - Fix bug in
snapshot.md box_vectors(#731) - Fix bug in
DirectSimulationflux (#726)
Miscellaneous improvements
- Default path tree colors are better for color-blind (#733)
- Improvements to documentation (#751, #748, #744, #737, #729, #723)
- Improved Python 3 compatibility (#743, #741, #739, #738)
- Improvements to examples (#746, #743, #719 [by @bolhuis])
- Behind-the-scenes upates to CI, testing, and deployment (#758, #749, #747, #745, #742)
- Dev install for simple developer installs (#728)
- Code readability updates (#724)
- Python
Published by dwhswenson almost 8 years ago
openpathsampling - OpenPathSampling 0.9.3
Long-overdue release, with several new features and lots of little fixes. Includes significant progress toward Python 3 support, which should be fully complete within the next few releases.
New features
- Velocity direction modifiers (traditional delta-p) for 2-way shooting (#650)
- Channel analysis tools to study switching between reaction channels (or different transitions) (#658)
resampling_statisticsmodule to get uncertainties frompandas.DataFrameresults (#684)safemodeto load CVs without loading the stored functions (#695)PseudoAttributes: caching storage for generalizedCollectiveVariable-like functions (not just of snapshots) (#691)- New TIS analysis subsystem in
openpathsampling.analysis.tis(#686)
Miscellaneous improvements
- Major progress toward Python 3 support (#690, #696, #708, #713)
storage.tagsworks, as well asstorage.tag(#698)- Faster ensemble check for the case that the trajectory was generated using
can_append/can_prepend(#669) - Refactor
CommittorSimulationinto reusableShootFromSnapshotsSimulation(#667) - Miscellaneous storage improvements
- Miscellaneous performance improvements
- Miscellaneous updates to docs, testing, and continuous integration procedures
Bugs fixed
- Fix bug in OpenMM instantaneous temperature (#649)
- Fix (rare) bug in acceptance probability for 2-way shooting (#652)
- Fix bug in deserialization/reloading of OpenMMTools integrators (#675)
- Fix bug in multiple state rate calculation from
DirectSimulation(#706)
- Python
Published by dwhswenson over 8 years ago
openpathsampling - OpenPathSampling 0.9.2
A few new features and some significant clean-up as we prepare for 1.0.
Note that the changes in the Details object have the potential to break compatibility with older code. Please check PRs #629 and #633 if that is likely to be a problem for you.
Changes in this release include:
- Added two-way shooting (#600)
- Clean-up of how Details are handled (details are only for move changes; not samples) (#629, #633)
- Load a trajectory to OPS (via MDTraj) with ops_load_trajectory (#645)
- Items from storage can be loaded with negative numbers, following Python list index convention (#612)
- CSS for visualizations moved to separate file (#574)
- New conveniences for restarting a simulation (#616)
- RandomVelocities respects constraints (#618)
- Miscellaneous bugfixes, documentation improvements, and other minor improvements
- Python
Published by dwhswenson about 9 years ago
openpathsampling - OpenPathSampling 0.9.1
Continuing clean-up and adding conveniences as we prepare for 1.0.
Some improvements new in this release:
- switch JSON library to ujson (#582)
- masses, n_degrees_of_freedom, and instantaneous_temperature snapshot features (#579, #589)
- renamings surrounding what used to be live_visualization (#596)
- end checking for "safe imports" in CVs (#599)
- improvements to the committor calculation (#601)
In addition, we removed lots of unnecessary/outdated code, reorganized several sections for better modularity, cleaned up our examples, and gave the documentation a long-overdue update.
- Python
Published by dwhswenson over 9 years ago
openpathsampling - OpenPathSampling 0.9.0
First public (pre)release of OpenPathSampling.
OPS is now feature-complete for 1.0, and mostly API-stable. While we clean up the code and check the corners for bugs on our way to 1.0, we'd like to encourage people to get familiar with us by trying our 0.9 release.
- Python
Published by dwhswenson over 9 years ago