public final class VentoFoggia extends Pattern
Finding the matching to molecules which contain the query substructure. It is more efficient to obtain theIAtomContainer query = ...; Pattern pattern = VentoFoggia.findSubstructure(query); int hits = 0; for (IAtomContainer m : ms) if (pattern.matches(m)) hits++;
match(org.openscience.cdk.interfaces.IAtomContainer)
and check it's size rather than
test if it Pattern.matches(org.openscience.cdk.interfaces.IAtomContainer)
. These methods automatically verify
stereochemistry.
IAtomContainer query = ...; Pattern pattern = VentoFoggia.findSubstructure(query); int hits = 0; for (IAtomContainer m : ms) { int[] match = pattern.match(m); if (match.length > 0) hits++; }
Modifier and Type | Method and Description |
---|---|
static Pattern |
findIdentical(IAtomContainer query)
Create a pattern which can be used to find molecules which are the same
as the
query structure. |
static Pattern |
findIdentical(IAtomContainer query,
AtomMatcher atomMatcher,
BondMatcher bondMatcher)
Create a pattern which can be used to find molecules which are the same
as the
query structure. |
static Pattern |
findSubstructure(IAtomContainer query)
Create a pattern which can be used to find molecules which contain the
query structure. |
static Pattern |
findSubstructure(IAtomContainer query,
AtomMatcher atomMatcher,
BondMatcher bondMatcher)
Create a pattern which can be used to find molecules which contain the
query structure. |
int[] |
match(IAtomContainer target)
Find a matching of this pattern in the
target . |
Mappings |
matchAll(IAtomContainer target)
Find all mappings of this pattern in the
target . |
public int[] match(IAtomContainer target)
target
. If no such order
exist an empty mapping is returned. Depending on the implementation
stereochemistry may be checked (recommended).
Pattern pattern = ...; // create pattern for (IAtomContainer m : ms) { int[] mapping = pattern.match(m); if (mapping.length > 0) { // found mapping! } }
public Mappings matchAll(IAtomContainer target)
target
. Stereochemistry
should not be checked to allow filtering with Mappings.stereochemistry()
.
Using the fluent interface (seePattern pattern = Pattern.findSubstructure(query); for (IAtomContainer m : ms) { for (int[] mapping : pattern.matchAll(m)) { // found mapping } }
Mappings
) we can search and
manipulate the mappings. Here's an example of finding the first 5
mappings and creating an array. If the mapper is lazy other states are
simply not explored.
// find only the first 5 mappings and store them in an array Pattern pattern = Pattern.findSubstructure(query); int[][] mappings = pattern.matchAll(target) .limit(5) .toArray();
public static Pattern findSubstructure(IAtomContainer query)
query
structure.query
- the substructure to findquery
public static Pattern findIdentical(IAtomContainer query)
query
structure.query
- the substructure to findquery
public static Pattern findSubstructure(IAtomContainer query, AtomMatcher atomMatcher, BondMatcher bondMatcher)
query
structure.query
- the substructure to findatomMatcher
- how atoms are matchedbondMatcher
- how bonds are matchedquery
public static Pattern findIdentical(IAtomContainer query, AtomMatcher atomMatcher, BondMatcher bondMatcher)
query
structure.query
- the substructure to findatomMatcher
- how atoms are matchedbondMatcher
- how bonds are matchedquery
Copyright © 2018. All Rights Reserved.