Biochemfusion
Download
Report
Transcript Biochemfusion
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