public final class SmartsPattern extends Pattern
Pattern
for matching a single SMARTS query against multiple target
compounds. The class can be used for efficiently matching many queries
against a single target if setPrepare(boolean)
is disabled (prepare(IAtomContainer)
) should be called manually once for each molecule.
Simple usage:
Obtaining aPattern ptrn = SmartsPattern.create("O[C@?H](C)CC"); for (IAtomContainer ac : acs) { if (ptrn.matches(ac)) { // 'ac' contains the pattern } }
Mappings
instance and determine the number of unique
matches.
Pattern ptrn = SmartsPattern.create("O[C@?H](C)CC"); for (IAtomContainer ac : acs) { nUniqueHits += ptrn.matchAll(ac) .countUnique(); }
Modifier and Type | Method and Description |
---|---|
static SmartsPattern |
create(String smarts)
Default SMARTS pattern constructor, passes in a null chem object builder.
|
static SmartsPattern |
create(String smarts,
IChemObjectBuilder builder)
Create a
Pattern that will match the given smarts query. |
int[] |
match(IAtomContainer container)
Find a matching of this pattern in the
target . |
Mappings |
matchAll(IAtomContainer target)
Obtain the mappings of the query pattern against the target compound.
|
static void |
prepare(IAtomContainer target) |
SmartsPattern |
setPrepare(boolean doPrep)
Sets whether the molecule should be "prepared" for a SMARTS match,
including set ring flags and perceiving aromaticity.
|
findIdentical, findSubstructure, matchAll, matches, matches
public static void prepare(IAtomContainer target)
public SmartsPattern setPrepare(boolean doPrep)
prepare(IAtomContainer)
) is if it has
already been done, for example when matching multiple SMARTS patterns.doPrep
- whether preparation should be donepublic int[] match(IAtomContainer container)
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)
SeePattern ptrn = SmartsPattern.create("O[C@?H](C)CC"); int nUniqueHits = 0; for (IAtomContainer ac : acs) { nUniqueHits += ptrn.matchAll(ac) .countUnique(); }
Mappings
for available methods.public static SmartsPattern create(String smarts, IChemObjectBuilder builder)
Pattern
that will match the given smarts
query.smarts
- SMARTS pattern stringbuilder
- chem object builder used to create objectspublic static SmartsPattern create(String smarts)
smarts
- SMARTS pattern stringCopyright © 2018. All Rights Reserved.