1 package search.hitdisplay;
2 
3 import resource.ResourceLocator;
4 import util.DisplayUtil;
5 import util.MolImportUtil;
6 import chemaxon.formats.MolImporter;
7 import chemaxon.sss.SearchConstants;
8 import chemaxon.sss.search.MolSearchOptions;
9 import chemaxon.struc.Molecule;
10import chemaxon.util.HitColoringAndAlignmentOptions;
11import chemaxon.util.HitDisplayTool;
12
13/**
14 * Example code for partial clean.
15 * 
16 * @author JChem Base team, ChemAxon Ltd.
17 */
18public final class PartialCleanExample {
19
20    public static void main(String[] args) {
21        try {
22            new PartialCleanExample().run();
23        } catch (Exception e) {
24            e.printStackTrace();
25        }
26    }
27
28    private void run() throws Exception {
29        Molecule query = getQuery();
30        Molecule target = getTarget();
31        Molecule display = getDisplayMol(query, target, getDisplayOptions());
32
33        DisplayUtil.showMolecule(query, 0, "Query");
34        DisplayUtil.showMolecule(target, 1, "Target");
35        DisplayUtil.showMolecule(display, 2, "Aligned target");
36    }
37
38    private HitColoringAndAlignmentOptions getDisplayOptions() {
39        HitColoringAndAlignmentOptions displayOpts = DisplayUtil.createColoringOptions();
40        displayOpts.setAlignmentMode(HitColoringAndAlignmentOptions.ALIGNMENT_PARTIAL_CLEAN);
41        return displayOpts;
42    }
43
44    private Molecule getQuery() throws Exception {
45        return MolImportUtil.importMol(ResourceLocator.getPath("partialCleanQuery.mrv"));
46    }
47
48    private Molecule getTarget() throws Exception {
49        return MolImporter.importMol("CC(C)(C)C1=C2OC(=O)C(=C2N2N=NN=C12)C(C)(C)C");
50    }
51
52    private Molecule getDisplayMol(Molecule query, Molecule target,
53            HitColoringAndAlignmentOptions displayOpts) throws Exception {
54
55        MolSearchOptions searchOpts = new MolSearchOptions(SearchConstants.DEFAULT_SEARCHTYPE);
56        HitDisplayTool hdt = new HitDisplayTool(displayOpts, searchOpts, query);
57
58        return hdt.getHit(target);
59    }
60
61}
62