chemaxon's java components in a heterogeneous, server-centric application environment
DESCRIPTION
ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment. ChemAxon 2005 User Group Meeting May 19th and 20th, Budapest, Hungary. Mark Runyan, Alex Tulinsky, Richard Sandstrom, and Julie Myhre Cell Therapeutics, Inc. Topics. CTI Background Tactical Approach - PowerPoint PPT PresentationTRANSCRIPT
ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment
ChemAxon 2005 User Group MeetingMay 19th and 20th, Budapest, Hungary
Mark Runyan, Alex Tulinsky, Richard Sandstrom, and Julie Myhre Cell Therapeutics, Inc
Topics
• CTI Background
• Tactical Approach
• Infrastructure Overview
• Component Architecture, Features, and Demonstrations
• Reporting
• Conclusions and Future Directions
Cell Therapeutics, Inc.
• http://www.ctiseattle.com/
• 389 people in the U.S. and Europe
• 25 Discovery Research Scientists in Seattle
• 20 Discovery Research Scientists in Bresso, Italy
• 37 in Pre-Clinical Development in Bresso, Italy
• 4 FTE in Scientific Systems
Informatics Background
• Traditional MDL/ISIS shopDrawbacks:
Cost of deployment and licensing
Lack of native integration capabilities
• Demand for integrating increasingly complex biological and chemical data
• Research conducted in Italy and the United States
Approach
• Maintain legacy registration system
• Develop cost-effective, scalable web-based system for data access and mining
• Loose-coupling of component based systems
• JChem chosen for chemical component
• Emphasis on Open Source Infrastructure
Infrastructure
• Oracle and ISIS/Host on Windows 2003 Server
• ActivityBase
• MOE
• Linux platform / open source tools Java
Apache / Tomcat
JDO / Hibernate / Proxool
Eclipse / Jasper Reports
Ant
MySql
CVS / Bugzilla / Docbook
JChem Import
AutomatedReplication
ISIS/Host Db JChem Db
SDF
Legacy Registration System
Import Process
JCHEM.jchem_struct_update
JCHEM.structureISIS RCG Database
ISIS-JCHEMDifferential Query
delete updated entries (to be re-registered next round)
at
Command Line wrapper
jchem.db.Importer
New Registrations or Updates
Data Modeljchem.structure
cd_id
cd_structure
cd_smiles
...
ct_number
1..1
ctidb.cti_comp_names
compound_name
cas_number
lib_id
...
ct_numberctidb.library_dict
vendor_key
description
...
lib_id
chemdb.cti_moltable
cdbregno
...
ct_number
chemdb.chem_desc
clogP
b_1rotn
tpsa
ct_number
molformula
molweight
ctidb.cti_batch
ct_number
batch_lot_number
batch_date
...
batch_amount
ctidb.cti_formulation
notebook
batch_lot_number
chemist
...
solvents
0..1
1..1
1..1
1..n
1..n
wh.bio_assays
assay_date
ct_number
form_lot_number
response
protocolform_lot_number
0..n
0..n
...
...
reactive
Webapp (server-side)
Java Client
. . .Webapp
Browser - universal thin client
. . .
DAO-layer
UI client
UI imple-mentation
Persistence
Data Model/Data Access
Mapping/Connectivity
Oracle Database
Hibernate - object/relational mapper
JDBC - java-database connectivity
Proxool connection pool
Authentication - Tomcat/JAAS/AD
Hibernate query, db/object mapping
Authorization - Webapp User Identity/Oracle Role
Database User Identity - triggers, logging, etc.
DAO query API
Persistent query definitions
(Structure Search Component)
DAO structure search query
JChemSearch
DAO structure search results query
structure,params
query ID
Query Result
1
2
3
4
DAO query DAO queryparam
s
Data Access Object (DAO)
. . .
wraps JChem API instead of Hibernate,
gets other DAO features for free
Structure Search Webapp
Persistent Query Definition
QueryDef
id: 1230name: my-structure-searchtimestamp: 2005-05-05 10:15:48.0user_id: [email protected]_component: com.ctiseattle.dao.wh.compound.StructureSearchorder_clause: <null>result_count: <null>
QueryParam
id: 1332query_id: 1230name: structureFilter.searchTypevalue: 1
QueryMetadata
id: 1659query_id: 1230name: maxResultsCountvalue: 0
QueryMetadata
id: 1658query_id: 1230name: maxQueryTimevalue: 0
QueryMetadata
id: 1657query_id: 1230name: structureSearchIdvalue: 502
QueryParam
id: 1332query_id: 1230name: structureFilter.target value: Marvin 05050510202D ... [mol]
Example of how a persistent query definition may encapsulate a structure search
structure search parameters are captured - so same search can be repeated in a separate session
unique ID of structure search results - used to retrieve and page through results after structure search is executed
Structure Search Navigation
browser (client-side)
webapp (server-side)
UI Controller - params validatorvalidate parameters
persist query state
display structure search UI
UI Controller - query executordo structure search
forward to displayer
ChemAxon Marvin Sketcher applet
UI Controller - results displayer
query for structure search results
display
page through results
Simple Java code
Web Client features
• Localization
• Thin client no client licensing (browser based, .pdf)
no workstation maintenance required
deployment efficiency
applet integration (Marvin)
• User Profiles shared result pages (via URL)
persistent customization
• Mature, Open Source-centric tools
Compound Search – Italian localization
Marvin Sketcher Applet
Compound Profile – Italian localization
UI Examples – HTS Browser
• Query Page• Hyperlink Documentation• Result Pages
UI Examples – HTS Browser Cont.
• Pagination Control • Hyperlink to Compound Profile• Branch to SSS or Similarly Search
Web Services
• Image processing
• Warehouse sourced graphical objects JChem rendered structures
Chromatograms
Dose response graphs
Statistical Plots
Image Services
...IC50 GraphStructure Image
Image Services Webapp
...molSource = compound.getStructure().getMolSource();StructImageWriter imageWriter = new StructImageWriter();imageWriter.writeImageFromMolSource( molSource,response.getOutputStream());...
Oracle Database
Data Access Layer
URL with unique compound ID:
http:// ... /image-services/StructImage.png?queryMethod=ctNumber&ctNumber=123 ...
Structure Image rendered server-side from data
Image Services in UI
Report Design (DAO and web service based)• Design time: integrated, feature-rich, open source
Report Example
Conclusions
• Successfully implemented ChemAxon tools: JChem structure Import API
JChem structure search API
Marvin Sketcher for structure search input
Structure rendering API for compound image services
Marvin viewer for interactive compound display
• Deployed Jasper Reports for advanced reporting
• Successfully deployed web applications to Bresso, Italy over wide area network, with language localization.
Future Directions
• Unified Warehouse Browser in Development More query fields and features
Column Selection from full breadth of warehouse data
Inclusion of complex biological data types
• Oracle Data Cartridge implementation Increased performance
More sophisticated and automated structural searching
• JChem structure warehousing from multiple sites
• Replacement of legacy compound registration system
Acknowledgements
• ChemAxon Technical Support
• CTI Research Scientists
• Ray Luiggi – VP Global Information Technology
• Stewart Chipman – VP Research Programs
• Ambrogio Oliva – CTI Europe - Italian Localization
• Jed Malitz – Oracle DBA
• Jason Shrack – Linux Administration
• Open Source contributors