Molassembler  3.0.1
Molecule graph and conformer library
Editing.h
Go to the documentation of this file.
1 
7 #ifndef INCLUDE_MOLASSEMBLER_EDITING_H
8 #define INCLUDE_MOLASSEMBLER_EDITING_H
9 
10 #include "Molassembler/Molecule.h"
12 #include <tuple>
13 
14 namespace Scine {
15 namespace Molassembler {
16 
17 class Molecule;
18 
19 namespace Editing {
20 
22 using AtomSitePair = std::pair<AtomIndex, SiteIndex>;
23 
24 struct Cleaved {
25  Molecule first;
26  Molecule second;
27  std::vector<std::pair<unsigned, AtomIndex>> componentMap;
28 };
29 
44 Cleaved cleave(const Molecule& a, BondIndex bridge);
45 
61 Cleaved cleave(const Molecule& a, AtomSitePair hapticSite);
62 
81  Molecule log,
82  const Molecule& wedge,
83  BondIndex logBond,
84  AtomIndex firstWedgeAtom,
85  AtomIndex secondWedgeAtom);
86 
105 Molecule superpose(Molecule top, const Molecule& bottom, AtomIndex topAtom, AtomIndex bottomAtom);
106 
123 Molecule
124 substitute(const Molecule& left, const Molecule& right, BondIndex leftBond, BondIndex rightBond);
125 
143  const Molecule& left,
144  const Molecule& right,
145  BondIndex leftBond,
146  BondIndex rightBond,
147  AtomIndex leftSubstituteIndex,
148  AtomIndex rightSubstituteIndex);
149 
170 Molecule
171 connect(Molecule a, const Molecule& b, AtomIndex aConnectAtom, AtomIndex bConnectAtom, BondType bondType);
172 
188  Molecule a,
189  const Molecule& ligand,
190  AtomIndex complexatingAtom,
191  const std::vector<AtomIndex>& ligandBindingAtoms);
192 
193 } // namespace Editing
194 } // namespace Molassembler
195 } // namespace Scine
196 
197 #endif
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.
std::pair< AtomIndex, SiteIndex > AtomSitePair
Descriptor for an entire haptic site connected to an atom.
Definition: Editing.h:22
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.
Molecule insert(Molecule log, const Molecule &wedge, BondIndex logBond, AtomIndex firstWedgeAtom, AtomIndex secondWedgeAtom)
Inserts a molecule into a bond of another molecule.
Molecule substitute(const Molecule &left, const Molecule &right, BondIndex leftBond, BondIndex rightBond)
Connect two molecules by substituting away the smaller side of a pair of bonds of separate molecules.
Cleaved cleave(const Molecule &a, BondIndex bridge)
Splits a molecule along a bridge edge.
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...
Molecule class interface.
Data struct storing results of ranking and local graph algorithms.
Models a molecule as a graph (connectivity of atoms) and a list of stereopermutators.
Definition: Molecule.h:77
BondType
Discrete bond type numeration.
Definition: Types.h:26
std::size_t AtomIndex
Unsigned integer atom index type. Used to refer to particular atoms.
Definition: Types.h:51
Type used to refer to particular bonds. Orders first < second.
Definition: Types.h:54