Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

july update #5

Open
wants to merge 128 commits into
base: master
Choose a base branch
from
Open

july update #5

wants to merge 128 commits into from

Conversation

dominicrufa
Copy link
Collaborator

No description provided.

proteneer and others added 30 commits May 23, 2024 15:21
)

* WIP, mol_a ref implementation.

* Process both G1 and G2

* WIP

* Accidental commit

* WIP

* WIP

* WIP

* Update timemachine/fe/mcgregor.py

Co-authored-by: Matt Wittmann <[email protected]>

---------

Co-authored-by: Matt Wittmann <[email protected]>
* Adds normalized kl divergence metric

---------

Co-authored-by: Josh Fass <[email protected]>
Co-authored-by: Matt Wittmann <[email protected]>
…ss (#1311)

* Avoid reading in an invalid sample, triggering an invalid memory access

* Doesn't impact correctness of water sampling.
* Happens when the number of proposals left is fewer than the batch
  size. In this case the samples that are selected for the idx in the
batch are stale and may be sampling invalid states. In the case that the
final mol (by idx) was selected and it was a targeted inner move then
the index of the new sample would be out of bounds triggering a failure.
A very rare occurrence which is why this was not caught initially.

---------

Co-authored-by: Matt Wittmann <[email protected]>
* Fix warning

* Fix test

* Fix validation condition

* Implement execute_batch_sparse
* Use fast real to int64 conversion for all recent cards

* 30% faster on RTX 4090, 25% faster on L4s

* Support back to Cuda Arch 6.1, oldest cuda arch we use in development
* Adds verify_chiral_consistency_of_core to verify cores quickly

* Generating charges is slow and unnecessary
Baseline performance improvements.
Fix max_cores off-by-1 error.
* Fix nightly test

* Move assertion up
* Move HREXPlots for consistency

* Remove unused argument

* Remove replica-state distribution convergence plot

Not particularly useful in its current form and uses a lot of memory
…#1321)

* Add failing test, remove nightly mark from vacuum

* Fix off-by-one misalignment of replica indices and frames in output
* Moves top level nonbonded tests to nonbonded directory
* Moves to using pytest parameterize
* Avoid accumulating memory in tests
* Makes it more explicit where things failed
* Avoid reading frames from disk in loop

* Write out json file of benchmarks

* Easier to generate multiple json files and plot them

---------

Co-authored-by: Matt Wittmann <[email protected]>
)

* Add HREXSimulationResult, move hrex-specific fields

* Add test assertions

* Add methods to extract trajectories by replica

* Add test

* Move test file
…f_and_err_from_u_kln (#1324)

* Adds failing test
* Return max of MBAR error (if finite) or bootstrapped error
* Renamed `bar_with_bootstrapped_uncertainty` to `bar_with_pessimistic_uncertainty`
---------

Co-authored-by: Matt Wittmann <[email protected]>
Co-authored-by: Josh Fass <[email protected]>
* Correct docstring in get_cores

* Bitten by this thinking it was atoms and not edges. Top level docs
specify that it is edges

* Fix exception wording as well
…1329)

* Remove unnecessary array copy

Return type of StoredArrays._chunks is incorrect; "chunk" here is
already an array

* Fix return type of _chunks

* Add note on use of advanced indexing

* Fix misleading docstring
* Add failing test for HREX determinism with local MD

* Only impacts local md

* Avoid using global numpy random for seed
* Adds sample_with_context_iter to get frames in memory

* Allows more fine grained control of when data is in memory or on disk

* Avoid reading chunks into memory for storage

---------

Co-authored-by: Matt Wittmann <[email protected]>
* update to 1.20.3-1ubuntu2.1

* Update Dockerfile

Co-authored-by: Forrest York <[email protected]>

---------

Co-authored-by: Forrest York <[email protected]>
* Improves error message of moving atoms too far

* Minor performance improvements, only look at protein/ligand (1/3 of
the atoms in some systems, though don't think this makes much if any
difference)
* Clean up some type hints
* Clean up docstrings
* Adds a test for the failure
* Remove redundant definition

