* update install instructions (#1744)
* update manifest to include all .gz files (#1746)
* update manifest to include all .gz files
* add min openmmforcefields pin
* bump cuda version to 11.8 (#1749)
* fix deprecation warning on view_components_3d (#1750)
* expose KartografAtomMapper alongside other AtomMappers (#1751)
* fix psutils import (#1779)
* fix psutils import
* swap import order
* [pre-commit.ci] pre-commit autoupdate (#1778)
updates:
- [github.com/tox-dev/pyproject-fmt: v2.8.0 → v2.11.1](https://github.com/tox-dev/pyproject-fmt/compare/v2.8.0...v2.11.1)
- [github.com/astral-sh/ruff-pre-commit: v0.13.3 → v0.14.10](https://github.com/astral-sh/ruff-pre-commit/compare/v0.13.3...v0.14.10)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* 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>
* rename openfecli fixture to avoid duplication with openfe fixture (#1755)
Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>
* 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
* add dill mock to fix openfe docs build (#1792)
* Fix issue 1795 (#1796)
* Update method name in CLI YAML documentation
* Fix command option case in CLI YAML guide
* manually add absolute settings news item to changelog (#1821)
* manually add absolute settings news item to changelog
* add link
* Fixes docstring to clarify argument does not have a default (#1819)
* Fixes docstring to clarify argument does not have a default
* Modernize typing
* fix ligand network cropping bug (#1822)
* fix ligand network cropping bug
* move to upstream func
* whitespace
* fix pydantic deprecation of copy method
* fix pydantic deprecation of dict method - septop (#1831)
* Updated CHANGELOG for 1.8.1
* fix changelog links
* add openeye w/ python 3.13 test to CI (#1745)
* add openeye w/ python 3.13 test to CI
* only run openeye on unbuntu w/ python 3.13
* add explicit openeye no
* bump python version for conda cron (#1748)
* remove mypy rdkit pin (#1753)
* remove mypy rdkit pin
* try more explicit import
* Revert "try more explicit import"
This reverts commit 00cc2a3729.
* disallow attr-defined error code
* try globally disabling attr-defined
* try specific override
* per-line ignores
* Make the multistate hybrid topology samplers not require the HybridTopologyFactory (#1768)
* make hybrid samplers not rely on htf but instead on the system & positions.
* Migrate validation to Protocol._validate in HybridTopologyProtocol (#1740)
* Migrate & add validation to Protocol._validate for hybrid topology Protocol
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Hannah Baumann <43765638+hannahbaumann@users.noreply.github.com>
Co-authored-by: Josh Horton <Josh.Horton@newcastle.ac.uk>
* Move rfe protocol (#1769)
Move RFE protocol files around
* HybridTop Unit methods (#1770)
* Break down the Hybrid Top protocol unit into various methods.
---------
Co-authored-by: Hannah Baumann <43765638+hannahbaumann@users.noreply.github.com>
* Have two separate system generators for state A & B in hybrid protocol (#1772)
Make it so that the states A and B are generated using two different SystemGenerator objects, allowing for partial charge transformations.
* HybridTop structural analysis via API rather than CLI (#1771)
* change structural analysis from using CLI to using API
* making some language clearer on github-facing things (#1758)
* making some language clearer on github-facing things
* :
* add pre-commit link
* clean up
* Moving AFE Protocols around a bit (#1775)
* move the protocols results to a single file and deduplicate
* rename base units file
* move units out of method files
* move a few things in init
* 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>
* update docs for multiple protocol units (#1793)
* Update docstring for hybridtop classes (#1794)
* Update docstring for classes
* [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>
* Small improvement in RelativeHybridTopologyProtocol docstring (#1797)
Updated class docstring to clarify the use of Hybrid Topology scheme.
* turn off zenodo retry (#1802)
* turn off zenodo retry
* remove retry_if_failed arg
* only run CI on macos python 3.12 (#1803)
* Turn AFE protocols into multiple units (#1776)
* Split the AFE protocol units into setup, simulation, and analysis.
* move to src layout (#1805)
* Move openfe project layout to `src`.
* Temporarily build pooch from main w/ hotfix (#1806)
* build with pooch@main to see if hotfix works
* add link
* make CLI starting guide easier to find from the landing page (#1787)
* make CLI starting guide easier to find from the landing page
* Python API -> API Docs
* bump ci
* bump example notebooks pin to 2026.01.26
* change a word
* clarifying language
* Update pyproject.toml (#1813)
* Update pyproject.toml
* update classifiers
* refactor: clean up test data handling (#1815)
* import pooch_cache from conftest
* remove unused files from pooch cache
* move zenodo cache to conftest
* remove duplicate code
* min pin pooch to fix data fetching (#1820)
* fix ligand network cropping bug (#1822)
* fix ligand network cropping bug
* move to upstream func
* whitespace
* fix api break check path (#1825)
* fix pydantic deprecation of copy method (#1829)
* fix scope mismatch with zenodo data (#1828)
* fix scope mismatch with zenodo data
* fix session scope
---------
Co-authored-by: Mike Henry <11765982+mikemhenry@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Irfan Alibay <IAlibay@users.noreply.github.com>
Co-authored-by: Hannah Baumann <43765638+hannahbaumann@users.noreply.github.com>
Co-authored-by: Josh Horton <Josh.Horton@newcastle.ac.uk>
openfe - A Python package for executing alchemical free energy calculations.
The openfe package is the flagship project of Open Free Energy,
a pre competitive consortium aiming to provide robust, permissively licensed open source tools for molecular simulation in the drug discovery field.
Using openfe you can easily plan and execute alchemical free energy calculations.
See our website for more information on the project, try for yourself from the comfort of your browser, and we have documentation on using the package.
License
This library is made available under the MIT open source license.
Install
Latest release
The latest release of openfe can be installed via mamba, docker, or a single file installer. See our installation instructions for more details.
Dependencies can be installed via conda through:
Development version
The development version of openfe can be installed directly from the main branch of this repository.
First install the package dependencies using mamba:
mamba env create -f environment.yml
The openfe library can then be installed via:
python -m pip install --no-deps .
Authors
The OpenFE development team.
Acknowledgements
OpenFE is an Open Molecular Software Foundation hosted project.