Commit Graph

394 Commits

Author SHA1 Message Date
Alyssa Travitz
7e833b8d05 Merge branch 'main' into cli/refactor_quickrun_result 2026-01-21 15:14:29 -08:00
Alyssa Travitz
64ec0e7cc5 turn off zenodo retry (#1802)
* turn off zenodo retry

* remove retry_if_failed arg
2026-01-21 15:09:27 -08:00
Alyssa Travitz
ebbbbf8cae remove unused code 2026-01-21 14:12:46 -08:00
Alyssa Travitz
b5d7db4fae make private 2026-01-21 12:11:29 -08:00
Alyssa Travitz
e685ff3c38 remove boilerplate 2026-01-21 12:09:48 -08:00
Alyssa Travitz
013c2f34fd Merge branch 'main' of github.com:OpenFreeEnergy/openfe into cli/refactor_quickrun_result 2026-01-15 14:42:18 -08:00
Irfan Alibay
d3a5927e14 Create setup, run, and analysis units for HybridTop Protocol (#1773)
* Turn Hybrid Topology protocol into 3 units.

---------

Co-authored-by: Alyssa Travitz <31974495+atravitz@users.noreply.github.com>
2026-01-15 21:35:54 +00:00
Alyssa Travitz
e240b8633d adding some ideas 2026-01-14 13:53:50 -08:00
Alyssa Travitz
375899fce7 move quickrun result to its own file 2026-01-14 10:05:42 -08:00
Alyssa Travitz
852004e274 update tests to use dataclass 2026-01-14 09:59:33 -08:00
Alyssa Travitz
0c152cc88e update tests to use dataclass 2026-01-14 09:27:48 -08:00
Alyssa Travitz
aa73c0c6e8 refactor quickrun data into dataclass 2026-01-14 08:05:43 -08:00
Alyssa Travitz
907cefd24f openfe gather: add progress bar for loading JSONs (#1786)
* all the profiling

* make progress bar pretty

* revert typing thing

* news

* all the profiling

* make progress bar pretty

* revert typing thing

* news

* update expected outputs

* update expected outputs
2026-01-09 15:01:30 -08:00
Alyssa Travitz
990b77b7a3 rename openfecli fixture to avoid duplication with openfe fixture (#1755)
Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>
2026-01-07 01:34:04 +00:00
Irfan Alibay
3c59eae026 Disable NAGL as a partial charge backend when OEToolkit is installed but not chosen as the registry backend. (#1762)
* NAGL can no longer be used with oechem installed if you are using the rdkit backend.

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Alyssa Travitz <31974495+atravitz@users.noreply.github.com>
2026-01-07 00:21:09 +00:00
Alyssa Travitz
a3e1108ad8 add docs for gathering septop and abfe (#1737)
* add autodocs for gathering septop and abfe

* update docstrings

* add blurb to openfe gather docs

* add missing docstrings

* add warning

* add zstandard to docs mocks

* Apply suggestions from code review

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>

* add cinnabar to doc mocks

---------

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>
2025-12-08 08:41:26 -08:00
Alyssa Travitz
2c8feff5a8 feat: experimental openfe gather-septop & openfe gather-abfe support (#1710)
* feat: support `openfe gather` for septop (#1638)

* copy septop analysis notebook over

* add todos

* add plan and test

* format

* add failing tests

* comment out secondary tests

* add cli tmp

* clean up imports

* fix type hints in gather.py

* test passes for gather raw

* test passes for ddg

* tests pass for dg

* pull more error handling into septop

* condense code a bit

* MBAR uncertainty

* remove planning stub

* Revert "MBAR uncertainty"

This reverts commit bf32aa3c6e.

* format

* test with tolerances

* precommit format

* remove accidentally committed file

* Apply suggestions from code review

Co-authored-by: Hannah Baumann <43765638+hannahbaumann@users.noreply.github.com>

---------

Co-authored-by: Hannah Baumann <43765638+hannahbaumann@users.noreply.github.com>

* feat: add abfe gathering support first draft (#1686)

* add abfe MVP with tests

* Apply suggestions from code review

Co-authored-by: Hannah Baumann <43765638+hannahbaumann@users.noreply.github.com>

* fix incorrect var name

* fix abfe legs extraction

* fix merge bug

* remove unused import

---------

Co-authored-by: Hannah Baumann <43765638+hannahbaumann@users.noreply.github.com>

* gather: fix septop rounding (#1696)

* only apply precision rounding at the end

* clean up code

* gather: update names parsing (septop and abfe) (#1698)

* update abfe names parsing

* update septop names parsing

* add todo

* get names from alchemical_components

* remove todo

* gather: refactor/unify rounding behavior (#1697)

* format septop outputs with format_df_with_precision

* only apply precision rounding at the end

* update gather abfe formatting to use format_df_with_precision

* remove unused import

* switch back to checking final outputs for abfes

* clean up code

* add rounding for dg mle

* simplify code

* gather: unify code structure between rbfe, septop, & abfe (#1700)

* format septop outputs with format_df_with_precision

* only apply precision rounding at the end

* update gather abfe formatting to use format_df_with_precision

* remove unused import

* switch back to checking final outputs for abfes

* clean up code

* add rounding for dg mle

* simplify code

* make gather_septop.py code more similar to gather.py

* make gather_abfe.py code more similar to gather.py

* remove unused function

* add stdout message for experimental gathering support (#1703)

* add warnings for experimental gathering

* use click to make output look nicer, not a true warning

* add warning text

* make yellow

* add tests

* remove unused code

* add news item

* speed up names gathering

* names should always return str

* add single repeat tests for abfe and septop

* remove unused imports

* make `gather septop/abfe` output headers accurately reflect error type (#1712)

* gather septop/abfe output headers accurately reflect error type

* split into func

* label all uncertainty columns more specifically

* add docstring

* update test data

* update error calculation

---------

Co-authored-by: Hannah Baumann <43765638+hannahbaumann@users.noreply.github.com>
2025-12-04 07:34:20 -08:00
Alyssa Travitz
b57d3e12a6 remove unused fetch command (#1732) 2025-12-04 00:07:48 +00:00
Alyssa Travitz
78d0f901f8 make sure all names are returned as strings (#1711) 2025-12-02 07:07:55 -08:00
Alyssa Travitz
8ab0f8668d pull names directly from ligandmapping (#1702)
* pull names directly from ligandmapping

* update news entry
2025-12-01 18:01:33 +00:00
Alyssa Travitz
013b4b3213 fix pandas applymap deprecation warning (#1701) 2025-11-26 21:49:29 +00:00
David W.H. Swenson
20ae9f88a0 Add docstring to explain the rounding in gather (#1687)
* Add docstring to explain the rounding in gather

* Update openfecli/commands/gather.py

Co-authored-by: David W.H. Swenson <david.swenson@omsf.io>

* formatting: one sentence per line

* Apply suggestions from code review

Co-authored-by: Alyssa Travitz <31974495+atravitz@users.noreply.github.com>

---------

Co-authored-by: Alyssa Travitz <31974495+atravitz@users.noreply.github.com>
Co-authored-by: Alyssa Travitz <alyssa.travitz@omsf.io>
2025-11-24 07:16:26 -08:00
Alyssa Travitz
f710d3c1e9 Feat/improve names gathering (#1691)
* first pass at querying names from gufe objects

* code clean up

* adding (bloated) test, needs trimming still

* fix unit_results error handling

* updating test data

* Apply suggestion from @jthorton

Co-authored-by: Josh Horton <Josh.Horton@newcastle.ac.uk>

* use ChemicalSystem

* add news item

---------

Co-authored-by: Josh Horton <Josh.Horton@newcastle.ac.uk>
2025-11-22 00:01:49 +00:00
Alyssa Travitz
82703bec21 Refactor/gather use pandas (#1690)
* add return type hints

* first pass at using pd dataframes

* add helper function

* it works but is ugly

* fix copy pasta

* do it better with pandas

* docstrings

* var names

* add docstring

* add example to docstring

* make string check more rigorous
2025-11-21 20:49:59 +00:00
Mike Henry
b0789ff0ae Add logging control (#1585)
* do we test this at all?

* start of logging improvements

* first pass at logging, worried about performance

* setup a base class + add type hints

* add placeholder url ref

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* update to new logging control

* Fix imports

* remove bit left over from being able to delete these log controlers

* looks like ... is used more than pass

* formatting fix

* Grab new format rule from main

* run ruff check --fix on conflicting files

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Added tests

* see if this fixes the doc build

* add back debugging code

* update openmm doc url

* add note about jax warning

* bump

* Remove debugging code to see if that fixes doc build

* ruff format

* Add url

* switch to using module instead of class w/ static methods

* Update docs/guide/troubleshooting.rst

Co-authored-by: Alyssa Travitz <31974495+atravitz@users.noreply.github.com>

* ruff fixes

* Ruff fix

* Added news entry

* Refactor to move things to private namespace

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Alyssa Travitz <31974495+atravitz@users.noreply.github.com>
2025-11-21 07:30:53 -08:00
Alyssa Travitz
b693d37c8a ruff: address pycodestyle changes (#1668)
* apply E741: ambiguous variable name check

* apply E713: 'not in' fixes

* address E721 with isintance() checks

* fix bare excepts

* precommit
2025-11-11 11:34:29 -07:00
Alyssa Travitz
18f211db97 ruff linting: f-strings and whitespace (#1667)
* apply F541: unused f-strings

* apply W29: whitespace fixes

* add pyflakes check

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-11-11 00:19:12 +00:00
Alyssa Travitz
588f552ca9 add ruff isort linting rule (#1665)
* isort for docs and utils

* isort for top-level openfe, analysis, setup

* isort setup/

* isort storage/

* isort protocols

* isort openn_afe

* isort openmm_rfe

* isort all protocols

* apply isort to openfe/tests

* apply isort to openfecli

* apply isort to devtools/

* add TODO for setup init
2025-11-10 21:58:30 +00:00
Alyssa Travitz
036869ae81 Ci/add ruff format part4 - the final format! (#1623)
* format cli tests top level

* format cli commands tests

* format cli parameters tests
2025-10-24 23:50:52 +00:00
Alyssa Travitz
2311a2f2d9 ruff formatting part 2 - everything but the tests (#1610)
* add more checks

* make precommit manual

* apply formatting to pyproject.toml

* add TODO

* remove unneeded, add a few more

* add ruff, but turn everything off

* add openfe known first party

* format highest-level files

* first half of openfe protocols

* second half of openfe protocols

* openfe protocols formatting, with alyssa's fmt skips

* add ruff formatter to precommit

* fmt: off all vendored _rfe_utils code

* addressing review comments

* format openfe/utils

* format openfe/setup

* first batch of cli formatting

* second batch of cli formatting

* formatting the rest of openfecli commands

* format openfecli/parameters

* format openfe/storage

* run precommit

* Update openfecli/commands/gather.py

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>

* update example notebooks branch for v1.7.0 docs changes (#1615)

* bump example notebooks branch

* add ipykernel to env

* roll back to fixing septop branch

* i dont think we want ipykernel

* bump to tmp_fix_docs branch

* point to branch revert-237-v1.7_cookbooks

* point to latest example notebooks release

* remove colab button, point to updated example notebooks, reorg landing page (#1618)

* remove colab button from example notebooks in docs

* point to example notebooks 2025.10.2

* replace 'try' with CLI

---------

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>
2025-10-24 14:09:45 -07:00
Josh Horton
774c42ed48 Fast/ adaptive settings (#1523)
* add adaptive settings method

* remove env file change

* expose the adaptive settings via the CLI

* fix indent, stop using frozen copy

* pr feedback

* typo

* gj pycharm

* update tests

* update base settings

* fix tests, add option to supply input settings

* fix tests, remove redundant septop settings changes

* Update openfe/protocols/openmm_rfe/equil_rfe_methods.py

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>

* fix nb tests, add news

* Update news/rbfe_settings_update.rst

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>

* Apply suggestion from @IAlibay

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>

* Apply suggestion from @IAlibay

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>

---------

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>
Co-authored-by: Alyssa Travitz <31974495+atravitz@users.noreply.github.com>
Co-authored-by: Hannah Baumann <43765638+hannahbaumann@users.noreply.github.com>
2025-10-20 11:32:16 -07:00
Alyssa Travitz
b9f7593b2d migrate to pydantic v2 (#1535) 2025-10-10 23:02:57 +00:00
Mike Henry
a312bc2f39 Fix test to check if we are printing --allow-partial when a user uses --allow-partial (#1564)
* escape string correctly

* Fix test to check if string is printed

This test used to use pytest.warns to check if we printed a string to
the terminal. This isn't the right way to test if things get printed to
terminal since it only checks warnings raised in python-land. The test
passed since the regex used to match warnings ended up matching warnings
raised since it was a negated character class which matches a single
character that is not any of the characters listed inside.
2025-10-10 20:16:45 +00:00
Josh Horton
3453c57fb3 Update openfecli/parameters/plan_network_options.py
Co-authored-by: Alyssa Travitz <31974495+atravitz@users.noreply.github.com>
2025-10-07 14:35:49 +01:00
Josh Horton
c7428f8f33 check the default CLI settings in testing 2025-09-25 09:37:38 +01:00
Josh Horton
9d938576a6 Change the default atom mapping in the CLI to Kartograf 2025-09-22 17:29:40 +01:00
Mike Henry
a0154ef488 Bump number of retires when fetching data with pooch (#1487)
I've seen a few cases in the wild where CI fails because a file failed
to download. I think we should try bumping to 5 since with each retry it
increases the wait time and I think that ~3s might be too fast so I want
to try 5s.

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>
Co-authored-by: Alyssa Travitz <31974495+atravitz@users.noreply.github.com>
2025-08-26 07:38:49 -07:00
Alyssa Travitz
b63d63761b try using as_file wrapper 2025-07-15 10:52:56 -07:00
Alyssa Travitz
7be2225ff7 update docs to show default as element_change=True (#1380)
* update docs to show default as element_change=True

* Update openfecli/commands/plan_rbfe_network.py

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>

---------

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>
2025-06-23 10:14:40 -07:00
Alyssa Travitz
cdfead0616 make tutorial data use parallel repeats instead of serial repeats 2025-06-12 09:12:49 -07:00
Alyssa Travitz
9f386ab933 Update CLI help messages (#1265)
* updating misc help messages

* add view ligand network help message and docstirng

* minor language changes

* whitespace :(

* fixing whitespace
2025-06-05 13:12:02 -07:00
Alyssa Travitz
098c0a8a84 updating syntax for click 8.2 (#1276) 2025-05-27 18:35:44 +00:00
Mike Henry
d2e84eef9e Exit with return value from pytest.main (#1297)
* exit with the return value of pytest.main when running openfe test

* always restore env
2025-05-27 08:27:04 -07:00
Alyssa Travitz
0bd14c7b79 add retries for flaky notebooks (#1278) 2025-05-21 17:11:16 +00:00
Alyssa Travitz
e4cced26c3 updating nb name (#1281) 2025-05-21 09:28:10 -07:00
Alyssa Travitz
148af2694c Update cli docs (#1264) 2025-04-30 13:46:11 -07:00
Alyssa Travitz
b6c7f19c81 immediate print planning cli output (#1254)
* immediate print planning cli output

* adding news item
2025-04-24 14:35:03 -07:00
Alyssa Travitz
3dc10653d1 require -o option for CLI charge generation (#1255)
* require -o option for charge generator

* adding a test for missing -o
2025-04-24 14:08:12 -07:00
Alyssa Travitz
e42432d5b0 pretty print tables with rich (#1246)
* add pandas construction

* removing csv writer

* replicating original behavior

* add rich table

* split into function

* make names clearer

* adding adjustments from rebase

* put it in a box

* adding tsv flag

* update tests to use tsv flag

* add smoke test for pretty print

* adding file creation test

* adding news item

---------

Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>
Co-authored-by: Mike Henry <11765982+mikemhenry@users.noreply.github.com>
2025-04-24 10:02:26 -07:00
Alyssa Travitz
aedc719aa5 Single repeat error handling (#1243)
* fail on first leg with too few repeats

* pass through all failed edges

* adding news entry

* improve error message

* fix test
2025-04-23 17:58:21 +00:00