11#ifndef _RD_ALIGNMOLECULES_H_
12#define _RD_ALIGNMOLECULES_H_
31 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);
100 ROMol &prbMol, const
ROMol &refMol,
int prbCid = -1,
int refCid = -1,
103 unsigned int maxIters = 50);
130 ROMol &probeMol,
ROMol &refMol,
int probeId = -1,
int refId = -1,
132 int maxMatches = 1e6);
156 ROMol &probeMol, const
ROMol &refMol,
int prbCid = -1,
int refCid = -1,
177 ROMol &mol, const std::vector<
unsigned int> *atomIds =
nullptr,
178 const std::vector<
unsigned int> *confIds =
nullptr,
180 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
#define RDKIT_MOLALIGN_EXPORT
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 &probeMol, ROMol &refMol, int probeId=-1, int refId=-1, const std::vector< MatchVectType > &map=std::vector< MatchVectType >(), int maxMatches=1e6)
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 double CalcRMS(ROMol &probeMol, const ROMol &refMol, int prbCid=-1, int refCid=-1, const std::vector< MatchVectType > &map=std::vector< MatchVectType >(), int maxMatches=1e6, const RDNumeric::DoubleVector *weights=nullptr)
Returns the RMS between two molecules, taking symmetry into account.
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)
Vector< double > DoubleVector