New developments on the cheminformatics open workflow environment CDK-Taverna
© Truszkowski et al; licensee Chemistry Central Ltd. 2011
Received: 17 August 2011
Accepted: 13 December 2011
Published: 13 December 2011
Skip to main content
© Truszkowski et al; licensee Chemistry Central Ltd. 2011
Received: 17 August 2011
Accepted: 13 December 2011
Published: 13 December 2011
The computational processing and analysis of small molecules is at heart of cheminformatics and structural bioinformatics and their application in e.g. metabolomics or drug discovery. Pipelining or workflow tools allow for the Lego™-like, graphical assembly of I/O modules and algorithms into a complex workflow which can be easily deployed, modified and tested without the hassle of implementing it into a monolithic application. The CDK-Taverna project aims at building a free open-source cheminformatics pipelining solution through combination of different open-source projects such as Taverna, the Chemistry Development Kit (CDK) or the Waikato Environment for Knowledge Analysis (WEKA). A first integrated version 1.0 of CDK-Taverna was recently released to the public.
The CDK-Taverna project was migrated to the most up-to-date versions of its foundational software libraries with a complete re-engineering of its worker's architecture (version 2.0). 64-bit computing and multi-core usage by paralleled threads are now supported to allow for fast in-memory processing and analysis of large sets of molecules. Earlier deficiencies like workarounds for iterative data reading are removed. The combinatorial chemistry related reaction enumeration features are considerably enhanced. Additional functionality for calculating a natural product likeness score for small molecules is implemented to identify possible drug candidates. Finally the data analysis capabilities are extended with new workers that provide access to the open-source WEKA library for clustering and machine learning as well as training and test set partitioning. The new features are outlined with usage scenarios.
CDK-Taverna 2.0 as an open-source cheminformatics workflow solution matured to become a freely available and increasingly powerful tool for the biosciences. The combination of the new CDK-Taverna worker family with the already available workflows developed by a lively Taverna community and published on myexperiment.org enables molecular scientists to quickly calculate, process and analyse molecular data as typically found in e.g. today's systems biology scenarios.
Current problems in the biosciences typically involve several domains of research. They require a scientist to work with different and diverse sets of data. The reconstruction of a metabolic network from sequencing data, for example, employs many of the data types found along the axis of the central dogma, including reconstruction of genome sequences, gene prediction, determination of encoded protein families, and from there to the substrates of enzymes, which then form the metabolic network. In order to work with such a processing pipeline, a scientist has to copy/paste and often transform the data between several bioinformatics web portals by hand. The manual approach involves repetitive tasks and cannot be considered effective or scalable.
Especially the processing and analysis of small molecules comprises tasks like filtering, transformation, curation or migration of chemical data, information retrieval with substructures, reactions, or pharmacophores as well as the analysis of molecular data with statistics, clustering or machine learning to support chemical diversity requirements or to generate quantitative structure activity/property relationships (QSAR/QSPR models). These processing and analysis procedures itself are of increasing importance for research areas like metabolomics or drug discovery. The power and flexibility of the corresponding computational tools become essential success factors for the whole research process.
The workflow paradigm addresses the above issues with the supply of sets of elementary workers (activities) that can be flexibly assembled in a graphical manner to allow complex procedures to be performed in an effective manner - without the need of specific code development or software programming skills. Scientific workflows allow the combination of a wide spectrum of algorithms and resources in a single workspace [1–3]. Earlier problems with iterations over large data sets  are completely resolved in version 2.0 due to new implementations in Taverna. Taverna 2 allows control structures such as "while" loops or "if-then-else" constructs. Termination criteria for loops may now be evaluated by listening to a state port . In addition the user interface of the Taverna 2 workbench has clearly improved: The design and manipulation of workflows in a graphical workflow editor is now supported. Features like copy/paste and undo/redo simplify workflow creation and maintenance .
The CDK-Taverna project aims at building a free open-source cheminformatics pipelining solution through combination of different open-source projects such as Taverna , the Chemistry Development Kit (CDK) [8, 9], or the Waikato Environment for Knowledge Analysis (WEKA) . A first integrated version 1.0 of CDK-Taverna was recently released to the public . To extend usability and power of CDK-Taverna for different molecular research purposes the development of version 2.0 was motivated.
The CDK-Taverna 2.0 plug-in makes use of the Taverna plug-in manager for its installation. The manager fetches all necessary information about the plug-in from a XML file which is located at http://www.ts-concepts.de/cdk-taverna2/plugin/. The information provided therein contains the name of the plug-in, its version, the repository location and the required Taverna version. Upon submitting the URL to the plug-in manager it downloads all necessary dependencies automatically from the web. After a subsequent restart the plug-in is enabled and the workers are visible in the services. The plug-in uses Taverna version 2.2.1 , CDK version 1.3.8  and WEKA version 3.6.4 . Like its predecessor it uses the Maven 2 build system  as well as the Taverna workbench for automated dependency management.
The CDK-Taverna 2.0 plug-in is designed to be easily extendible: The implementation allows to create new workers by simply inheriting from the single abstract class org.openscience.cdk.applications.taverna. AbstractCDKActivity (which is the analogue of the CDKLocalWorker interface of CDK-Taverna version 1.0). The class is located in the cdk-taverna-2-activity module. It provides all necessary data for the underlying worker registration mechanism which frees the software developer from handling these tasks manually. The methods which need to be overwritten in order to implement a worker are:
public void addInputPorts(), public void addOutputPorts(): Specify the ports for passing data between workers.
public String getActivityName(), public String getFolderName(): Return name and folder of a worker.
public void work(): Entry point for the worker's central algorithm that performs its core function.
public String getDescription(): Provides descriptive text that explains a worker's function.
public HashMap <String, Object> getAdditionalProperties(): Specifies additional properties like file extensions, the number of concurrent threads to use, etc.
Finally a new worker has to be registered to be available in the Taverna workbench. For this purpose Taverna offers the class net.sf.taverna.t2.spi. SPIRegistry.SPIRegistry to register Service Provider Interfaces (SPI). It is necessary to add the new worker's full name including its package declaration to the file org.openscience.cdk.applications.taverna.AbstractCDKActivity which contains the names and packages of all available workers. This file is located at cdk-taverna-2-activity-ui/src/main/resources/META-INF/services.
Besides the basic implementation it is possible to define a configuration panel for a worker which allows the specification of parameters. A configuration panel has to inherit from the abstract class org.openscience.cdk.applications.taverna. ActivityConfigurationPanel. The GUI element itself has to be defined in the constructor of the class and may contain any Java Swing element. The following methods are the backbone of a configuration panel:
public boolean checkValues(): Validates all GUI values.
public boolean isConfigurationChanged(): After the validity check this method is used to compare the current worker settings with the GUI settings to detect changes.
public void noteConfiguration(): The properties of the worker are saved in a bean structure. The changes of the configuration bean object are updated by this method.
public void refreshConfiguration(): Updates the GUI values itself.
public CDKActivityConfigurationBean getConfiguration(): Access to the configuration bean.
The configuration panel has to be registered in the CDKConfigurationPanelFactory class of the org.openscience.cdk.applications.taverna.ui.view package. More details on how to write workers and their configuration panels are provided at the project's wiki page http://cdk-taverna-2.ts-concepts.de/wiki/index.php?title=Main_Page.
CDK-Taverna 2.0 supports 64-bit computing by use with a Java 64-bit virtual machine. The CDK-Taverna 2.0 plug-in is written in Java and requires Java 6 or higher. The latest Java version is available at http://www.java.com/de/download/. The CDK-Taverna 2.0 plug-in is developed and tested on Microsoft Windows 7 as well as Linux and Mac OS/X (32 and 64-bit).
CDK-Taverna 2.0 workers
Iterative File I/O
Molecular descriptor calculation
AtomCount, LargestChain, WienerIndex
kMeans, Perceptron, SVM
Overview on multi-threading CDK-Taverna 2
Calculation of molecular descriptors
QSAR Descriptor Threaded
Significance of input components evaluation using a genetic algorithm
GA Attribute Selection
Significance of input components evaluation using a 'Leave-One-Out' strategy
Leave-One-Out Attribute Selection
Partitioning datasets into training and test sets
Split Dataset Into Train-/Testset
Construction of clustering models
Construction of regression models
Construction of classification models
CDK-Taverna 1.0 was confined to 32-bit Java virtual machine and thus was restricted to in-memory processing of data volumes of at most 2 gigabyte in practice. Version 2.0 also supports 64-bit computing by use of a 64-bit Java virtual machine so that the processable data volume is only limited by hardware constraints (memory, speed): 64-bit in-memory workflows were successfully performed with data sets of about 1 million small molecules. Since the memory restrictions of version 1.0 were a main reason to use Pgchem::tigress as a molecular database backend  the corresponding version 1.0 workers were not migrated to the current version 2.0 yet.
In recent years, computer assisted drug design studies use natural product (NP) likeness as a criterion to screen compound libraries for potential drug candidates [14, 15]. The reason to estimate NP likeness during candidate screening is to facilitate the selection of those compounds that mimic structural features that are naturally evolved to best interact with biological targets.
Unsupervised clustering tries to partition input data into a number of groups smaller than the number of data whereas supervised machine learning tries to construct model functions that map the input data onto their corresponding output data. If the output codes continuous quantities a regression task is defined. Alternatively the output may code classes so that a classification task is addressed. Molecular data sets for clustering consist of input vectors where each vector represents a molecular entity and consists of a set of molecular descriptors itself. Molecular data sets for machine learning add to each input vector a corresponding output vector with features to be learned - thus they consist of I/O pairs of input and output vectors.
The clustering and machine learning workers of CDK-Taverna 2.0 allow the use of distinct WEKA functionality. As far as clustering is concerned the ART-2a worker of version 1.0 is supplemented with five additional WEKA-based workers which offer
Expectation Maximisation (EM): Expectation maximisation algorithm for iterative maximum likelihood estimation of cluster memberships .
Farthest First: Heuristic 2-approximation algorithm for solving the k-center problem .
Hierarchical Clusterer: Hierarchical clustering methods: The distance function and the linkage type are freely selectable .
Simple KMeans: Simple k-means clustering algorithm .
XMeans: Extended k-means clustering with an efficient estimation of the number of clusters .
Machine learning workers support the significance analysis of single components (i.e. features) of an input vector to obtain smaller inputs with a reduced set of components/features, the partitioning of machine learning data into training and test sets, the construction of input/output mapping model functions and model based predictions as well as result visualization. There is a total of six WEKA-based machine learning methods available: Two workers allow regression as well as classification procedures...
Three-Layer Perceptron-Type Neural Networks: Neural network implementation using the backpropagation algorithm for weight optimisation .
Support Vector Machines: Support Vector Machine implementation using the LibSVM library .
... two workers do only support regression...
Multiple Linear Regression: Multiple linear regression algorithm.
... and two workers are restricted to classification tasks:
Naive Bayes: Bayesian classifier for the estimation of continuous variables .
J46 C4.5 decision tree: Decision tree implementation based on the C4.5 classification algorithm .
For training and test set partitioning the Split Dataset Into Train-/Testset worker is available which offers three strategies :
Random: Data are split randomly into a training and test set of defined sizes.
Cluster Representatives: First the input data of the I/O pairs are clustered with the number of clusters to be equal to the number of training data by application of the Simple KMeans algorithm. Then a single input point of each cluster is chosen randomly as a representative and the corresponding I/O pair is inserted into the training set. The remaining I/O pairs are transferred to the test set.
Single Global Max: Cluster representatives are evaluated in a first step. These representatives are then re ned by an iterative procedure that exchanges data between training and test set that belong to the same cluster. The latter constraint assures that the input data of training and test set have a similar spatial diversity. A single iteration determines the test set I/O pair with the largest deviation between data and model. This I/O pair is then transferred to the training set while the best predicted I/O pair of the same cluster in the training set is transferred to the test set in exchange. Oscillations during the refinement steps may be suppressed by blacklisting exchanged I/O pairs.
Based on the free MediaWiki framework a Wiki was developed for the CDK-Taverna 2.0 project . The web page provides general information about the project, documentation about available workers/workflows and on how to create them as well as about installation procedures. The Wiki can be found at http://cdk-taverna-2.ts-concepts.de/wiki/index.php?title=Main_Page.
CDK-Taverna 2.0 provides an enhanced and matured free open cheminformatics workflow solution for the biosciences. It was successfully applied and tested in academic and industrial environments with data volumes of hundreds of thousands of small molecules. Combined with available workers and workflows from bioinformatics, image analysis or statistics CDK-Taverna supports the construction of complex systems biology oriented workflows for processing diverse sets of biological data.
The authors express their gratitude to the teams and communities of Taverna, CDK and WEKA for creating and developing these open tools.
This article is published under license to BioMed Central Ltd. This is an Open Access article distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/2.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.