OpenFreeEnergy / OpenFreeEnergy/openfe

What are the best `LomapAtomMapper` settings?

Open
#543 1 comment 0 reactions 1 assignee View on GitHub

@richardjgowers is already working on this.

Since Mar 25, 2024.

Dominant language
Python
Stars
331
Forks
56
Avg merge
3d 9h
Merged PRs (30d)
13

Description

The docs, tutorials, and defaults are inconsistent about what settings should be used as a starting point for the atom mappers. I think the defaults in OpenFE should be the best possible settings, as they can currently be changed without too much breakage and because the whole point of OpenFE is to be an accessible package. But even if the defaults are not the recommended settings, we need to choose recommended settings and put them in the docs, tutorials, and cookbooks.

Currently, we have:

Defaults:

openfe.setup.LomapAtomMapper(
    time=20,             # Time out if MCS algorithm takes 20 seconds
    threed=True,         # Use atom positions to prune symmetric mappings
    max3d=1000.0,        # Forbid mapping between atoms more than 1000.0 Å apart
    element_change=True, # Allow mappings that change an atoms element
    seed='',             # Empty SMARTS string causes MCS search to start from scratch
    shift=True,          # Translate molecules to minimise RMSD before using positions
)

Tutorial:

mapper = openfe.LomapAtomMapper(
    max3d=1.0, 
    element_change=False,
)

Showcase:

LomapAtomMapper(
    threed=True, 
    element_change=False,
)

CLI:

mapper_obj = LomapAtomMapper(
    time=20, 
    threed=True, 
    element_change=False, 
    max3d=1
)

In a discussion this morning with @IAlibay and @dwhswenson , what we came up with was:

openfe.setup.LomapAtomMapper(
    time=20,
    threed=True,
    max3d=1.0,           # CHANGED FROM CURRENT DEFAULT
    element_change=True,
    seed='',
    shift=False,         # CHANGED FROM CURRENT DEFAULT
)

Though with some uncertainty about the exact value of max3d. shift should (apparently) be false because everything should be pre-aligned to the binding pocket, and max3d being set to a small value allows that information to be used. Irfan mentioned that element_change=True should now work and is important to make some mappings possible.

I think this issue can be closed when:

  • Recommended settings are decided on
  • Docs, tutorials, and cookbooks are updated to reflect the recommended settings
  • (optional) The CLI is changed to use the recommended settings
  • (optional) The default settings are changed to the recommended settings

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.