Query feature specific search options

In this document the search options concerning query features are summarized and their usage is shown in different search interfaces.

 

Exact query atom matching

Sets whether exact query atom matching should be used or not. If true, query information (eg. atom list, any atom, number of hydrogens, aromaticity, etc.) in atoms will not be evaluated, but rather exact matching of these information is required. It is useful for searching in query databases. Default value is false.

MolSearch API
MolSearchOptions searchOptions = new MolSearchOptions(SearchConstants.SUBSTRUCTURE);
searchOptions.setExactQueryAtomMatching( true / false );
// ...
MolSearch searcher = new MolSearch();
searcher.setSearchOptions(searchOptions);
JChemSearch API
JChemSearchOptions searchOptions = new JChemSearchOptions(SearchConstants.SUBSTRUCTURE);
searchOptions.setExactQueryAtomMatching( true / false );
// ...
JChemSearch searcher = new JChemSearch();
searcher.setSearchOptions(searchOptions);
JChem Oracle Cartridge
Use the jc_compare operator with exactQueryAtomMatching:y/n
 
Example:
SELECT count(*) FROM nci_150k WHERE jc_compare(structure, 'Brc1ccccc1', 't:s exactQueryAtomMatching:y') = 1;
jcsearch command line tool
Use the following command line parameter:
 
--exactQueryAtomMatching:y/n

Hydrogen count query property interpretation

Sets the H count matching mode. See examples of MDL and Daylight H query property representation.

MolSearch API
MolSearchOptions searchOptions = new MolSearchOptions(SearchConstants.SUBSTRUCTURE);
searchOptions.setHCountMatching( SearchConstants.HCOUNT_MATCHING_AUTO /
SearchConstants.HCOUNT_MATCHING_EQUAL / SearchConstants.HCOUNT_MATCHING_GREATER_OR_EQUAL );
// ...
MolSearch searcher = new MolSearch();
searcher.setSearchOptions(searchOptions);
 
Default value is SearchConstants.HCOUNT_MATCHING_AUTO.
JChemSearch API
JChemSearchOptions searchOptions = new JChemSearchOptions(SearchConstants.SUBSTRUCTURE);
searchOptions.setHCountMatching( SearchConstants.HCOUNT_MATCHING_AUTO /
SearchConstants.HCOUNT_MATCHING_EQUAL / SearchConstants.HCOUNT_MATCHING_GREATER_OR_EQUAL );
// ...
JChemSearch searcher = new JChemSearch();
searcher.setSearchOptions(searchOptions);
 
Default value is SearchConstants.HCOUNT_MATCHING_AUTO.
JChem Oracle Cartridge
Use the jc_compare operator with HCountMatching:G/E/A, where
 
G:(greater or equal, mdl behavior) target atom must have H-s greater or equal to query H-s, in excess of explicit H-s. H0 means no extra H other than explicitly drawn.
E:(equal, daylight behavior) target atom mus have H-s equal to H count number.
A:automatically determine whether G or E should be used, from the query source. (smiles and smarts source: E, all other: G).
 
Example:
 
SELECT count(*) FROM nci_150k WHERE jc_compare(structure, 'Brc1ccccc1', 't:s HCountMatching:A') = 1;
jcsearch command line tool
Use the following command line parameter:
 
--HCountMatching:G/E/A
 
G:(greater or equal, mdl behavior) target atom must have H-s greater or equal to query H-s, in excess of explicit H-s. H0 means no extra H other than explicitly drawn.
E:(equal, daylight behavior) target atom mus have H-s equal to H count number.
A:automatically determine whether G or E should be used, from the query source. (smiles and smarts source: E, all other: G).

Implicit H matching mode

Set option for matching implicit and explicit hydrogens. See examples here.

MolSearch API
MolSearchOptions searchOptions = new MolSearchOptions(SearchConstants.SUBSTRUCTURE);
searchOptions.setImplicitHMatching( SearchConstants.IMPLICIT_H_MATCHING_DEFAULT /
SearchConstants.IMPLICIT_H_MATCHING_ENABLED / SearchConstants.IMPLICIT_H_MATCHING_DISABLED /
SearchConstants.IMPLICIT_H_MATCHING_IGNORE);
// ...
MolSearch searcher = new MolSearch();
searcher.setSearchOptions(searchOptions);
 
Default value is SearchConstants.IMPLICIT_H_MATCHING_DEFAULT.
JChemSearch API
JChemSearchOptions searchOptions = new JChemSearchOptions(SearchConstants.SUBSTRUCTURE);
searchOptions.setImplicitHMatching( SearchConstants.IMPLICIT_H_MATCHING_DEFAULT /
SearchConstants.IMPLICIT_H_MATCHING_ENABLED / SearchConstants.IMPLICIT_H_MATCHING_DISABLED /
SearchConstants.IMPLICIT_H_MATCHING_IGNORE);
// ...
JChemSearch searcher = new JChemSearch();
searcher.setSearchOptions(searchOptions);
 
Default value is SearchConstants.IMPLICIT_H_MATCHING_DEFAULT.
JChem Oracle Cartridge
Use the jc_compare operator with implicitHMatching:d/y/n/i, where
 
