Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Interfacing to MarvinSketch - the "API-free" solution Jan Holst Jensen CEO, Biochemfusion - Enabling biochemformatics [email protected] ChemAxon UGM 2009 A need for chemistry ? Yes. Biochemfusion's Proteax Registration and analysis of modified protein structures PLN text H-QC(1)IC(1)SLYC(3)N-OH. H-A[Gla]LVC(3)GER-OH name="Example protein." id=EXA_PROT Oracle cartridge + spreadsheet solution (Excel or OpenOffice Calc) Sequence format transforms NH2 O OH CH3 CH3 Sequence to chemical structure translation H N H O H N N H O H N O N H O S H N O H N N H O N H O CH3 S OH O S N H CH3 O H N N H OH O O H N H3C O OH O CH3 H S O N H H N O O N H H N O OH O CH3 O OH NH H2N ChemAxon UGM 2009 NH2 O CH3 CH3 [email protected] O OH NH Mapping sequence to structure Each residue code mapped to a residue structure Standard amino acids - built-in H-QC(1)IC(1)SLYC(3)N-OH. H-A[Gla]LVC(3)GER-OH Custom residues - defined by modification database Stitch resulting residue structures together, add terminals, add crosslinks - done. NH2 O OH CH3 CH3 H N H O H N N H O H N O N H O S H N O H N N H O N H OH O S CH3 CH3 H N H H N N H OH O O OH O CH3 O H N H3C O S O N H H N O O N H H N O OH O CH3 O OH NH H2N ChemAxon UGM 2009 NH2 O O CH3 S CH3 [email protected] O OH NH Residue modification database Dbl-click [email protected] ChemAxon UGM 2009 Live demo [email protected] ChemAxon UGM 2009 Normal edit workflow Write molecule to temporary molfile Start editor (MarvinSketch.exe) Passing temporary molfile on command line Use CreateProcess(), save returned process id Wait for editor process exit... ...or temporary file change (editor saved file) in this case: request editor close (see next slide) Read molecule back in from temporary file [email protected] ChemAxon UGM 2009 Cancelling edits Post WM_CLOSE message to main window of editor process Main window of editor process is found by Enumerating all windows Choosing the first window that belongs to editor process and is visible, has a title and is not a child window Probably not fool-proof but is observed to work in general Rely on editor's normal WM_CLOSE response Just like an end-user closing the main window [email protected] ChemAxon UGM 2009 Ups and downs Pros Cons Extremely simple concept. Relies on standard OS conventions instead of vendor APIs. Loosely coupled - works with many editors from different vendors without custom wrapping May be slow - application startup time is suffered for each edit operation Loosely coupled - no way to intercept events or customize editor experience Loosely coupled - more resistant to Loosely coupled - less control over versioning issues versioning Some editors are less well-behaved and won't work with this [email protected] ChemAxon UGM 2009