3.2.2. Config.hpp¶
This file defines configuration options for the library. Many of the options control verbosity of algorithms or which data to output when printing figures.
-
enum struct LabelType¶
Selector for which type of label to use in algorithms.
-
enumerator String¶
Vertices and edges are considered to be labelled with character strings. If only first-order terms are present, then strings are generated as a serialisation of the term.
-
enumerator Term¶
Vertices and edges are considered to be labelled with first-order terms. If only strings are present, then first-order terms are generated by parsing the strings. This may result in an
TermParsingError
if a string can not be parsed.
-
enumerator String¶
-
enum struct LabelRelation¶
Selector for which type of labelled morphism to use in an algorithm.
-
enumerator Isomorphism¶
Strings are considered isomorphic when they are equal. Terms are considered isomorphic when their most general unifier is a renaming.
-
enumerator Specialisation¶
A term \(t_2\) is more special than, or isomorphic to, a term \(t_1\) if there is a substitution which can be applied to \(t_1\) to make the terms equal. This relation means that the right-hand side of a comparison is the more specialised term.
-
enumerator Unification¶
Strings unify if they are equal, i.e., the same as with
Isomorphism
. Terms unify if a most general unifier (MGU) exists. The found MGU is used for substitution in some algorithms.
-
enumerator Isomorphism¶
-
class LabelSettings¶
A class simply for grouping label settings.
-
LabelSettings(LabelType type, LabelRelation relation)¶
Construct label settings that only uses the vertex and edge labels.
-
LabelSettings(LabelType type, LabelRelation relation, LabelRelation stereoRelation)¶
Construct label settings that include both vertex and edge labels, and stereo information.
-
LabelSettings(LabelType type, LabelRelation relation, bool withStereo, LabelRelation stereoRelation)¶
-
friend bool operator==(LabelSettings a, LabelSettings b)¶
-
friend bool operator!=(LabelSettings a, LabelSettings b)¶
-
friend std::ostream &operator<<(std::ostream &s, const LabelSettings &ls)¶
-
LabelRelation relation¶
-
bool withStereo¶
-
LabelRelation stereoRelation¶
-
LabelSettings(LabelType type, LabelRelation relation)¶
-
enum struct IsomorphismPolicy¶
For some functions there is a choice of how to handle given arguments where two different objects may be isomorphic. Most notably the case is with graphs (
graph::Graph
).-
enumerator Check¶
Objects are checked for isomorphism as needed and exceptions are thrown when different objects are isomorphic. If in doubt, use this.
-
enumerator TrustMe¶
No checks are performed and the function trusts the caller to have performed the equivalent isomorphism checks. Only use this when you are completely sure that no exceptions would have been thrown if using
Check
.Warning
Generally the library has undefined behaviour if you use this option but an exception would have been thrown with
Check
.
-
enumerator Check¶
-
enum struct SmilesClassPolicy¶
When loading SMILES strings, the class labels can be recorded and mapped into the corresponding vertices of the loaded graph. This policy dictates what should happen when the same class label is written on multiple atoms.
-
enumerator NoneOnDuplicate¶
If a class label is duplicated, then no labels are mapped to vertices.
-
enumerator ThrowOnDuplicate¶
If a class label is duplicated, throw a
InputError
.
-
enumerator MapUnique¶
Map all class labels that are unique to vertices.
-
enumerator NoneOnDuplicate¶
-
enum struct Action¶
Utility enum for deciding what to do in certain cases.
-
enumerator Error¶
Abort the function and produce an error message, e.g., through and exception.
-
enumerator Ignore¶
Ignore the case. The function taking the action as argument should describe what this means.
-
enumerator Error¶
-
class MDLOptions¶
An aggregation of options for the various loading functions for MDL formats. Generally each option is defaulted to follow the specification of the formats, unless it is harmless to deviate (e.g., relaxed white-space parsing).
-
bool addHydrogens = true¶
Use the MDL valence model to add hydrogens to atoms with default valence, or disable all hydrogen addition.
-
bool allowAbstract = false¶
Allow non-standard atom symbols. The standard symbols are the element symbols and those specifying wildcard atoms.
-
bool applyV2000AtomAliases = true¶
In MOL V2000 CTAB blocks, replace atom labels by their aliases. After application, the atom is considered abstract without errors, and hydrogen addition is suppressed.
-
Action onPatternIsotope = Action::Error¶
-
Action onPatternCharge = Action::Error;¶
-
Action onPatternRadical = Action::Error;¶
What to do when an atom with symbol
*
has an isotope, charge, or radical. Action::Ignore means assuming the isotope, charge, or radical was not there.
-
Action onImplicitValenceOnAbstract = Action::Error¶
What to do when addHydrogens && allowAbstract and an abstract atom is encountered with implicit valence. Action::Ignore means adding no hydrogens.
-
Action onV2000UnhandledProperty = Action::Warn¶
What to do when a property line in a V2000 MOL file is not recognized. Action::Ignore means simply ignoring that particular line.
-
bool fullyIgnoreV2000UnhandledKnownProperty = false¶
Warnings are usually stored as “loading warnings”, even when they are ignored during parsing. Setting this to true will act as if onV2000UnhandledProperty = Action::Ignore and skip the storage, but only for a pre-defined known subset of properties.
-
Action onV3000UnhandledAtomProperty = Action::Warn¶
What to do when a property in atom line in a V3000 MOL file is not recognized. Action::Ignore means simply ignoring that particular property.
-
Action onV2000Charge4 = Action::Error¶
What to do when an atom in a V2000 MOL file has the charge 4 (doublet radical). Action::Ignore means assuming it was charge 0.
-
Action onV2000AbstractISO = Action::Error¶
What to do when an abstract atom in a V2000 MOL file has a non-default ISO or mass difference value.
-
bool addHydrogens = true¶
3.2.2.1. Class Config
¶
-
class Config¶
Holds all configuration settings.