3.2.14.3. graph/Graph.hpp¶
3.2.14.3.1. Class graph::Graph
¶
-
class graph::Graph¶
This class models an undirected graph with labels on vertices and edges, without loops and without parallel edges. See Graph, Rule, and Molecule Model for more details. See also graph/GraphInterface.hpp for the documentation for the graph interface for this class.
3.2.14.3.1.1. Synopsis¶
-
class graph::Graph::Aut
-
class graph::Graph::AutGroup
-
std::size_t getId() const
-
std::size_t numVertices() const
-
VertexRange vertices() const
-
std::size_t numEdges() const
-
EdgeRange edges() const
-
AutGroup aut(LabelSettings labelSettings) const
-
std::pair<std::string, std::string> print() const
-
std::pair<std::string, std::string> print(const Printer &first, const Printer &second) const
-
void printTermState() const
-
std::string getGMLString(bool withCoords = false) const
-
std::string printGML(bool withCoords = false) const
-
const std::string &getName() const
-
void setName(std::string name) const
-
const std::string &getSmiles() const
-
const std::string &getSmilesWithIds() const
-
const std::string &getGraphDFS() const
-
const std::string &getGraphDFSWithIds() const
-
const std::string &getLinearEncoding() const
-
bool getIsMolecule() const
-
double getEnergy() const
-
void cacheEnergy(double value) const
-
double getExactMass() const
-
unsigned int vLabelCount(const std::string &label) const
-
unsigned int eLabelCount(const std::string &label) const
-
std::size_t isomorphism(std::shared_ptr<Graph> host, std::size_t maxNumMatches, LabelSettings labelSettings) const
-
std::size_t monomorphism(std::shared_ptr<Graph> host, std::size_t maxNumMatches, LabelSettings labelSettings) const
-
std::shared_ptr<Graph> makePermutation() const
-
void setImage(std::shared_ptr<Function<std::string()>> image)
-
std::shared_ptr<Function<std::string()>> getImage() const
-
void setImageCommand(std::string cmd)
-
std::string getImageCommand() const
-
void instantiateStereo() const
-
Vertex getVertexFromExternalId(int id) const
-
int getMinExternalId() const
-
int getMaxExternalId() const
-
std::vector<std::pair<std::string, bool>> getLoadingWarnings() const
-
static std::shared_ptr<Graph> fromGMLString(const std::string &data)
-
static std::shared_ptr<Graph> fromGMLFile(const std::string &file)
-
std::vector<std::shared_ptr<Graph>> fromGMLStringMulti(const std::string &data)
-
std::vector<std::shared_ptr<Graph>> fromGMLFileMulti(const std::string &file)
-
static std::shared_ptr<Graph> fromDFS(const std::string &graphDFS)
-
static std::vector<std::shared_ptr<Graph>> fromDFSMulti(const std::string &graphDFS)
-
static std::shared_ptr<Graph> fromSMILES(const std::string &smiles)
-
static std::shared_ptr<Graph> fromSMILES(const std::string &smiles, bool allowAbstract, SmilesClassPolicy classPolicy)
-
static std::vector<std::shared_ptr<Graph>> fromSMILESMulti(const std::string &smiles)
-
static std::vector<std::shared_ptr<Graph>> fromSMILESMulti(const std::string &smiles, bool allowAbstract, SmilesClassPolicy classPolicy)
-
static std::shared_ptr<Graph> fromMOLString(const std::string &data, const MDLOptions &options)
-
static std::shared_ptr<Graph> fromMOLFile(const std::string &file, const MDLOptions &options)
-
static std::vector<std::shared_ptr<Graph>> fromMOLStringMulti(const std::string &data, const MDLOptions &options)
-
static std::vector<std::shared_ptr<Graph>> fromMOLFileMulti(const std::string &file, const MDLOptions &options)
-
static std::vector<std::shared_ptr<Graph>> fromSDString(const std::string &data, const MDLOptions &options)
-
static std::vector<std::shared_ptr<Graph>> fromSDFile(const std::string &file, const MDLOptions &options)
-
static std::vector<std::vector<std::shared_ptr<Graph>>> fromSDStringMulti(const std::string &data, const MDLOptions &options)
-
static std::vector<std::vector<std::shared_ptr<Graph>>> fromSDFileMulti(const std::string &file, const MDLOptions &options)
-
static std::shared_ptr<Graph> create(std::unique_ptr<lib::Graph::Single> g)
-
static std::shared_ptr<Graph> create(std::unique_ptr<lib::Graph::Single> g, std::map<int, std::size_t> externalToInternalIds, std::vector<std::pair<std::string, bool>> warnings)
-
class graph::Graph::Vertex
-
class graph::Graph::Edge
-
class graph::Graph::VertexIterator
-
class graph::Graph::VertexRange
-
class graph::Graph::EdgeIterator
-
class graph::Graph::EdgeRange
-
class graph::Graph::IncidnetEdgeIterator
-
class graph::Graph::IncidentEdgeRange
3.2.14.3.1.2. Details¶
-
std::size_t numVertices() const¶
- Returns
the number of vertices in the graph.
-
VertexRange vertices() const¶
- Returns
a range of all vertices in the graph.
-
std::size_t numEdges() const¶
- Returns
the number of edges in the graph.
-
AutGroup aut(LabelSettings labelSettings) const¶
- Returns
an object representing the automorphism group of the graph.
-
std::pair<std::string, std::string> print() const¶
-
std::pair<std::string, std::string> print(const Printer &first, const Printer &second) const¶
Print the graph, using either the default options or the options in first and second. If first and second are the same, only one depiction will be made.
-
void printTermState() const¶
Print the term state for the graph.
-
std::string getGMLString(bool withCoords = false) const¶
- Returns
the GML representation of the graph, optionally with generated 2D coordinates.
- Throws
LogicError
when coordinates are requested, but none can be generated.
-
std::string printGML(bool withCoords = false) const¶
Print the GML representation of the graph, optionally with generated 2D coordinates.
- Returns
the filename of the printed GML file.
- Throws
LogicError
when coordinates are requested, but none can be generated.
-
const std::string &getName() const¶
-
void setName(std::string name) const¶
Access the name of the graph.
-
const std::string &getSmiles() const¶
- Returns
the canonical SMILES string of the graph, if it’s a molecule.
- Throws
LogicError
if the graph is not a molecule.
-
const std::string &getSmilesWithIds() const¶
- Returns
the canonical SMILES string of the graph, that includes the internal vertex id as a class label on each atom, if it’s a molecule.
- Throws
LogicError
if the graph is not a molecule.
-
const std::string &getGraphDFSWithIds() const¶
- Returns
a GraphDFS string of the graph, where each vertices have an explicit id, corresponding to its internal vertex id.
-
const std::string &getLinearEncoding() const¶
-
bool getIsMolecule() const¶
- Returns
whether or not the graph models a molecule. See Molecule Encoding.
-
double getEnergy() const¶
- Returns
some energy value if the graph is a molecule. The energy is calculated using Open Babel, unless already calculated or cached by
Graph::cacheEnergy()
.
-
void cacheEnergy(double value) const¶
If the graph models a molecule, sets the energy to a given value.
- Throws
LogicError
if the graph is not a molecule.
-
double getExactMass() const¶
- Returns
the exact mass of the graph, if it is a molecule. It is the sum of the exact mass of each atom, with the mass of electrons subtracted corresponding to the integer charge. That is, the mass is \(\sum_a (mass(a) - mass(e)\cdot charge(a))\). If an atom has no specified isotope, then the most abundant is used.
- Throws
LogicError
if it is not a molecule, including if some isotope has not been tabulated.
-
unsigned int vLabelCount(const std::string &label) const¶
- Returns
the number of vertices in the graph with the given label.
-
unsigned int eLabelCount(const std::string &label) const¶
- Returns
the number of edges in the graph with the given label.
- Returns
the number of isomorphisms found from this graph to host, but at most maxNumMatches.
- Returns
the number of monomorphisms from this graph to host, though at most maxNumMatches.
-
std::shared_ptr<Graph> makePermutation() const¶
- Returns
a graph isomorphic to this, but with the vertex indices randomly permuted.
Set a custom depiction for the graph. The depiction file used will be the string returned by the given function, with
.pdf
appended. The function will only be called once. Give nullptr to use auto-generated depiction.
-
std::shared_ptr<Function<std::string()>> getImage() const¶
- Returns
the current custom depiction file function.
-
void setImageCommand(std::string cmd)¶
Set a command to be run in post-processing if a custom depiction is set. The command is only run once.
-
std::string getImageCommand() const¶
- Returns
the current post-processing command.
-
void instantiateStereo() const¶
Make sure that stereo data is instantiated.
- Throws
StereoDeductionError if the data was not instantiated and deduction failed.
-
Vertex getVertexFromExternalId(int id) const¶
If the graph was not loaded from an external data format, then this function always return a null descriptor. If the graph was loaded from a SMILES string, but any class label was not unique, then the function always return a null descriptor.
Note
In general there is no correlation between external and internal ids.
- Returns
the vertex descriptor for the given external id. The descriptor is null if the external id was not used.
-
int getMinExternalId() const¶
-
int getMaxExternalId() const¶
If the graph was not loaded from an external data format, then these functions always return 0. Otherwise, return the minimum/maximum external id from which non-null vertices can be obtained from
getVertexFromExternalId()
. If no such minimum and maximum exists, then 0 will be returned.
-
std::vector<std::pair<std::string, bool>> getLoadingWarnings() const¶
- Returns
the list of warnings stored when the graph was created from an external format. Each entry is a message and then an indicator of whether the warning was printed before construction (
true
), or was a silenced warning (false
).- Throws
LogicError
if the graph does not have data from external loading
-
static std::shared_ptr<Graph> fromGMLString(const std::string &data)¶
-
static std::shared_ptr<Graph> fromGMLFile(const std::string &file)¶
- Returns
a graph created from the given GML in a string or file. The graph must be connected. Use
fromGMLStringMulti()
orfromGMLFile()
if it is not.- Throws
InputError
on bad input.
-
std::vector<std::shared_ptr<Graph>> fromGMLStringMulti(const std::string &data)¶
-
std::vector<std::shared_ptr<Graph>> fromGMLFileMulti(const std::string &file)¶
- Returns
a list of graphs, loaded from the given GML in a string or file. The graphs are the connected components of the graph specified in the data.
- Throws
InputError
on bad input.
-
static std::shared_ptr<Graph> fromDFS(const std::string &graphDFS)¶
- Returns
a graph loaded from the given GraphDFS string. The graph must be connected. Use
fromDFSMulti()
if it is not.- Throws
InputError
on bad input.
-
static std::vector<std::shared_ptr<Graph>> fromDFSMulti(const std::string &graphDFS)¶
- Returns
a list of graphs loaded from the given GraphDFS string. The graphs are the connected components of the graph specified in the data.
- Throws
InputError
on bad input.
-
static std::shared_ptr<Graph> fromSMILES(const std::string &smiles)¶
-
static std::shared_ptr<Graph> fromSMILES(const std::string &smiles, bool allowAbstract, SmilesClassPolicy classPolicy)¶
- Parameters
allowAbstract – whether abstract atoms, e.g.,
*
, are allowed. Defaults to false.classPolicy – which policy to use for class labels. Defaults to SmilesClassPolicy::NoneOnDuplicate.
- Returns
a graph representing a molecule, loaded from the given SMILES string. The graph must be connected. Use
fromSMILESMulti()
if it is not.- Throws
InputError
on bad input.- Throws
InputError
if classPolicy == SmilesClassPolicy::NoneOnDuplicate and a class label is duplicated.
-
static std::vector<std::shared_ptr<Graph>> fromSMILESMulti(const std::string &smiles)¶
-
static std::vector<std::shared_ptr<Graph>> fromSMILESMulti(const std::string &smiles, bool allowAbstract, SmilesClassPolicy classPolicy)¶
See
fromSMILES()
for parameter and exception descriptions.- Returns
a list of graphs representing molecules, loaded from the given SMILES string. The graphs are the connected components of the graph specified in the SMILES string.
-
static std::shared_ptr<Graph> fromMOLString(const std::string &data, const MDLOptions &options)¶
-
static std::shared_ptr<Graph> fromMOLFile(const std::string &file, const MDLOptions &options)¶
- Returns
a graph created from the given MOL data.
- Throws
InputError
on bad input.
-
static std::vector<std::shared_ptr<Graph>> fromMOLStringMulti(const std::string &data, const MDLOptions &options)¶
-
static std::vector<std::shared_ptr<Graph>> fromMOLFileMulti(const std::string &file, const MDLOptions &options)¶
See
fromMOLString()
andfromMOLFile()
for parameter and exception descriptions.- Returns
a list of graphs representing molecules, loaded from the given string or file with MOL data. The graphs are the connected components of the graph specified in the data.
-
static std::vector<std::shared_ptr<Graph>> fromSDString(const std::string &data, const MDLOptions &options)¶
-
static std::vector<std::shared_ptr<Graph>> fromSDFile(const std::string &file, const MDLOptions &options)¶
- Returns
a list of graphs graph created from the given SD data.
- Throws
InputError
on bad input.
-
static std::vector<std::vector<std::shared_ptr<Graph>>> fromSDStringMulti(const std::string &data, const MDLOptions &options)¶
-
static std::vector<std::vector<std::shared_ptr<Graph>>> fromSDFileMulti(const std::string &file, const MDLOptions &options)¶
- Returns
a list of lists of graphs graph created from the given SD data.
- Throws
InputError
on bad input.
-
static std::shared_ptr<Graph> create(std::unique_ptr<lib::Graph::Single> g)¶
-
static std::shared_ptr<Graph> create(std::unique_ptr<lib::Graph::Single> g, std::map<int, std::size_t> externalToInternalIds, std::vector<std::pair<std::string, bool>> warnings)¶
- Parameters
externalToInternalIds – map from user-defined integers to the vertex indices of
g
. See alsogetVertexFromExternalId()
.warnings – a list of warning messages to store. The second component is supposed to indicate whether the warning was printed before construction (
true
), or was a silenced warning (false
). See alsogetLoadingWarnings()
.
- Returns
a graph wrapping the given internal graph object. The second version instantiates a structure holding the given data created from an external data source.