Open Free Energy (OpenFE)

repository·main·Indexed 43 days ago

https://github.com/openfreeenergy/openfe

A Python package for planning and executing alchemical free energy calculations to support molecular simulation in drug discovery. It provides a core library for defining LigandNetworks and AlchemicalNetworks, along with a CLI for network planning (e.g., plan-rbfe-network), execution via quickrun, and result gathering.

Tokens
43.6K
Snippets
108
Records
207
Agent score
53%

What's inside OpenFE

  1. Overview of the OpenFE toolkit

    main

    OpenFE is a free and open-source Python framework designed for performing alchemical free energy calculations. It provides a unified toolkit to plan, execute, and analyze these calculations using a variety of different methods.

    Key resources for developers include:

  2. Tutorials for Molecular Dynamics (MD) and Post-Simulation Analysis

    main

    OpenFE documentation covers simulation and analysis workflows:

    • Molecular Dynamics (MD): A walk-through for running conventional (non-alchemical) MD simulations.
    • Post-Simulation Analysis with Cinnabar: A tutorial on using the cinnabar Python package to analyze results, such as generating Maximum Likelihood Estimation (MLE) estimates of absolute free energies and plotting free energy networks.
  3. Use the OpenFE CLI interface

    main
    OpenFE provides a command line interface (CLI) designed to facilitate common, less complicated tasks and to make it easier to integrate OpenFE into non-Python workflows. While the Python API is the primary way to interact with the library, the CLI acts as a wrapper around specific parts of that API for streamlined execution.
  4. Tutorials for Absolute Free Energies (ABFE/AHFE)

    main

    OpenFE supports absolute free energy protocols:

    • Absolute Binding Free Energy (ABFE): A walk-through for calculating the absolute binding free energy of a ligand (e.g., toluene) to a protein (e.g., T4 Lysozyme).
    • Absolute Hydration Free Energy (AHFE): A walk-through for calculating the hydration free energy of a ligand (e.g., benzene).
  5. Tutorials for Relative Free Energies (RBFE)

    main

    OpenFE provides several ways to perform Relative Binding Free Energy (RBFE) calculations:

    • Python API Showcase: An introduction to the Python API and the general approach to RBFE.
    • RBFE using the Python API: A step-by-step guide for calculating relative binding free energies (e.g., for TYK2) using programmatic interfaces.
    • RBFE using the CLI: A step-by-step guide for performing RBFE calculations using the OpenFE command line interface.
    • RBFE with membrane systems: Specialized guidance for setting up RBFE calculations involving membrane proteins.
  6. What is an Alchemical Network?

    main

    An AlchemicalNetwork is the central object used to plan a simulation campaign. It contains all the necessary information to execute a series of free energy calculations, including the chemical systems involved and the alchemical transformations between them.

    An AlchemicalNetwork is modeled as a graph:

    • Nodes: Represented by ChemicalSystem objects, which describe specific molecules.
    • Edges: Represented by Transformation objects, which define how to perform the simulation between two nodes.

    In a valid network, every node must be associated with at least one transformation (edge); there are no disconnected or solitary nodes. A Transformation includes the information for the two ChemicalSystem nodes it connects, a Protocol, and (for alchemical transformations) atom mapping information, often managed via a LigandNetwork.

  7. What is a LigandNetwork?

    main

    A LigandNetwork is a graph-based representation used to organize free energy calculations for a set of molecules.

    • Nodes: Represented by SmallMoleculeComponent objects (e.g., drug candidates).
    • Edges: Represented by LigandAtomMapping objects, which define how atoms correspond between molecules.

    LigandNetwork objects are immutable once created. You can associate a score with each LigandAtomMapping, which network generators use to optimize the network topology (e.g., creating a more efficient path for calculations).

  8. What is a Protocol in OpenFE

    main

    A Protocol is a computational method used to estimate the free energy difference between two chemical systems. OpenFE provides several built-in protocols, including:

    • RelativeHybridTopologyProtocol
    • AbsoluteBindingProtocol
    • SepTopProtocol
    • AbsoluteSolvationProtocol
    • PlainMDProtocol

    Because all Protocol objects share a common interface for creation and execution, you can easily swap methods or benchmark different protocols for your project.

  9. What is the Separated Topologies (SepTop) Protocol?

    main

    The SepTopProtocol is used to calculate the difference in binding free energy between two chemically diverse ligands. Unlike hybrid topology protocols, SepTopProtocol treats the two ligand topologies as completely separate, meaning no common core is required and atom mapping is unnecessary.

    It works by performing two absolute binding free energy calculations simultaneously in opposite directions: alchemically inserting one ligand into the binding site while removing the other. The relative binding free energy is obtained via a thermodynamic cycle involving both the complex (binding site) and solvent phases.