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

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: harva

Post on 04-Feb-2016

30 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment

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

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

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

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

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

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

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

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

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

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

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

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

Simple Java code

Page 14: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment

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

Compound Search – Italian localization

Page 16: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment

Marvin Sketcher Applet

Page 17: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment

Compound Profile – Italian localization

Page 18: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment

UI Examples – HTS Browser

• Query Page• Hyperlink Documentation• Result Pages

Page 19: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment

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

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

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

Image Services in UI

Page 23: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment

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

Report Example

Page 25: ChemAxon's Java Components in a Heterogeneous, Server-Centric Application Environment

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

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

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