class openfe.setup.atom_mapping.LomapAtomMapper(*, time: int = 20, threed: bool = True, max3d: float = 1.0, element_change: bool = True, seed: str | None = None, shift: bool = False)#

Wraps the MCS atom mapper from Lomap.

Kwargs are passed directly to the MCS class from Lomap for each mapping created

Parameters:
  • time (int, default 20) – Timeout of MCS algorithm in seconds, passed to RDKit.

  • threed (bool, default True) – If True, positional info is used to choose between symmetrically equivalent mappings and prune the mapping.

  • max3d (float, default 1.0) – Maximum discrepancy in Angstroms between atoms before mapping is not allowed.

  • element_change (bool, default True) – If True, allow element changes in the mappings.

  • seed (str | None, default None) – SMARTS string to use as seed for MCS searches. When used across an entire set of ligands, this can speed up calculations considerably. If None and empty string (no seed) will be passed through.

  • shift (bool, default False) – If True, translate the two molecules’ MCS to minimize the RMSD. This can boost potential alignment when determining 3D overlap.

time: int#
threed: bool#
max3d: float#
element_change: bool#
seed: str | None#
shift: bool#
suggest_mappings(componentA: SmallMoleculeComponent, componentB: SmallMoleculeComponent) Iterable[LigandAtomMapping]#

Generate one or more mappings between two small molecules

Parameters:
  • componentA (gufe.SmallMoleculeComponent) – The SmallMoleculeComponents to suggest mappings between.

  • componentB (gufe.SmallMoleculeComponent) – The SmallMoleculeComponents to suggest mappings between.

Returns:

mapping – Potential mappings between componentA and componentB.

Return type:

Iterable[LigandAtomMapping]