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_step for ExternalEngine (for numeric filenames) (#1105)
  • Custom PathDensityHistogram._add_ops_trajectory (#1154 #refactor)
  • Volume shooting point selector (#1151)

Experimental (beta) features

  • SimStore performance improvements and fixes (#1157 #enhancement)
  • New path tree (#1048 #enhancement)

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

  • improvements to unpatch after using SimStore (#1065)
  • add simstore table access via slice (#1050)

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

  • Fixes for OpenMM 7.6 RC (#1051) #upstream_changed
  • Fix syntax warning (#1044)

- 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

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 TISEnsemble so 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 pandas structures (#735)

Bugs fixed

  • Allow unicode for string options in engine option check (#757)
  • Fix bug in BackwardFirstTwoWayShooting (#752)
  • Fix problem with HistogramPlotter2D limits (#732)
  • Fix bug in snapshot.md box_vectors (#731)
  • Fix bug in DirectSimulation flux (#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_statistics module to get uncertainties from pandas.DataFrame results (#684)
  • safemode to load CVs without loading the stored functions (#695)
  • PseudoAttributes: caching storage for generalized CollectiveVariable-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.tags works, as well as storage.tag (#698)
  • Faster ensemble check for the case that the trajectory was generated using can_append/can_prepend (#669)
  • Refactor CommittorSimulation into reusable ShootFromSnapshotsSimulation (#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