11#ifndef _RD_ALIGNMOLECULES_H_
12#define _RD_ALIGNMOLECULES_H_
32 const char *
what() const noexcept
override {
return _msg.c_str(); }
68 int prbCid = -1,
int refCid = -1, const
MatchVectType *atomMap =
nullptr,
70 unsigned int maxIters = 50);
98 ROMol &prbMol, const
ROMol &refMol,
int prbCid = -1,
int refCid = -1,
101 unsigned int maxIters = 50);
141 int maxMatches = 1e6,
bool symmetrizeConjugatedTerminalGroups = true,
143 unsigned int maxIters = 50,
int numThreads = 1);
176 ROMol &prbMol, const
ROMol &refMol,
int prbCid = -1,
int refCid = -1,
178 int maxMatches = 1e6,
bool symmetrizeConjugatedTerminalGroups = true,
179 const
RDNumeric::DoubleVector *weights =
nullptr,
int numThreads = 1);
207 const
ROMol &mol,
int numThreads = 1,
209 int maxMatches = 1e6,
bool symmetrizeConjugatedTerminalGroups = true,
210 const
RDNumeric::DoubleVector *weights =
nullptr);
241 ROMol &prbMol, const
ROMol &refMol,
int prbCid = -1,
int refCid = -1,
243 int maxMatches = 1e6,
bool symmetrizeConjugatedTerminalGroups = true,
244 const
RDNumeric::DoubleVector *weights =
nullptr);
272 int prbCid,
int refCid,
293 ROMol &mol, const std::vector<
unsigned int> *atomIds =
nullptr,
294 const std::vector<
unsigned int> *confIds =
nullptr,
296 unsigned int maxIters = 50, std::vector<
double> *RMSlist =
nullptr);
~MolAlignException() noexcept override=default
MolAlignException(const char *msg)
construct with an error message
MolAlignException(const std::string msg)
construct with an error message
const char * what() const noexcept override
get the error message
RWMol is a molecule class that is intended to be edited.
#define RDKIT_MOLALIGN_EXPORT
RDKIT_MOLALIGN_EXPORT void symmetrizeTerminalAtoms(RWMol &mol)
RDKIT_MOLALIGN_EXPORT double getAlignmentTransform(const ROMol &prbMol, const ROMol &refMol, RDGeom::Transform3D &trans, int prbCid=-1, int refCid=-1, const MatchVectType *atomMap=nullptr, const RDNumeric::DoubleVector *weights=nullptr, bool reflect=false, unsigned int maxIters=50)
Alignment functions.
RDKIT_MOLALIGN_EXPORT double alignMol(ROMol &prbMol, const ROMol &refMol, int prbCid=-1, int refCid=-1, const MatchVectType *atomMap=nullptr, const RDNumeric::DoubleVector *weights=nullptr, bool reflect=false, unsigned int maxIters=50)
Optimally (minimum RMSD) align a molecule to another molecule.
RDKIT_MOLALIGN_EXPORT double getBestRMS(ROMol &prbMol, const ROMol &refMol, int prbCid=-1, int refCid=-1, const std::vector< MatchVectType > &map=std::vector< MatchVectType >(), int maxMatches=1e6, bool symmetrizeConjugatedTerminalGroups=true, const RDNumeric::DoubleVector *weights=nullptr, int numThreads=1)
RDKIT_MOLALIGN_EXPORT std::vector< double > getAllConformerBestRMS(const ROMol &mol, int numThreads=1, const std::vector< MatchVectType > &map=std::vector< MatchVectType >(), int maxMatches=1e6, bool symmetrizeConjugatedTerminalGroups=true, const RDNumeric::DoubleVector *weights=nullptr)
RDKIT_MOLALIGN_EXPORT double getBestAlignmentTransform(const ROMol &prbMol, const ROMol &refMol, RDGeom::Transform3D &bestTrans, MatchVectType &bestMatch, int prbCid=-1, int refCid=-1, const std::vector< MatchVectType > &map=std::vector< MatchVectType >(), int maxMatches=1e6, bool symmetrizeConjugatedTerminalGroups=true, const RDNumeric::DoubleVector *weights=nullptr, bool reflect=false, unsigned int maxIters=50, int numThreads=1)
RDKIT_MOLALIGN_EXPORT double CalcRMS(ROMol &prbMol, const ROMol &refMol, int prbCid=-1, int refCid=-1, const std::vector< MatchVectType > &map=std::vector< MatchVectType >(), int maxMatches=1e6, bool symmetrizeConjugatedTerminalGroups=true, const RDNumeric::DoubleVector *weights=nullptr)
RDKIT_MOLALIGN_EXPORT void alignMolConformers(ROMol &mol, const std::vector< unsigned int > *atomIds=nullptr, const std::vector< unsigned int > *confIds=nullptr, const RDNumeric::DoubleVector *weights=nullptr, bool reflect=false, unsigned int maxIters=50, std::vector< double > *RMSlist=nullptr)
RDKIT_MOLALIGN_EXPORT const RDGeom::POINT3D_VECT * reflect(const Conformer &conf)
std::vector< std::pair< int, int > > MatchVectType
used to return matches from substructure searching, The format is (queryAtomIdx, molAtomIdx)