1 package search.hitdisplay;
2 
3 import util.DisplayUtil;
4 import chemaxon.formats.MolImporter;
5 import chemaxon.sss.SearchConstants;
6 import chemaxon.sss.search.MolSearchOptions;
7 import chemaxon.struc.Molecule;
8 import chemaxon.util.HitColoringAndAlignmentOptions;
9 import chemaxon.util.HitDisplayTool;
10
11/**
12 * Example code for hit coloring based on similarity search.
13 * 
14 * @author JChem Base team, ChemAxon Ltd.
15 */
16public final class HitColoringExample {
17
18    private static final String QUERY = "N1C=NC2=C1C(=O)N(C)C(=O)N2CCC";
19    private static final String TARGET = "CN1C=NC2=C1C(=O)N(C)C(=O)N2OC";
20
21    public static void main(String[] args) {
22        try {
23            new HitColoringExample().run();
24        } catch (Exception e) {
25            e.printStackTrace();
26        }
27    }
28
29    private void run() throws Exception {
30        Molecule query = MolImporter.importMol(QUERY);
31        Molecule target = MolImporter.importMol(TARGET);
32        Molecule display = getDisplayMol(query, target, getDisplayOptions());
33
34        DisplayUtil.showMolecule(query, 0, "Query");
35        DisplayUtil.showMolecule(target, 1, "Target");
36        DisplayUtil.showMolecule(display, 2, "Colored target");
37    }
38
39    private HitColoringAndAlignmentOptions getDisplayOptions() {
40        HitColoringAndAlignmentOptions displayOpts = DisplayUtil.createColoringOptions();
41        displayOpts.setAlignmentMode(HitColoringAndAlignmentOptions.ALIGNMENT_OFF);
42        // alignmentOptions.setDisplayLabelsAndBoxes(true);
43        // alignmentOptions.setQueryDisplay(true);
44        return displayOpts;
45    }
46
47    private Molecule getDisplayMol(Molecule query, Molecule target,
48            HitColoringAndAlignmentOptions displayOpts) throws Exception {
49
50        MolSearchOptions searchOpts = new MolSearchOptions(SearchConstants.SIMILARITY);
51        HitDisplayTool hdt = new HitDisplayTool(displayOpts, searchOpts, query);
52
53        return hdt.getHit(target);
54    }
55
56}
57