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
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