![]() |
Chemical Data Processing Library Python API - Version 1.4.0
|
Enumerates all maximal common connected substructures shared between a query and a target molecular graph. More...
Inheritance diagram for CDPL.Chem.CommonConnectedSubstructureSearch:Public Member Functions | |
| None | __init__ () |
Constructs and initializes the CommonConnectedSubstructureSearch instance. | |
| None | __init__ (MolecularGraph query) |
Constructs and initializes the CommonConnectedSubstructureSearch instance for the query molecular graph query. More... | |
| int | getObjectID () |
| Returns the numeric identifier (ID) of the wrapped C++ class instance. More... | |
| None | setAtomMatchExpressionFunction (AtomMatchExpressionPtrAtomFunctor func) |
| Installs a function that resolves the Chem.AtomMatchExpression implementation instance for a query atom. More... | |
| None | setBondMatchExpressionFunction (BondMatchExpressionPtrBondFunctor func) |
| Installs a function that resolves the Chem.BondMatchExpression implementation instance for a query bond. More... | |
| None | setMolecularGraphMatchExpressionFunction (MolGraphMatchExpressionPtrMolGraphFunctor func) |
| Installs a function that resolves the Chem.MatchExpression implementation instance for the query molecular graph. More... | |
| bool | mappingExists (MolecularGraph target) |
| Searches for a common connected substructure between the query and the target molecular graph target. More... | |
| bool | findAllMappings (MolecularGraph target) |
| Searches for all possible atom/bond mappings of connected query subgraphs to substructures of the target molecular graph target. More... | |
| bool | findMaxMappings (MolecularGraph target) |
| Searches for all maximum-sized atom/bond mappings of connected query subgraphs to substructures of the target molecular graph target. More... | |
| int | getNumMappings () |
| Returns the number of atom/bond mappings that were recorded in the last search for common substructures. More... | |
| AtomBondMapping | getMapping (int idx) |
| Returns the stored Chem.AtomBondMapping instance at index idx. More... | |
| None | uniqueMappingsOnly (bool unique) |
| Allows to specify whether or not to store only unique atom/bond mappings. More... | |
| bool | uniqueMappingsOnly () |
| Tells whether duplicate atom/bond mappings are discarded. More... | |
| int | getMaxNumMappings () |
| Returns the specified limit on the number of stored atom/bond mappings. More... | |
| None | setMaxNumMappings (int max_num_mappings) |
| Allows to specify a limit on the number of stored atom/bond mappings. More... | |
| int | getMinSubstructureSize () |
| Returns the minimum accepted common substructure size. More... | |
| None | setMinSubstructureSize (int min_size) |
| Allows to specify the minimum accepted common substructure size. More... | |
| None | setQuery (MolecularGraph query) |
| Sets query as the new query molecular graph. More... | |
| AtomBondMapping | __getitem__ (int idx) |
| int | __len__ () |
| bool | __nonzero__ (MolecularGraph self) |
| bool | __bool__ (MolecularGraph self) |
Properties | |
| objectID = property(getObjectID) | |
| numMappings = property(getNumMappings) | |
| uniqueMappings = property(uniqueMappingsOnly, uniqueMappingsOnly) | |
| maxNumMappings = property(getMaxNumMappings, setMaxNumMappings) | |
| minSubstructureSize = property(getMinSubstructureSize, setMinSubstructureSize) | |
Enumerates all maximal common connected substructures shared between a query and a target molecular graph.
Unlike Chem.MaxCommonAtomSubstructureSearch and Chem.MaxCommonBondSubstructureSearch, the matches reported here are required to be connected — i.e. each mapping covers a single connected subgraph of both the query and the target. Successive calls to setQuery() and findAllMappings() or findMaxMappings() produce all possible common substructure atom/bond mapping solutions (subject to an atom count lower bound set by setMinSubstructureSize()). If just the information whether or not a common substructure (fulfilling the size lower bound) exists is of interest then the more efficient method mappingExists() can be used. Found common substructures are recorded as Chem.AtomBondMapping instances that can be accessed via index through the method getMapping() or iteration using the iterator pair returned by the methods begin() and end(), respectively. User-defined per-atom, per-bond and per-molecular graph Chem.MatchExpression implementation instance accessor functions can be installed to extend equivalence tests beyond pure topology. The default functions retrieve the expressions saved as corresponding atom, bond and molecular graph property values (see Chem.AtomProperty.MATCH_EXPRESSION, Chem.BondProperty.MATCH_EXPRESSION and Chem.MolecularGraphProperty.MATCH_EXPRESSION). Result accumulation can be bounded by setMaxNumMappings() and uniqueMappingsOnly().
| None CDPL.Chem.CommonConnectedSubstructureSearch.__init__ | ( | MolecularGraph | query | ) |
Constructs and initializes the CommonConnectedSubstructureSearch instance for the query molecular graph query.
| query | A molecular graph that represents the query structure. |
| int CDPL.Chem.CommonConnectedSubstructureSearch.getObjectID | ( | ) |
Returns the numeric identifier (ID) of the wrapped C++ class instance.
Different Python CommonConnectedSubstructureSearch instances may reference the same underlying C++ class instance. The commonly used Python expression a is not b thus cannot tell reliably whether the two CommonConnectedSubstructureSearch instances a and b reference different C++ objects. The numeric identifier returned by this method allows to correctly implement such an identity test via the simple expression a.getObjectID() != b.getObjectID().
| None CDPL.Chem.CommonConnectedSubstructureSearch.setAtomMatchExpressionFunction | ( | AtomMatchExpressionPtrAtomFunctor | func | ) |
Installs a function that resolves the Chem.AtomMatchExpression implementation instance for a query atom.
| func | The accessor function to use. |
| None CDPL.Chem.CommonConnectedSubstructureSearch.setBondMatchExpressionFunction | ( | BondMatchExpressionPtrBondFunctor | func | ) |
Installs a function that resolves the Chem.BondMatchExpression implementation instance for a query bond.
| func | The accessor function to use. |
| None CDPL.Chem.CommonConnectedSubstructureSearch.setMolecularGraphMatchExpressionFunction | ( | MolGraphMatchExpressionPtrMolGraphFunctor | func | ) |
Installs a function that resolves the Chem.MatchExpression implementation instance for the query molecular graph.
| func | The accessor function to use. |
| bool CDPL.Chem.CommonConnectedSubstructureSearch.mappingExists | ( | MolecularGraph | target | ) |
Searches for a common connected substructure between the query and the target molecular graph target.
The method does not store any atom/bond mappings between query and target molecular graphs — it just tells if a valid common substructure mapping solution involving at least getMinSubstructureSize() atoms could be found. If you need access to the atom/bond mappings, use findAllMappings() or findMaxMappings() instead.
| target | The molecular graph that has to be searched for a connected substructure in common with the query. |
True if a common substructure of at least the minimum accepted size could be found, and False otherwise.| bool CDPL.Chem.CommonConnectedSubstructureSearch.findAllMappings | ( | MolecularGraph | target | ) |
Searches for all possible atom/bond mappings of connected query subgraphs to substructures of the target molecular graph target.
The method will store all found common substructure mapping solutions involving at least getMinSubstructureSize() atoms up to the maximum number of recorded mappings specified by setMaxNumMappings(). If only unique mappings have to be stored (see uniqueMappingsOnly(bool unique)), any duplicates of previously found mappings will be discarded.
| target | The target molecular graph that has to be searched for all connected substructures in common with the query. |
True if common substructures of at least the minimum accepted size were found, and False otherwise.| bool CDPL.Chem.CommonConnectedSubstructureSearch.findMaxMappings | ( | MolecularGraph | target | ) |
Searches for all maximum-sized atom/bond mappings of connected query subgraphs to substructures of the target molecular graph target.
The method will store all maximum-sized common substructure mapping solutions involving at least getMinSubstructureSize() atoms up to the maximum number of recorded mappings specified by setMaxNumMappings(). If only unique mappings have to be stored (see uniqueMappingsOnly(bool unique)), any duplicates of previously found mappings will be discarded.
| target | The target molecular graph that has to be searched for all maximum-sized connected substructures in common with the query. |
True if common substructures of at least the minimum accepted size were found, and False otherwise.| int CDPL.Chem.CommonConnectedSubstructureSearch.getNumMappings | ( | ) |
Returns the number of atom/bond mappings that were recorded in the last search for common substructures.
| AtomBondMapping CDPL.Chem.CommonConnectedSubstructureSearch.getMapping | ( | int | idx | ) |
Returns the stored Chem.AtomBondMapping instance at index idx.
| idx | The zero-based index of the Chem.AtomBondMapping instance to return. |
| Base.IndexError | if idx is not in the range [0, getNumMappings()). |
| None CDPL.Chem.CommonConnectedSubstructureSearch.uniqueMappingsOnly | ( | bool | unique | ) |
Allows to specify whether or not to store only unique atom/bond mappings.
The mapping of a query subgraph to a substructure of the target molecular graph is considered to be unique if it differs from all previously found mappings by at least one atom or bond. If the unique argument is True, and a newly discovered mapping covers the same atoms and bonds of the target (including all permutations) as a mapping that was found earlier in the search process, it is considered as a duplicate and will be discarded.
| unique | If True, only unique mappings will be stored, and all found mappings otherwise. |
| bool CDPL.Chem.CommonConnectedSubstructureSearch.uniqueMappingsOnly | ( | ) |
Tells whether duplicate atom/bond mappings are discarded.
True if duplicate mappings are discarded, and False otherwise.| int CDPL.Chem.CommonConnectedSubstructureSearch.getMaxNumMappings | ( | ) |
Returns the specified limit on the number of stored atom/bond mappings.
| None CDPL.Chem.CommonConnectedSubstructureSearch.setMaxNumMappings | ( | int | max_num_mappings | ) |
Allows to specify a limit on the number of stored atom/bond mappings.
In a call to findAllMappings() or findMaxMappings() the common substructure search will terminate as soon as the specified maximum number of stored atom/bond mappings has been reached. A previously set limit on the number of mappings can be disabled by providing zero for the value of max_num_mappings.
| max_num_mappings | The maximum number of atom/bond mappings to store. |
| int CDPL.Chem.CommonConnectedSubstructureSearch.getMinSubstructureSize | ( | ) |
Returns the minimum accepted common substructure size.
| None CDPL.Chem.CommonConnectedSubstructureSearch.setMinSubstructureSize | ( | int | min_size | ) |
Allows to specify the minimum accepted common substructure size.
Any found common substructures which cover less than min_size atoms are not accepted as a valid solution and will be discarded.
| min_size | The minimum accepted common substructure size in number of atoms. |
| None CDPL.Chem.CommonConnectedSubstructureSearch.setQuery | ( | MolecularGraph | query | ) |
Sets query as the new query molecular graph.
| query | A molecular graph that represents the new query. |