* Move definition to usage site
…he min_cutoff threshold (#1338)

* Store interacting atoms (w_coord == 0.0) on the InitialState, in this implementation they are simple atoms in mol a, the core for non-endstate and mol_b
* Make placeholder_ff.py -- one generic type per potential
* Exercise use of placeholder ff instead of _sc ff in verify_chiral_consistency_of_core
badisa and others added 30 commits December 3, 2024 15:40
* Upgrade Cuda to 12.4.1
* Swap CI tags
* Improve gitlab runner container pulling
* Adds failing test

* Unable to find a NonbondedInteractionGroup potential triggers failure due to being
wrapping inside a SummedPotential

* Unwrap summed potential in prepare_host_edge

* This is a cludge, the real fix would be to unify the topology classes
rather than having different returned potentials for each
* Use base docker file and copy curand

* Only need curand and cudart, can avoid hundreds of MBs of data by copying curand from the devel image
* Fixes failing nightly tests (MTM + buckyball water sampling)
* Use SMIRKS patterns for Env handler
* A few cases have failed minimization due to the threshold, but do run stably. Now that #1401 is in place, unstable
simulations will be caught eventually.
* Correctly use warnings

* Adds support for re-balancing the bisection lambda schedule before running HREX

* Currently assuming that the final frame of the nearest simulation from
bisection will be stable. Needs a more robust approach

---------

Co-authored-by: Josh Fass <[email protected]>
* Upgrades OpenMM from 8.0.0 to 8.2.0
* As of [8.2.0](https://github.com/openmm/openmm/releases/tag/8.2.0), can pip install OpenMM. Avoids the need to do a custom build and doesn't install its own version of Cuda.
* Reduces docker container size by 0.1GB by avoiding the custom OpenMM build
* Removes a warning I had been seeing. Documentation here: https://cmake.org/cmake/help/latest/module/FindPython.html 
* Previous methods were deprecated in 3.12 https://cmake.org/cmake/help/latest/module/FindPythonInterp.html https://cmake.org/cmake/help/latest/module/FindPythonLibs.html
* Removes an `include_directories` call that should have been removed all the way back in #347 when we moved to using the CUB bundled with CUDA.
* 🎉 To another great year 🎉
* Fix casing warning in Dockerfile

* Remove docker prune, no longer relevant in latest CI

* Push cache into the image layers

* Remove VIM from dockerfile, unused and can be installed adhoc
* Avoid hard coding a version, which was inconsistent with setup.py, in the dockerfile
* Fixes a typo in the Dockerfile
Modifies the clang-format configuration to enforce existing conventions:
* Enforces alignment of comments for function parameters
* Enforces style for pointers and references (int *foo rather than int* foo).
* Enforces that namespaces have a comment at the closing brace which specifies the namespace's name.
* Type hinting and minor clean up of SingleTopology

* Reviewing the code for a better understanding of the code and cleaning as I go
* Moves the constructor docstring of SingleTopologyRest to __init__
* Specify dtype on construction of array, rather than defaulting to
float64 then converting
* Make docstrings/comments more precise

* Clean up single topology tests

* Remove unused code
* Consistently call AddHs, by using ligand_from_smiles. Some tests still
have the warning, but wasn't certain enough to justify changing
* Move linting to CPU only instance

* Reducing the number of jobs that require GPUs
* Cache AM1BCC/AM1 charges on the molecules for relevant handlers.

* Things get really slow, if you have to generate the charges each time
* Remove Mypy as dependency when installing outside of linux

* Mypy only used when generating the stubs for the C++ build.

* Store C++ files in package data

* Ensures that can upload package to pypi and be installable.
* Adopt the convention of package data described in https://setuptools.pypa.io/en/latest/userguide/datafiles.html#subdirectory-for-data-files

* Adds dist directory to .gitignore

* Adds CI Job for packaging

* To verify that we can package the repo and install it.

* Minor clean up of comment
* Convert uM to kJ using same temperature as simulations

* Should investigate changing DEFAULT_TEMP to 298.15 to match experiments, but requires more validation.
* Remove enforce_chirally_valid_dummy_groups

* Uncurry setup_end_state_harmonic_bond_and_chiral_potentials

* Uncurry find_chirally_valid_dummy_groups

* Simplify dummy group and anchor selection

Since chiral validity check is no longer needed, can select dummy
groups independently for A -> B and B -> A

* Combine dummy group and angle anchor selection, simplify

* Simplify: remove verify argument

Since end-state chiral restraint setup doesn't need to be blazing fast
anymore, we can simplify to always perform (reasonably cheap) sanity checks.

* Recombine setup_end_state*

Since there's no longer a reason to separate end-state hb and chiral
restraint setup, combine with the remaining end-state setup code for consistency.

* Remove custom exception type
* Update to use miniforge

* Move to improve cache
* Add NN charge handlers
* Bump to Python 3.12

* Modify code to get minimal environment

* Fix up linting

* Maybe too aggressive updating things, but wasn't sure why the error
  popped up

* Fix failure

* Include dependencies in environment.yml

* Avoids a double installation of numpy/scipy

* Fix failing test

* The resourcelib approach is being janky

* Fixes failing test due to change in RDKit conformer

---------

Co-authored-by: Matt Wittmann <[email protected]>

* Rename environment

* Make black/flake8 match pre-commit

* Fix version of setup.py to be greater than 64
---------

Co-authored-by: Matt Wittmann <[email protected]>
* Purge attic

* Remove exclude patterns
Calling setup.py is deprecated; use build package instead
* Replace black, flake8, isort with ruff

* Apply formatting changes

* Add entry to .git-blame-ignore-revs

* Remove excludes from ruff config

These are duplicated in pre-commit config.

* Use suggested pre-commit exclude syntax
* Add padding to memory checking of CUDA

* See if this catches anything

* Add failing test

* Well that was easy

* Fixes invalid memory write

---------

Co-authored-by: Matt Wittmann <[email protected]>
* Fix up README mention of which OFF FF

* Also fix a typo

* Remove unused Datasets class

* This is as archaic as it gets
* Uses Compute-sanitizer consistently in tests

* Inconsistency added in #1464
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants