-
Notifications
You must be signed in to change notification settings - Fork 12
Open
Description
The current gufe cufe for setting up FE networks (AlchemicalNetworks) is very specifically tailored for the RBFE protocol using SmallMoleculeComponents.
However this conceptual structure is not limited to that single use case and can be used for various approaches as well or even mixtures (portein mutations, sep-top, etc.).
Therefore we discussed this PR content and wanted to provide a more abstract layer to setup, in order to allow the development of new use cases for OpenFE and collaborators.
Here is the current workflow in setup:

Therefore here we introduce the following classes as discussed (pseudo definitions, to indicate the relations between the classes):
ComponentMapper(Component, Component)->ComponentMapping- A class that finds some kind of mapping between two molecules
- this is currently
LigandAtomMapper(SmallMoleculeComponent, SmallMoleculeComponent)->LigandAtomMapping, but this logic only works for hybridTopology approaches, wherease the structure is much more universal.
ComponentMappingScorer(ComponentMapping)->float- A class that evaluates a ComponentMapping
- Currently we have here no class definition, but function signaures like:
AtomMappingScorer(LigandAtomMapping)->float, but in the future a mapping less shape overlap comparison could be interesting for e.g. Sep-Top
NetworkPlanner(ComponentMapper, ComonentMappingScorer, Components)->NetworkPlan- Currently we have here no Class, however this changes with Konnektor. General function signature right now is (simplified):
generate_maximal_network(ligands: Iterable[SmallMoleculeComponent], mappers: AtomMapper, scorer: Callable[[LigandAtomMapping], float]] = None,) -> LigandNetwork:
but this process actually is totally independent of the type of components, mappers and scorers, as the algorithms life in an abstract graph world.
- Currently we have here no Class, however this changes with Konnektor. General function signature right now is (simplified):
NetworkPlan:- currently this is represented by
LigandNetwork, which again is very specific and does not represent the step in the process (plan) at all.
- currently this is represented by
Part 2 (see issue: ):
- AlchemicalNetworkPlanner
- AbstractChemicalSystemGenerator
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
No status