1 package search.hitdisplay;
2
3 import java.util.Arrays;
4
5 import resource.ResourceLocator;
6 import util.ConnectionUtil;
7 import util.DisplayUtil;
8 import util.MolImportUtil;
9 import util.SearchUtil;
10import util.TableOperations;
11import chemaxon.jchem.db.JChemSearch;
12import chemaxon.sss.SearchConstants;
13import chemaxon.sss.search.JChemSearchOptions;
14import chemaxon.struc.Molecule;
15import chemaxon.util.ConnectionHandler;
16import chemaxon.util.HitColoringAndAlignmentOptions;
17
18
23public final class RotateDatabaseHitsExample {
24
25 private static final String TABLE_NAME = "demo";
26
27 private ConnectionHandler connHandler;
28
29 public static void main(String[] args) {
30 try {
31 new RotateDatabaseHitsExample().run();
32 } catch (Exception e) {
33 e.printStackTrace();
34 }
35 }
36
37 private void run() throws Exception {
38 connHandler = ConnectionUtil.connectToDB();
39 try {
40 TableOperations.setupMoleculeTable(connHandler, TABLE_NAME);
41 runExample();
42 } finally {
43 ConnectionUtil.closeConnection(connHandler);
44 }
45
46 }
47
48 private void runExample() throws Exception {
49 Molecule[] hits = null;
50
51 JChemSearchOptions searchOpts =
52 new JChemSearchOptions(SearchConstants.DEFAULT_SEARCHTYPE);
53 JChemSearch jcs =
54 SearchUtil.createJChemSearch(connHandler, "OC(CCC)=O", TABLE_NAME, searchOpts);
55
56 String path = ResourceLocator.getPath("rotateQuery.mrv");
57 Molecule query = MolImportUtil.importMol(path);
58 jcs.setQueryStructure(query);
59
60 jcs.run();
61
62 HitColoringAndAlignmentOptions displayOpts = DisplayUtil.createColoringOptions();
63 displayOpts.setAlignmentMode(HitColoringAndAlignmentOptions.ALIGNMENT_ROTATE);
64
65 int[] results = jcs.getResults();
67 System.out.println("Hits: " + Arrays.toString(results));
68 hits = jcs.getHitsAsMolecules(results, displayOpts, null, null);
69
70 DisplayUtil.showMolecule(query, 0, 200, "Query");
72
73 for (int i = 0; i < 8; i++) {
75 DisplayUtil.showMolecule(hits[i], i + 4, 200, "Hit " + (i + 1));
76 }
77 }
78
79}
80