d: default: its value is y in almost every cases. There is only one exception: its value is n in case of duplicate search against a query table in a database.
y: Implicit and explicit hydrogens can match.
n: Implicit and explicit hydrogens cannot match.
i: Implicit and explicit hydrogens are ignored.
jcsearch command line tool
Use the following command line parameter:
 
--implicitHMatching:d/y/n/i
 
d: default: its value is y in almost every cases. There is only one exception: its value is n in case of duplicate search against a query table in a database.
y: Implicit and explicit hydrogens can match.
n: Implicit and explicit hydrogens cannot match.
i: Implicit and explicit hydrogens are ignored.

Undefined R-atom matching

Sets the matching behavior of an undefined R atom in the query. Examples of group matching of undefined R-atoms are presented here .
R-group queries of Markush targets are not supported with undefinedRAtom:g/gh/ghe options when query structures contain undefined R-atom(s).
They are supported only with undefinedRAtom:a and undefinedRAtom:u options.

  • g (default): undefined R-atom matches a group of one or more connected atoms in target, including at least one heavy atom;

  • gh: undefined R-atom matches a group of one or more connected atoms in target, which can also be a single H atom;

  • ghe: undefined R-atom matches a group of one or more connected atoms in target, which can also be a single H atom or
    the empty set (empty set match is allowed for isolated or one-attachment R-atoms only);

  • a: undefined R-atom matches any single atom in target;

  • u: undefined R-atom matches only an undefined R atom in target.

MolSearch API
MolSearchOptions searchOptions = new MolSearchOptions(SearchConstants.SUBSTRUCTURE);
searchOptions.setUndefinedRAtom( SearchConstants.UNDEF_R_MATCHING_GROUP / SearchConstants.UNDEF_R_MATCHING_GROUP_H /
SearchConstants.UNDEF_R_MATCHING_GROUP_H_EMPTY / SearchConstants.UNDEF_R_MATCHING_ALL /
SearchConstants.UNDEF_R_MATCHING_UNDEF_R );
// ...
MolSearch searcher = new MolSearch();
searcher.setSearchOptions(searchOptions);
 
Default value is SearchConstants.UNDEF_R_MATCHING_GROUP.
JChemSearch API
JChemSearchOptions searchOptions = new JChemSearchOptions(SearchConstants.SUBSTRUCTURE);
searchOptions.setUndefinedRAtom( SearchConstants.UNDEF_R_MATCHING_GROUP / SearchConstants.UNDEF_R_MATCHING_GROUP_H /
SearchConstants.UNDEF_R_MATCHING_GROUP_H_EMPTY / SearchConstants.UNDEF_R_MATCHING_ALL /
SearchConstants.UNDEF_R_MATCHING_UNDEF_R );
// ...
JChemSearch searcher = new JChemSearch();
searcher.setSearchOptions(searchOptions);
 
Default value is SearchConstants.UNDEF_R_MATCHING_GROUP.
JChem Oracle Cartridge
Use the jc_compare operator with undefinedRAtom:g/gh/ghe/a/u.
jcsearch command line tool
Use the following command line parameter:
 
--undefinedRAtom:g/gh/ghe/a/

Bridging R ligand

Sets whether different undefined R-atoms can match the same group of atoms. This parameter is only used if undefined R atom matching behavior is set to group matching. Default value is no or false.

MolSearch API
MolSearchOptions searchOptions = new MolSearchOptions(SearchConstants.SUBSTRUCTURE);
searchOptions.setBridgingRAllowed( true / false );
// ...
MolSearch searcher = new MolSearch();
searcher.setSearchOptions(searchOptions);
 
Default value is false.
JChemSearch API
JChemSearchOptions searchOptions = new JChemSearchOptions(SearchConstants.SUBSTRUCTURE);
searchOptions.setBridgingRAllowed( true / false );
// ...
JChemSearch searcher = new JChemSearch();
searcher.setSearchOptions(searchOptions);
 
Default value is false.
JChem Oracle Cartridge
Use the jc_compare operator with bridgingRAllowed:n/y
jcsearch command line tool
Use the following command line parameter:
--bridgingRAllowed:n/y

R ligand equality check

Switches on/off the requirement that R-atoms with the same R-group ID (e.g. two R1 atoms) should match ligands with the same structure. Default is yes or true.

MolSearch API
MolSearchOptions searchOptions = new MolSearchOptions(SearchConstants.SUBSTRUCTURE);
searchOptions.setRLigandEqualityCheck( true / false );
// ...
MolSearch searcher = new MolSearch();
searcher.setSearchOptions(searchOptions);
 
Default value is true.
JChemSearch API
JChemSearchOptions searchOptions = new JChemSearchOptions(SearchConstants.SUBSTRUCTURE);
searchOptions.setRLigandEqualityCheck( true / false );
// ...
JChemSearch searcher = new JChemSearch();
searcher.setSearchOptions(searchOptions);
 
Default value is true.
JChem Oracle Cartridge
Use the jc_compare operator with RLigandEqualityheck:y|n.
 
yes (default);
n: no.
jcsearch command line tool
Use the following command line parameter:
 
--RLigandEqualityCheck:y/n