RDKit: RascalOptions.h Source File

| RDKit Open-source cheminformatics and machine learning.

Loading...
Searching...
No Matches
RascalOptions.h
Go to the documentation of this file.
1//
2// Copyright (C) David Cosgrove 2023
3//
4// @@ All Rights Reserved @@
5// This file is part of the RDKit.
6// The contents are covered by the terms of the BSD license
7// which is included in the file license.txt, found at the root
8// of the RDKit source tree.
9//
10#include <string>
11#include <RDGeneral/export.h>
12
13#ifndef RASCALOPTIONS_H
14#define RASCALOPTIONS_H
15
16namespace RDKit {
17
18namespace RascalMCES {
19
20 struct RDKIT_RASCALMCES_EXPORT RascalOptions {
21 double similarityThreshold =
22 0.7; // if calculated below this, no MCES will be evaluated.
23 bool completeAromaticRings =
24 true; // if true, partial aromatic rings won't be returned
25 bool ringMatchesRingOnly =
26 false; // if true, ring bonds won't match non-ring bonds
27 bool completeSmallestRings =
28 false; // if true, only complete rings present in both input molecule's
29 // RingInfo will be returned. Implies completeAromaticRings and
30 // ringMatchesRingOnly.
31 bool exactConnectionsMatch =
32 false; /* if true, atoms will only match atoms if they have the same
33 number of explicit connections. E.g. the central atom of
34 C(C)(C) won't match either atom in CC */
35 bool singleLargestFrag =
36 false; /* if true, only return a single fragment for the MCES. Default
37 is to produce multiple matching fragments if necessary. This
38 works by finding the largest MCES and keeping just the largest
39 fragment. It is equivalent to running a normal MCES search
40 and using the largestFragOnly() method on the results. This
41 option may not produce the largest possible single fragment
42 that the molecules have in common. If you definitely want that
43 you may be better off using rdFMCS. */
44 int minFragSize =
45 -1; /* minimum number of atoms in any fragment - -1 means no minimum */
46 int maxFragSeparation = -1; /* biggest through-bond distance that bonds can
47 match. -1 means no limit. */
48 bool allBestMCESs =
49 false; /* If true, all MCESs are returned, in order of diminishing score.
50 This is likely to result in higher run times. */
51 unsigned int maxBestMCESs = 10000; /* Some pathological cases produce huge
52 numbers of equivalent solutions that
53 can crash the program due to memory
54 depletion. This caps the number of
55 such solutions to prevent this
56 happening. */
57 int timeout = 60; // max run time, in seconds. -1 means no max.
58 bool doEquivBondPruning =
59 false; /* This might make the code run a bit faster in some
60 circumstances, but on average it is very marginal. */
61 bool returnEmptyMCES = false; /* if true, if the similarity thresholds aren't
62 matched still return a RascalResult with the
63 tier1 and tier2 sims filled in. */
64 unsigned int maxBondMatchPairs = 1000; /* Too many matching bond (vertex)
65 pairs can cause it to run out of memory. This
66 is a reasonable default for my Mac. */
67 std::string equivalentAtoms = ""; /* SMARTS strings defining atoms that should
68 be considered equivalent. e.g.
69 [F,Cl,Br,I] so all halogens will match
70 each other. Space-separated list allowing
71 more than 1 class of equivalent atoms.*/
72 bool ignoreBondOrders = false; /* If true, will treat all bonds as the same,
73 irrespective of order. */
74 bool ignoreAtomAromaticity = true; /* If true, atoms are matched just on
75 atomic number; if false, will treat
76 aromatic and aliphatic as different. */
77 unsigned int minCliqueSize = 0; /* Normally, the minimum clique size is
78 specified via the similarityThreshold.
79 Sometimes it's more convenient to
80 specify it directly. If this is > 0,
81 it will over-ride the similarityThreshold.
82 Note that this refers to the minimum
83 number of BONDS in the MCES. */
84};
85} // namespace RascalMCES
86} // namespace RDKit
87
88#endif // RASCALOPTIONS_H
export.h
RDKIT_RASCALMCES_EXPORT
#define RDKIT_RASCALMCES_EXPORT
Definition export.h:481
RDKit::RascalMCES
Definition PartitionSet.h:23
RDKit
Std stuff.
Definition Abbreviations.h:19
RDKit::RascalMCES::RascalOptions
Definition RascalOptions.h:20
RDKit::RascalMCES::RascalOptions::doEquivBondPruning
bool doEquivBondPruning
Definition RascalOptions.h:58
RDKit::RascalMCES::RascalOptions::similarityThreshold
double similarityThreshold
Definition RascalOptions.h:21
RDKit::RascalMCES::RascalOptions::ignoreAtomAromaticity
bool ignoreAtomAromaticity
Definition RascalOptions.h:74
RDKit::RascalMCES::RascalOptions::allBestMCESs
bool allBestMCESs
Definition RascalOptions.h:48
RDKit::RascalMCES::RascalOptions::ringMatchesRingOnly
bool ringMatchesRingOnly
Definition RascalOptions.h:25
RDKit::RascalMCES::RascalOptions::ignoreBondOrders
bool ignoreBondOrders
Definition RascalOptions.h:72
RDKit::RascalMCES::RascalOptions::returnEmptyMCES
bool returnEmptyMCES
Definition RascalOptions.h:61
RDKit::RascalMCES::RascalOptions::singleLargestFrag
bool singleLargestFrag
Definition RascalOptions.h:35
RDKit::RascalMCES::RascalOptions::maxBestMCESs
unsigned int maxBestMCESs
Definition RascalOptions.h:51
RDKit::RascalMCES::RascalOptions::equivalentAtoms
std::string equivalentAtoms
Definition RascalOptions.h:67
RDKit::RascalMCES::RascalOptions::minCliqueSize
unsigned int minCliqueSize
Definition RascalOptions.h:77
RDKit::RascalMCES::RascalOptions::maxFragSeparation
int maxFragSeparation
Definition RascalOptions.h:46
RDKit::RascalMCES::RascalOptions::completeAromaticRings
bool completeAromaticRings
Definition RascalOptions.h:23
RDKit::RascalMCES::RascalOptions::minFragSize
int minFragSize
Definition RascalOptions.h:44
RDKit::RascalMCES::RascalOptions::exactConnectionsMatch
bool exactConnectionsMatch
Definition RascalOptions.h:31
RDKit::RascalMCES::RascalOptions::timeout
int timeout
Definition RascalOptions.h:57
RDKit::RascalMCES::RascalOptions::maxBondMatchPairs
unsigned int maxBondMatchPairs
Definition RascalOptions.h:64
RDKit::RascalMCES::RascalOptions::completeSmallestRings
bool completeSmallestRings
Definition RascalOptions.h:27