chemaxon's java components in a heterogeneous, server-centric application environment chemaxon...
Post on 26-Mar-2015
215 Views
Preview:
TRANSCRIPT
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: atulinsk@CELLTHERAPEUTICS.LOCALdao_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
top related