31 const std::vector<std::vector<int>> &adjMatrix1,
32 const std::vector<std::vector<int>> &adjMatrix2,
33 const std::vector<unsigned int> &clique,
34 const std::vector<std::pair<int, int>> &vtx_pairs,
bool timedOut,
35 bool swapped,
double tier1Sim,
double tier2Sim,
36 bool ringMatchesRingOnly,
bool singleLargestFrag,
int minFragSep,
37 bool exactConnectionsMatch =
false,
38 const std::string &equivalentAtoms =
"",
39 bool ignoreBondOrders =
false);
104 std::shared_ptr<ROMol> d_mol1;
105 std::shared_ptr<ROMol> d_mol2;
106 mutable std::shared_ptr<ROMol> d_mcesMol;
107 std::vector<std::pair<int, int>> d_bondMatches;
108 std::vector<std::pair<int, int>> d_atomMatches;
110 mutable std::string d_smarts;
111 bool d_timedOut{
false};
114 bool d_ringMatchesRingOnly{
false};
115 int d_maxFragSep{-1};
116 bool d_exactConnectionsMatch{
false};
117 std::string d_equivalentAtoms{
""};
118 bool d_ignoreBondOrders{
false};
121 mutable int d_numFrags{-1};
122 mutable int d_ringNonRingBondScore{-1};
123 mutable int d_atomMatchScore{-1};
124 mutable int d_maxDeltaAtomAtomDist{-1};
125 mutable int d_largestFragSize{-1};
129 void rebuildFromFrags(
const std::vector<boost::shared_ptr<ROMol>> &frags);
131 std::string createSmartsString()
const;
133 void matchCliqueAtoms(
const std::vector<std::vector<int>> &mol1_adj_matrix);
137 void applyMaxFragSep();
143 int calcRingNonRingScore()
const;
145 int calcAtomMatchScore()
const;
147 int calcLargestFragSize()
const;
152 int calcMaxDeltaAtomAtomDistScore()
const;
Defines the primary molecule class ROMol as well as associated typedefs.
double getTier1Sim() const
std::string getSmarts() const
std::vector< std::pair< int, int > > getAtomMatches() const
int getMaxDeltaAtomAtomDist() const
RascalResult(double tier1Sim, double tier2Sim)
void trimSmallFrags(unsigned int minFragSize=3)
unsigned int getLargestFragSize() const
double getSimilarity() const
std::vector< std::pair< int, int > > getBondMatches() const
RascalResult & operator=(const RascalResult &other)
RascalResult & operator=(RascalResult &&other)=default
int getRingNonRingBondScore() const
const std::shared_ptr< ROMol > getMcesMol() const
RascalResult(RascalResult &&other)=default
void largestFragsOnly(unsigned int numFrags=2)
RascalResult(const RDKit::ROMol &mol1, const RDKit::ROMol &mol2, const std::vector< std::vector< int > > &adjMatrix1, const std::vector< std::vector< int > > &adjMatrix2, const std::vector< unsigned int > &clique, const std::vector< std::pair< int, int > > &vtx_pairs, bool timedOut, bool swapped, double tier1Sim, double tier2Sim, bool ringMatchesRingOnly, bool singleLargestFrag, int minFragSep, bool exactConnectionsMatch=false, const std::string &equivalentAtoms="", bool ignoreBondOrders=false)
RascalResult(const RascalResult &other)
double getTier2Sim() const
int getAtomMatchScore() const
#define RDKIT_RASCALMCES_EXPORT