Class with static functions providing higher-level molecule operations. More...
#include <Editing.h>
Static Public Member Functions | |
| static std::pair< Molecule, Molecule > | cleave (const Molecule &a, BondIndex bridge) |
| Splits a molecule along a bridge edge. More... | |
| static Molecule | insert (Molecule log, const Molecule &wedge, BondIndex logBond, AtomIndex firstWedgeAtom, AtomIndex secondWedgeAtom) |
| Inserts a molecule into a bond of another molecule. More... | |
| static Molecule | superpose (Molecule top, const Molecule &bottom, AtomIndex topAtom, AtomIndex bottomAtom) |
| Fuses two molecules, adding all adjacencies and continuations of one Molecule's atoms to another. More... | |
| static Molecule | substitute (const Molecule &left, const Molecule &right, BondIndex leftBond, BondIndex rightBond) |
| Connect two molecules by substituting away the lighter side of a pair of bonds of separate molecules. More... | |
| static Molecule | connect (Molecule a, const Molecule &b, AtomIndex aConnectAtom, AtomIndex bConnectAtom, BondType bondType) |
| Connect molecules by creating a new bond between two atoms from separate molecules. More... | |
| static Molecule | addLigand (Molecule a, const Molecule &ligand, AtomIndex complexatingAtom, const std::vector< AtomIndex > &ligandBindingAtoms) |
| Connects two molecules by connecting multiple atoms from one to a single atom of the other via single bonds. More... | |
Class with static functions providing higher-level molecule operations.
|
static |
Connects two molecules by connecting multiple atoms from one to a single atom of the other via single bonds.
Complexity \(\Theta(N)\)
| a | The molecule the ligand is being connected to |
| ligand | The ligand molecule being bound to complexatingAtom |
| complexatingAtom | The atom in a that ligand is being bound to |
| ligandBindingAtoms | The atoms of ligand that should be connected to a |
|
static |
Splits a molecule along a bridge edge.
Complexity \(\Theta(N)\)
| std::logic_error | If bridge is not a bridge edge, i.e. the graph is not disconnected by cleaving the indicated bonds. This can be tested for usinga.graph().canRemove(bridge) == false)
|
|
static |
Connect molecules by creating a new bond between two atoms from separate molecules.
Complexity \(\Theta(N)\)
| a | The first molecule to connect |
| b | The second molecule to connect |
| aConnectAtom | The atom index to connect to in a |
| bConnectAtom | The atom index to connect to in b |
| bondType | The type of the new bond |
a, aConnectAtom), (b, bConnectAtom), i.e. the order of the molecule and atom index arguments does not matter as long as the atom indices are properly associated to their respective molecule.
|
static |
Inserts a molecule into a bond of another molecule.
Complexity \(\Theta(N)\)
| log | The molecule being inserted into |
| wedge | The molecule being inserted |
| logBond | The bond in log into which wedge is being inserted into |
| firstWedgeAtom | The atom of wedge to bond to the first atom in logBond |
| secondWedgeAtom | The atom of wedge to bond to the second atom in logBond |
firstWedgeAtom and secondWedgeAtom.
|
static |
Connect two molecules by substituting away the lighter side of a pair of bonds of separate molecules.
Complexity \(\Theta(N)\)
| left | The first molecule |
| right | The second molecule |
| leftBond | left's bond from which to substitute the lighter part away |
| rightBond | right's bond from which to substitute the lighter part away |
|
static |
Fuses two molecules, adding all adjacencies and continuations of one Molecule's atoms to another.
Adds all adjacent atoms and continuations of bottomAtom in bottom to topAtom in top. topAtom's element type is unchanged as it is the 'top' of the superimposition / overlay.
Complexity \(\Theta(N)\)
| top | The molecule that is at the top of the superposition. |
| bottom | The molecule that is set at the bottom of the superposition. |
| topAtom | An atom index of top that is placed 'atop' bottom's bottomAtom |
| bottomAtom | An atom index of bottom that is placed 'beneath' top's topAtom |