chemaxon's java components in a heterogeneous, server-centric application environment chemaxon...

27
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

Upload: kaitlyn-cooper

Post on 26-Mar-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment ChemAxon 2005 User Group Meeting May 19th and 20th, Budapest, Hungary

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

Page 2: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment ChemAxon 2005 User Group Meeting May 19th and 20th, Budapest, Hungary

Topics

• CTI Background

• Tactical Approach

• Infrastructure Overview

• Component Architecture, Features, and Demonstrations

• Reporting

• Conclusions and Future Directions

Page 3: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment ChemAxon 2005 User Group Meeting May 19th and 20th, Budapest, Hungary

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

Page 4: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment ChemAxon 2005 User Group Meeting May 19th and 20th, Budapest, Hungary

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

Page 5: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment ChemAxon 2005 User Group Meeting May 19th and 20th, Budapest, Hungary

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

Page 6: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment ChemAxon 2005 User Group Meeting May 19th and 20th, Budapest, Hungary

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

Page 7: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment ChemAxon 2005 User Group Meeting May 19th and 20th, Budapest, Hungary

JChem Import

AutomatedReplication

ISIS/Host Db JChem Db

SDF

Legacy Registration System

Page 8: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment ChemAxon 2005 User Group Meeting May 19th and 20th, Budapest, Hungary

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

Page 9: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment ChemAxon 2005 User Group Meeting May 19th and 20th, Budapest, Hungary

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

Page 10: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment ChemAxon 2005 User Group Meeting May 19th and 20th, Budapest, Hungary

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

Page 11: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment ChemAxon 2005 User Group Meeting May 19th and 20th, Budapest, Hungary

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

Page 12: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment ChemAxon 2005 User Group Meeting May 19th and 20th, Budapest, Hungary

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

Page 13: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment ChemAxon 2005 User Group Meeting May 19th and 20th, Budapest, Hungary

Simple Java code

Page 14: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment ChemAxon 2005 User Group Meeting May 19th and 20th, Budapest, Hungary

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

Page 15: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment ChemAxon 2005 User Group Meeting May 19th and 20th, Budapest, Hungary

Compound Search – Italian localization

Page 16: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment ChemAxon 2005 User Group Meeting May 19th and 20th, Budapest, Hungary

Marvin Sketcher Applet

Page 17: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment ChemAxon 2005 User Group Meeting May 19th and 20th, Budapest, Hungary

Compound Profile – Italian localization

Page 18: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment ChemAxon 2005 User Group Meeting May 19th and 20th, Budapest, Hungary

UI Examples – HTS Browser

• Query Page• Hyperlink Documentation• Result Pages

Page 19: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment ChemAxon 2005 User Group Meeting May 19th and 20th, Budapest, Hungary

UI Examples – HTS Browser Cont.

• Pagination Control • Hyperlink to Compound Profile• Branch to SSS or Similarly Search

Page 20: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment ChemAxon 2005 User Group Meeting May 19th and 20th, Budapest, Hungary

Web Services

• Image processing

• Warehouse sourced graphical objects JChem rendered structures

Chromatograms

Dose response graphs

Statistical Plots

Page 21: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment ChemAxon 2005 User Group Meeting May 19th and 20th, Budapest, Hungary

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

Page 22: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment ChemAxon 2005 User Group Meeting May 19th and 20th, Budapest, Hungary

Image Services in UI

Page 23: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment ChemAxon 2005 User Group Meeting May 19th and 20th, Budapest, Hungary

Report Design (DAO and web service based)• Design time: integrated, feature-rich, open source

Page 24: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment ChemAxon 2005 User Group Meeting May 19th and 20th, Budapest, Hungary

Report Example

Page 25: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment ChemAxon 2005 User Group Meeting May 19th and 20th, Budapest, Hungary

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.

Page 26: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment ChemAxon 2005 User Group Meeting May 19th and 20th, Budapest, Hungary

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

Page 27: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment ChemAxon 2005 User Group Meeting May 19th and 20th, Budapest, Hungary

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