Class VentoFoggia
java.lang.Object
org.openscience.cdk.isomorphism.Pattern
org.openscience.cdk.isomorphism.VentoFoggia
A structure pattern which utilises the Vento-Foggia (VF) algorithm [Cordella Luigi P et. al.. IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE. 2004. 26].
Find and count the number molecules which contain the query substructure.
IAtomContainer query = ...;
Pattern pattern = VentoFoggia.findSubstructure(query);
int hits = 0;
for (IAtomContainer m : ms)
if (pattern.matches(m))
hits++;
Finding the matching to molecules which contain the query substructure. It is
more efficient to obtain the match(IAtomContainer) and check it's size rather than
test if it Pattern.matches(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++; }
- Author:
- John May
-
Field Summary
Fields inherited from class Pattern
hasVarAttach -
Method Summary
Modifier and TypeMethodDescriptionstatic PatternfindIdentical(IAtomContainer query) Create a pattern which can be used to find molecules which are the same as thequerystructure.static PatternfindIdentical(IAtomContainer query, AtomMatcher atomMatcher, BondMatcher bondMatcher) Create a pattern which can be used to find molecules which are the same as thequerystructure.static PatternfindSubstructure(IAtomContainer query) Create a pattern which can be used to find molecules which contain thequerystructure.static PatternfindSubstructure(IAtomContainer query, AtomMatcher atomMatcher, BondMatcher bondMatcher) Create a pattern which can be used to find molecules which contain thequerystructure.int[]match(IAtomContainer target) Find a matching of this pattern in thetarget.matchAll(IAtomContainer target) Find all mappings of this pattern in thetarget.
-
Method Details
-
match
Find a matching of this pattern in thetarget. 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! } } -
matchAll
Find all mappings of this pattern in thetarget. Stereochemistry should not be checked to allow filtering withMappings.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(); -
findSubstructure
Create a pattern which can be used to find molecules which contain thequerystructure.- Parameters:
query- the substructure to find- Returns:
- a pattern for finding the
query
-
findIdentical
Create a pattern which can be used to find molecules which are the same as thequerystructure.- Parameters:
query- the substructure to find- Returns:
- a pattern for finding the
query
-
findSubstructure
public static Pattern findSubstructure(IAtomContainer query, AtomMatcher atomMatcher, BondMatcher bondMatcher) Create a pattern which can be used to find molecules which contain thequerystructure.- Parameters:
query- the substructure to findatomMatcher- how atoms are matchedbondMatcher- how bonds are matched- Returns:
- a pattern for finding the
query
-
findIdentical
public static Pattern findIdentical(IAtomContainer query, AtomMatcher atomMatcher, BondMatcher bondMatcher) Create a pattern which can be used to find molecules which are the same as thequerystructure.- Parameters:
query- the substructure to findatomMatcher- how atoms are matchedbondMatcher- how bonds are matched- Returns:
- a pattern for finding the
query
-