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 |