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 process I. JChemSearch MolSearch StandardizedMolSearch 5
Search in database Main classes of the search process II. SearchOptions JChemSearchOptions MolSearchOptions (JChemSearch) (MolSearch, StandardizedMolSearch) 6
Structure search types Search type Query Retrieved Not retrieved Substructure Superstructure Full structure Full fragment Duplicate Similarity 7
Search options Charge, isotopes, radical, valence (on, exact, ignore) ON: Exact: Ignore: 8
Search options Stereo search on 9
Search options Stereo search exact 10
Search options Stereo search enantiomer, diastereomer 11
Search options Stereo search off 12
Search options Tautomer search (off/on) 13
Search options Vague bond search levels OFF default or aromatic ignore type 14
Search options • Attached data search (off/on) 15
Search in database 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
Manipulation DB structures Manipulation queries DB search Hits Memory search
Search in database - asynchronous mode 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 - similarity 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 - descriptors 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 - filtering 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
Recommend
More recommend