Query DB structures Manipulation queries DB search Hits Memory - - PowerPoint PPT Presentation
Query DB structures Manipulation queries DB search Hits Memory - - PowerPoint PPT Presentation
Query DB structures Manipulation queries DB search Hits Memory search 2 Standardization of the query 3 DB search DB structures Manipulation queries DB search Hits Memory search Search in database Main classes of the search
2
3
Standardization of the query
DB search
DB
structures queries
DB search Hits Manipulation Memory search
Main classes of the search process I.
5
MolSearch JChemSearch StandardizedMolSearch
Search in database
Main classes of the search process II.
6
SearchOptions MolSearchOptions (MolSearch, StandardizedMolSearch) JChemSearchOptions (JChemSearch)
Search in database
7
Search type Query Retrieved Not retrieved Duplicate Superstructure Full structure Full fragment Similarity Substructure
Structure search types
Charge, isotopes, radical, valence
(on, exact, ignore)
8
Search options
ON: Exact: Ignore:
Stereo search
9
Search options
- n
Stereo search
10
Search options
exact
Stereo search
11
Search options
enantiomer, diastereomer
Stereo search
12
Search options
- ff
Tautomer search (off/on)
13
Search options
Vague bond search levels
14
Search options
OFF default
- r aromatic
ignore type
- Attached data search (off/on)
15
Search options
Search type is set in constructor!
JChemSearchOptions jcSearchOptions = new JChemSearchOptions(SearchConstants.SIMILARITY);
Setting search options
jcSearchOptions.setVagueBondLevel(SearchConstants.VAGUE_BOND_LEVEL2)
jcSearchOptions.setOptions("hcountmatching:g keepqueryorder:y");
Modifying search behaviour
jcSearchOptions.setMaxResultCount(10);
jcSearchOptions.setMaxTime(10000);
jcSearchOptions.setReturnsNonHits(true); (SearchUtil.java)
16
Search in database
Running a search - JChemSearch
JChemSearch jChemSearch = new JChemSearch(); jChemSearch.setConnectionHandler(connectionHandler); jChemSearch.setQueryStructure(query); // no need for aromatization! jChemSearch.setStructureTable(targetTable); jChemSearch.setSearchOptions(jcSearchOptions); jChemSearch.run(); (SearchUtil.java)
Cartridge example
SELECT id FROM mystructures WHERE jc_compare(smiles, 'Brc1ccccc1C=C Cc1cccc(Br)c1C Cc1ccccc1Br', 't:d') = 1;
17
Search in database
Reusing objects
jChemSearch.setSearchOptions(jcSearchOptions); jChemSearch.run(); … jcSearchOptions.setOption("vagueBond", "3"); … // JChemSearchOptions object must be set again! jChemSearch.setSearchOptions(jcSearchOptions);
jChemSearch.getSearchOptions().setOption("vagueBond", "3"); (DatabaseSearchExample.java)
18
Search in database
Manipulation
DB
structures queries
DB search Hits Manipulation Memory search
Running search in a separate thread
jChemSearch.setRunMode(JChemSearch.RUN_MODE_ASYNCH_COMPLETE); jChemSearch.run(); while (jChemSearch.isRunning()) { String msg = jChemSearch.getProgressMessage(); int count = jChemSearch.getResultCount(); int lastId = jChemSearch.getCurrentId(); System.out.printf("Progress message: %s, result count: %d, " + "last cd_id: %d\n", msg, count, lastId); Thread.sleep(100); } System.out.println(jChemSearch.getResultCount() + " hit(s) found"); (AsyncSearchExample.java)
20
Search in database - asynchronous mode
Similarity search
Using default descriptor: chemical hashed fingerprint
jcso.setSearchType(SearchConstants.SIMILARITY); jcso.setDissimilarityThreshold(0.4);
Using other descriptors: a descriptor table have to be created first!
gMD = new GenerateMD(); ... // set connection handler, structure table name etc. gMD.setDescriptor("myDescriptor", "ECFP", settings, null); gMD.init(); gMD.run(); jcso.setDescriptorName("myDescriptor"); (SimilaritySearchExample.java)
21
Search in database - similarity
JChem Screen descriptors can be set up for JChem tables Available descriptors:
ECFP, FCFP – extended connectivity fingerprint pharmacophore fingerprint BCUT chemical fingerprint
Various metrics
Tanimoto Euclidean Tversky, Dice, Sub, Super, etc
22
Search in database - descriptors
Pre-filtering, ordering
Filtering target molecules:
jcSearchOptions.setFilterQuery("SELECT cd_id FROM my_structures" + " WHERE cd_molweight < 500");
Filter queries can also be used for ordering:
jcSearchOptions.setFilterQuery("SELECT cd_id FROM my_structures” + " ORDER BY cd_molweight");
Filtering based on a separate table:
jcSearchOptions.setFilterQuery("SELECT cd_id" + " FROM stock_table" + " WHERE quantity > 20"); (SearchWithFilterQueryExample.java)
23