Building a Chemical Informatics Grid Marlon Pierce Community Grids Laboratory Indiana University Acknowledgments CICC researchers and developers who contributed to this presentation: Prof.
Download ReportTranscript Building a Chemical Informatics Grid Marlon Pierce Community Grids Laboratory Indiana University Acknowledgments CICC researchers and developers who contributed to this presentation: Prof.
Building a Chemical Informatics Grid
Marlon Pierce Community Grids Laboratory Indiana University
Acknowledgments
CICC researchers and developers who contributed to this presentation: Prof. Geoffrey Fox, Prof. David Wild, Prof. Mookie Baik, Prof. Gary Wiggins, Dr. Jungkee Kim, Dr. Rajarshi Guha, Sima Patel, Smitha Ajay, Xiao Dong Thanks also to Prof. Peter Murray Rust and the WWMM group at Cambridge University More info: www.chembiogrid.org
www.chembiogrid.org/wiki.
and
Chemical Informatics and the Grid
An overview of the basic problem and solution
Chemical Informatics as a Grid Application
Chemical Informatics is the application of information technology to problems in chemistry.
Example problems: managing data in large scale drug discovery and molecular modeling Building Blocks: Chemical Informatics Resources: Chemical databases maintained by various groups NIH PubChem, NIH DTP Application codes (both commercial and open source) Data mining, clustering Quantum chemistry and molecular modeling Visualization tools Web resources: journal articles, etc.
A Chemical Informatics Grid will need to integrate these into a common, loosely coupled, distributed computing environment.
Problem: Connecting It Together
The problem is defining an architecture for tying all of these pieces into a distributed computing system.
A “Grid” How can I combine application codes, web resources, and databases to solve a particular problem that interests me?
Specifically, how do I build a runtime environment that can connect the distributed services I need to solve an interesting problem?
For academic and government researchers, how can I do all of this in an open fashion?
Data and services can come from anywhere That is, I must avoid proprietary infrastructure.
NIH Roadmap for Medical Research http://nihroadmap.nih.gov/
The NIH recognizes chemical and biological information management as critical to medical research.
Federally funded high throughput screening centers.
100-200 HTS assays per year on small molecules.
100,000’s of small molecules analyzed Data published, publicly available through NIH PubChem online database.
What do you do with all of this data?
High-Throughput Screening
Testing perhaps millions of compounds in a corporate collection to see if any show activity against a certain disease protein
High-Throughput Screening
Traditionally, small numbers of compounds were tested for a particular project or therapeutic area About 10 years ago, technology developed that enabled large numbers of compounds to be assayed quickly High-throughput screening can now test 100,000 compounds a day for activity against a protein target Maybe tens of thousands of these compounds will show some activity for the protein The chemist needs to intelligently select the 2 - 3 classes of compounds that show the most promise for being drugs to follow-up
Informatics Implications
Need to be able to store chemical structure and biological data for millions of data points
Computational representation of 2D structure
Need to be able to organize thousands of active compounds into meaningful groups
Group similar structures together and relate to activity
Need to learn as much information as possible (data mining)
Apply statistical methods to the structures and related information
Need to use molecular modeling to gain direct chemical insight into reactions.
The Solution, Part I: Web Services
Web Services provide the means for wrapping databases, applications, web scavengers, etc, with programming interfaces.
WSDL definitions define how to write clients to talk with databases, applications, etc.
Web Service messaging through SOAP Discovery services such as UDDI, MDS, and so on.
Many toolkits available Axis, .NET, gSOAP, SOAP::Lite, etc.
Web Services can be combined with each other into workflows Workflow==use case scenario More about this later.
Basic Architectures: Servlets/CGI and Web Services
Browser HTTP GET/POST Web Server JDBC DB Browser Web Server WSDL SOAP Web Server JDBC GUI Client WSDL SOAP DB
Solution Part II: Grid Resources
Many Grid tools provide powerful backend services Globus: uniform, secure access to computing resources (like TeraGrid) File management, resource allocation management, etc.
Condor: job scheduling on computer clusters and collections SRB: data grid access OGSA-DAI: uniform Grid interface to databases.
These have Web Service as well as other interfaces (or equivalently, protocols).
Solution, Part III: Domain Specific Tools and Standards -->More Services
For Chemical Informatics, we have a number of tools and standards.
Chemical string representations SMILES, InChI Chemistry Markup Language XML language for describing, exchanging data.
JUMBO 5: a CML parser and library Glue Tools and Applications Chemistry Development Kit (CDK) OpenBabel These are the basis for building interoperable Chemical Informatics Web Services Analogous situations exist for other domains Astronomy, Geosciences, Biology/Bioinformatics
Solution Part IV: Workflows
Workflow engines allow you to connect services together into interesting composite applications.
This allows you to directly encode your scientific use case scenario as a graph of interacting services.
There are many workflow tools We’ll briefly cover these later.
General guidance is to build web services first and then use workflow tools on top of these services.
Don’t get married to a particular workflow technology yet, unless someone pays you.
Solution Part V: User Interfaces
Web Services allow you to cleanly separate user interfaces from backend services.
Model-view-controller pattern for web applications Client environments include Grid and web service scripting environments Desktop tools like Taverna and Kepler Portlet-based Web portal systems Typically, desktop tools like Taverna are used by power users to define interesting workflows.
Portals are for running canned workflows.
Next steps
Next we will review the online data base resources that are available to us.
Databases come in two varieties Journal databases Data databases As we will discuss, it is useful to build services and workflows for automatically interacting with both types.
Online Chemical Journal and Data Resources
MEDLINE: Online Journal Database
MEDLINE
System Online) is an international literature database (Medical Literature Analysis and Retrieval of life sciences and biomedical information. It covers the fields of medicine , nursing , dentistry , veterinary medicine , and health care. MEDLINE covers much of the literature in biology and biochemistry , and fields with no direct medical connection, such as molecular evolution . It is accessed via PubMed.
http://en.wikipedia.org/wiki/Medline
PubMed: Journal Search Engine
PubMed is a free search engine offered by the United States National Library of Medicine as part of the Entrez information retrieval system. The PubMed service allows searching the MEDLINE database. MEDLINE covers over 4,800 journals published in the United States and more than 70 other countries primarily from 1966 to the present. In addition to MEDLINE, PubMed also offers access to: OLDMEDLINE for pre-1966 citations. Citations to articles that are out-of-scope (e.g., general science and chemistry) from certain MEDLINE journals In-process citations which provide a record for an article before it is indexed with MeSH and added to MEDLINE Citations that precede the date that a journal was selected for MEDLINE indexing Some life science journals http://www.ncbi.nlm.nih.gov/entrez/query/static/overview.html
PubChem: Chemical Database
PubChem
is a database of chemical molecules . The system is maintained by the National Center for Biotechnology Information (NCBI) which belongs to the United States National Institutes of Health (NIH). PubChem can be accessed for free through a web user interface . And Web Services for programmatic access PubChem contains mostly small molecules with a molecular mass below 500. Anyone can contribute The database is free to use, but it is not curated, so value of a specific compound information could be questionable.
NIH funded HTS results are (intended to be) available through pubchem.
http://pubchem.ncbi.nlm.nih.gov/
NIH DTP Database
Part of NIH’s Developmental Therapeutics Program.
Screens up to 3,000 compounds per year for potential anticancer activity. Utilizes 59 different human tumor cell lines, representing leukemia, melanoma and cancers of the lung, colon, brain, ovary, breast, prostate, and kidney. DTP screening results are part of PubChem and also available as a separate database.
http://dtp.nci.nih.gov/
Example screening results. Positive results (red bar to right of vertical line) indicates greater than average toxicity of cell line to tested agent.
http://dtp.nci.nih.gov/docs/compare/compare.html
DTP and COMPARE
COMPARE is an algorithm for mining DTP result data to find and rank order compounds with similar DTP screening results.
Why COMPARE?
Discovered compounds may be less toxic to humans but just as effective against cancer cell lines.
May be much easier/safer to manufacture.
May be a guide to deeper understanding of experiments http://dtp.nci.nih.gov/docs/compare/compare_methodology.html
Many Other Online Databases
Complementary protein information Indiana University: Varuna project Discussed in this presentation University of Michigan: Binding MOAD “Mother of All Databases” Largest curated database of protein-ligand complexes Subset of protein databank Prof. Heather Carlson University of Michigan: PDBBind Provides a collection of experimentally measured binding affinity data (
Kd
,
Ki
, and
IC50
) exclusively for the protein ligand complexes available in the Protein Data Bank ( PDB ) Dr. Shaomeng Wang
The Point Is…
All of these databases can be accessed on line with human-usable interfaces.
But that’s not so important for our purposes More importantly, many of them are beginning to define Web Service interfaces that let other programs interact with them.
Plenty of tools and libraries can simulate browsers, so you can also build your own service.
This allows us to remotely analyze databases with clustering and other applications without modifying the databases themselves.
Can be combined with text mining tools and web robots to find out who else is working in the area.
Encoding chemistry
Chemical Machine Languages
Interestingly, chemistry has defined three simple languages for encoding chemical information.
InChI, SMILES, CML Can generate these by hand or automatically InChIs and SMILES can represent molecules as a single string/character array.
Useful as keys for databases and for search queries in Google.
You can convert between SMILES and InChIs OpenBabel, OELib, JOELib CML is an XML format, and more verbose, but benefits from XML community tools
SMILES: Simplified Molecular Input Line Entry Specification
Language for describing the structure of chemical molecules using ASCII strings.
http://www.daylight.com/dayhtml/doc/theory/theory.smiles.html
InChI
:
International Chemical Identifier
IUPAC and NIST Standard similar to SMILES Encodes structural information about compounds Based on open an standard and algorithms.
http://wwmm.ch.cam.ac.uk/inchifaq/
InChI in Public Chemistry Databases
US National Institute of Standards and Technology (NIST) - 150,000 structures NIH/NCBI/PubChem project - >3.2 million structures Thomson ISI - 2+ million structures US National Cancer Institute(NCI) Database - 23+ million structures US Environmental Protection Agency(EPA)-DSSToX Database - 1450 structures Kyoto Encyclopaedia of Genes and Genomes (KEGG) database - 9584 structures University of California at San Francisco ZINC - >3.3 million structures BRENDA enzyme information system (University of Cologne) - 36,000 structures Chemical Entities of Biological Interest (ChEBI) database of the European Bioinformatics Institute - 5000 structures University of California Carcinogenic Potency Project - 1447 structures Compendium of Pesticide Common Names - 1437 (2005-03-03) structures
Journals and Software Using InChI
Journals Nature Chemical Biology.
Beilstein Journal of Organic Chemistry Software ACD/Labs ACD/ChemSketch.
ChemAxon Marvin.
SciTegic Pipeline Pilot.
CACTVS Chemoinformatics Toolkit by Xemistry, GmbH.
http://wwmm.ch.cam.ac.uk/inchifaq/
Chemistry Markup Language
CML is an XML markup language for encoding chemical information.
Developed by Peter Murray Rust, Henry Rzepa and others.
Actually dates from the SGML days before XML More verbose than InChI and SMILES But inherits XML schema, namespaces, parsers, XPATH, language binding tools like XML Beans, etc.
Not limited to structural information Has OpenBabel support.
http://cml.sourceforge.net/ , http://cml.sourceforge.net/wiki/index.php/Main_Page
InChI Compared to SMILES
SMILES is proprietary and different algorithms can give different results.
Seven different unique SMILES for caffeine on Web sites: [c]1([n+]([CH3])[c]([c]2([c]([n+]1[CH3])[n] [cH][n+]2[CH3]))[O-])[O-] CN1C(=O)N(C)C(=O)C(N(C)C=N2)=C1 2 Cn1cnc2n(C)c(=O)n(C)c(=O)c12 Cn1cnc2c1c(=O)n(C)c(=O)n2C N1(C)C(=O)N(C)C2=C(C1=O)N(C)C=N 2 O=C1C2=C(N=CN2C)N(C(=O)N1C)C CN1C=NC2=C1C(=O)N(C)C(=O)N2C On the other hand, some claim SMILES are more intuitive for human readers.
http://wwmm.ch.cam.ac.uk/inchifaq/
A CML Example
http://www.medicalcomputing.net/xml_biosciences.html
Clustering Techniques, Computing Requirements, and Clustering Services
Computational techniques for organizing data
The Story So Far
We’ve discussed managing screening assay output as the key problem we face Must sift through mountains of data in PubChem and DTP to find interesting compounds.
NIH funded High Throughput Screening will make this very important in the near future.
Need now a way to organize and analyze the data.
Clustering and Data Analysis
Clustering is a technique that can be applied to large data sets to find similarities Popular technique in chemical informatics Data sets are segmented into groups (clusters) in which members of the same cluster are similar to each other.
Clustering is distinct from classification, There are no pre-determined characteristics used to define the membership of a cluster, Although items in the same cluster are likely to have many characteristics in common. Clustering can be applied to chemical structures, for example, in the screening of combinatorial or Markush compound libraries in the quest for new active pharmaceuticals. We also note that these techniques are fairly primitive More interesting clustering techniques exist but apparently are not well known by the chemical informatics community.
Non-Hierarchical Clustering
Clusters form around centroids.
The number of which can be specified by the user.
All clusters rank equally and there is no particular relationship between them. http://www.digitalchemistry.co.uk/prod_clustering.html
Hierarchical Clustering
Clusters are arranged in hierarchies Smaller clusters are contained within larger ones; the bottom of the hierarchy consists of individual objects in "singleton" clusters, while the top of it consists of one cluster containing all the objects in the dataset. Such hierarchies can be built either from the bottom up (agglomerative) or the top downwards (divisive) http://www.digitalchemistry.co.uk/prod_clustering.html
Fingerprinting and Dictionaries--What Is Your Parameter Space?
Clustering algorithms require a parameter space Clusters defined along coordinate axes.
Coordinate axes defined by a dictionary of chemical structures.
Use binary on/off for fingerprinting a particular compound against a dictionary.
http://www.digitalchemistry.co.uk/prod_fingerprint.html
Cluster Analysis and Chemical Informatics
Used for organizing datasets into chemical series, to build predictive models, or to select representative compounds Clustering Methods Jarvis-Patrick and variants O(N2), single partition Ward’s method Hierarchical, regarded as best, but at least O(N2) K-means < O(N2), requires set no of clusters, a little “messy” Sphere-exclusion (Butina) Fast, simple, similar to JP Kohonen network Clusters arranged in 2D grid, ideal for visualization
Limitations of Ward’s method for large datasets (>1m)
Best algorithms have O(
N 2
) time requirement (RNN) Requires random access to fingerprints hence substantial memory requirements (O(
N
)) Problem of selection of best partition can select desired number of clusters Easily hit 4GB memory addressing limit on 32 bit machines Approximately 2m compounds
Scaling up clustering methods
Parallelization Clustering algorithms can be adapted for multiple processors Some algorithms more appropriate than others for particular architectures Ward’s has been parallelized for shared memory machines, but overhead considerable New methods and algorithms Divisive (“bisecting”) K-means method Hierarchical Divisive Approx. O(NlogN)
Divisive K-means Clustering
New hierarchical divisive method Hierarchy built from top down, instead of bottom up Divide complete dataset into two clusters Continue dividing until all items are singletons Each binary division done using K-means method Originally proposed for document clustering “Bisecting K-means” Steinbach, Karypis and Kumar (Univ. Minnesota) http://www users.cs.umn.edu/~karypis/publications/Papers/PDF/docclu ster.pdf
Found to be more effective than agglomerative methods Forms more uniformly-sized clusters at given level
BCI Divkmeans
Several options for detailed operation Selection of next cluster for division size, variance, diameter affects selection of partitions from hierarchy, not shape of hierarchy Options within each K-means division step distance measure choice of seeds batch-mode or continuous update of centroids termination criterion Have developed parallel version for Linux clusters / grids in conjunction with BCI For more information, see Barnard and Engels talks at: http://cisrg.shef.ac.uk/shef2004/conference.htm
Comparative execution times
NCI subsets, 2.2 GHz Intel Celeron processor 30000 25000 20000
Wards K-means Divisive K-means Parallel Divisive Kmeans (4-node)
15000 10000 5000 0 0 20000 40000 60000 80000 Number of Structures in Clustered Set 100000
7h 27m 3h 06m 2h 25m
120000
44m
Divisive K-means: Conclusions
Much faster than Ward’s, speed comparable to K-means, suitable for very large datasets (millions) Time requirements approximately O(
N
log
N
) Current implementation can cluster 1m compounds in under a week on a low-power desktop PC Cluster 1m compounds in a few hours with a 4-node parallel Linux cluster Better balance of cluster sizes than Wards or Kmeans Visual inspection of clusters suggests better assembly of compound series than other methods Better clustering of actives together than previously studied methods Memory requirements minimal Experiments using AVIDD cluster and Teragrid forthcoming (50+ nodes)
Conclusions
Effective exploitation of large volumes and diverse sources of chemical information is a critical problem to solve, with a potential huge impact on the drug discovery process Most information needs of chemists and drug discovery scientists are conceptually straightforward, but complex to implement All of the technology is now in place to implement may of these information need “use-cases”: the four level model using service-oriented architectures together with smart clients look like a neat way of doing this In conjunction with grid computing, rapid and effective organization and visualization of large chemical datasets is feasible in a web service environment Some pieces are missing: Chemical structure search of journals (wait for InChI) Automated patent searching Effective dataset organization Effective interfaces, especially visualization of large numbers of 2D structures
Divisive K-Means as a Web Service
The previous exercise was intended to show that Divisive K-Means is a classic example of Grid application.
Needs to be parallelized Should run on TeraGrid How do you make this into a service?
We’ll go on a small tour before getting back to our problem.
Wrapping Science Applications as Services
Science Grid services typically must wrap legacy applications written in C or Fortran.
You must handle such problems as Specifying several input and output files These may need to be staged in Launching executables and monitoring their progress.
Specifying environment variables Often these have also shell scripts to do some miscellaneous tasks.
How do you convert this to WSDL? Or (equivalently) how do you automatically generate the XML job description for WS-GRAM?
Generic Service Toolkit (GFAC)
(G. Kandaswamy, IU and RENCI) The Generic Service Toolkit can "wrap" any command-line application as an application service. Given a set of input parameters, it runs the application, monitors the application and returns the results. Requires no modification to program code.
Also has web user interface generating tools.
When a user accesses an application service, the user is presented with a graphical user interface (GUI) to that service. The GUI contains a list of operations that the user is allowed to invoke on that service. After choosing an operation, the user is presented with a GUI for that operation, which allows the user to specify all the input parameters to that operation. The user can then invoke the operation on the service and get the output results. www.extreme.indiana.edu/gfac/
OPAL
(S. Krishan, SDSC) Features include scheduling (using Globus and Condor/SGE) and security (using GSI-based certificates), and persistent state management.
The WSDL defines operations to do the following: getAppMetadata : includes usage information, arbitrary application-specific metadata specified as an array of other elements, e.g. description of the various options that are passed to the application binary. launchJob : runs job with specified input and returns a Job ID.
queryStatus : returns status code, message, and URL of the working directory getOutputs : returns the outputs from a job that is identified by a Job ID. URLs for the standard output and error Array of structures representing the output file names and URLs getOutputAsBase64ByName : This operation returns the contents of an output file as Base64 binary. destroy : This operation destroys a running job identified by a Job ID. launchJobBlocking : This operation requires the list of arguments as a string, and an array of structures representing the input files. http://grid-devel.sdsc.edu/gridsphere/gridsphere?cid=nbcrws
Our Solution: Apache Ant Services
We’ve found using Apache Ant to be very useful for wrapping services.
Can call executables, set environment variables. Lots of useful built-in shell-like tasks.
Extensible (write your own tasks).
Develop build scripts to run your application You can easily call Ant from other Java programs.
So just write a wrapper service We use both blocking (hold connection until return) and non-blocking version (suitable for long running codes).
In non blocking case, “Context” web service is used for callbacks.
Flow Chart of SMILES to Cluster Partitioned of BCI Web Service
SMILES to DKM
SMILE String Makebits Fingerprint (*.scn) DivKmeans Cluster Hierarchy (*.dkm)
Generating Fingerprints
Dictionary (Default) Optclus best level RNNclus
Generating the best levels Clustering Fingerprints Extracting individual cluster partitions
Extracted Cluster Hierarchy (*.clu) One Column Process New SMILE String Merge Process
BCI Clustering Service Methods
Service Method Description Input Output makebitsGenerate divkmGenerate Generate fingerprints from a SMILES structure Cluster fingerprints with Divkmeans SMIstring Fingerprint string SCNstring Clustered Hierarchy smile2dkm optclusGenerate rnnclusGenerate smile2ClusterPartiti oned Makebits + divkm Generate the best levels in a hierarchy Extract individual cluster partitions Generate a new SMILES structure w/ extra col.
SMIstring DKMstring Best partition DKMstring Indiv. cluster partitions SMIstring Clustered Hierarchy cluster level New SMILES structure
A Library of Chemical Informatics Web Services
All Services Great and Small
Like most Grids, a Chemical Informatics Grid will have the classic styles: Data Grid Services: these provide access to data sources like PubChem, etc.
Execution Grid Services: used for running cluster analysis programs, molecular modeling codes, etc, on TeraGrid and similar places.
But we also need many additional services Handling format conversions (InChI<->SMILES) Shipping and manipulating tabular data Determining toxicity of compounds Generating batch 2D images So one of our core activities is “build lots of services”
VOTables: Handling Tabular Data
Developed by the Virtual Observatory community for encoding astronomy data.
The VOTable format is an XML representation of the tabular data (data coming from BCI, NIH DTP databases, and so on).
VOTables-compatible tools have been built We just inherit them.
SAVOT and JAVOT JAVA Parser APIs for VOTable allow us to easily build VOTable-based applications Web Services Spread sheet Plotting applications.
VOPlot and TopCat are two
Document Structure of VOTable
Compound Name Acemetacin Candesartan Acenocoumarol Dicumarol Phenprocoumon Trioxsalen Warfarin Cluster Number 1 1 2 2 2 2 2