cPath: open source software for collecting, storing, and querying biological pathways
© Cerami et al. 2006
Received: 16 June 2006
Accepted: 13 November 2006
Published: 13 November 2006
Skip to main content
© Cerami et al. 2006
Received: 16 June 2006
Accepted: 13 November 2006
Published: 13 November 2006
Biological pathways, including metabolic pathways, protein interaction networks, signal transduction pathways, and gene regulatory networks, are currently represented in over 220 diverse databases. These data are crucial for the study of specific biological processes, including human diseases. Standard exchange formats for pathway information, such as BioPAX, CellML, SBML and PSI-MI, enable convenient collection of this data for biological research, but mechanisms for common storage and communication are required.
We have developed cPath, an open source database and web application for collecting, storing, and querying biological pathway data. cPath makes it easy to aggregate custom pathway data sets available in standard exchange formats from multiple databases, present pathway data to biologists via a customizable web interface, and export pathway data via a web service to third-party software, such as Cytoscape, for visualization and analysis. cPath is software only, and does not include new pathway information. Key features include: a built-in identifier mapping service for linking identical interactors and linking to external resources; built-in support for PSI-MI and BioPAX standard pathway exchange formats; a web service interface for searching and retrieving pathway data sets; and thorough documentation. The cPath software is freely available under the LGPL open source license for academic and commercial use.
cPath is a robust, scalable, modular, professional-grade software platform for collecting, storing, and querying biological pathways. It can serve as the core data handling component in information systems for pathway visualization, analysis and modeling.
The complete sequencing of the genomes of numerous organisms provides a genetic "parts list" for human and many model organisms [1, 2]. However, a blueprint for how these parts are assembled is required to explain how the system works . This wiring diagram for a cell consists of multiple biological data types, including metabolic pathways, signal transduction pathways, protein-protein interaction networks, gene regulatory networks and genetic interactions. For example, the galactose utilization pathway which allows yeast to harvest energy from galactose sugar consists of a well-studied series of biochemical reactions responsible for converting galactose into glucose-6-phosphate, and a gene regulatory mechanism for switching the pathway on or off . Aberrations within specific pathways have been implicated in many human diseases . For example, the p53 tumor-suppressor pathway has important functions in regulating cell proliferation, and is disrupted in many human cancers .
Having interaction and pathway data available in computable form enables the construction of in silico models of complex biological processes according to specific hypotheses about how the process works. Such hypotheses can then be verified or falsified by experiment and the models further refined . In the longer term, it may be possible to study the complete "integrated circuit" of a cell, and create mathematical models for understanding which perturbations within the circuit give rise to cancer . Computational modeling of pathways may enable the identification and classification of common logic modules within the cell , better enable mechanistic based drug development , facilitate the rational design of combination therapies , and accelerate the speed of clinical trials .
Central to any of these endeavors is the creation and maintenance of interaction and pathway databases. Because of the need to store and organize growing amounts of pathway information and the lack of a common point of organization, the number of interaction databases is growing rapidly, and over 220 exist in the year 2006 [2, 9]. Unfortunately, as is the case with many biological data resources , interaction and pathway databases have unique data models, distinct access methods, different file formats, and subtle semantic differences . This diversity of implementation makes it extremely difficult to collect data from multiple sources, and therefore slows down scientific research involving pathways [11, 12].
To make heterogeneous data sources easier to use, several standard XML exchange formats for sharing interaction and pathway data have been developed. The Systems Biology Markup Language (SBML)  and CellML  represent mathematical models of pathways designed for quantitative simulation of concentration profiles of components over time. The Proteomics Standards Initiative's Molecular Interaction (PSI-MI) format enables exchange of molecular interaction data sets . Finally, the Biological Pathway Exchange (BioPAX) format enables exchange of biological pathways in general .
External databases successfully imported into cPath.
Release Date Tested
Data Format used for cPath Import
Cancer Cell Map
BioPAX, Level 2
Physical Entities: 899
PSI-MI, Level 1
Physical Entities: 19,003
Metabolic and Signaling Pathways
http://ecocyc.org/ Registration required to download data
BioPAX, Level 1
Physical Entities: 3,511
Human Protein Reference Database (HPRD) 
http://hprd.org/ Registration required to download data
PSI-MI, Level 1
Physical Entities: 12,226
PSI-MI, Level 1
Physical Entities: 28,006
BioPAX, Level 2
Human Data Only Pathways: 108
Physical Entities: 2,018
Molecular Interaction Database (MINT) 
PSI-MI, Level 1
Physical Entities: 16,325
Metabolic and Signaling Pathways
BioPAX, Level 2
Human Data Only Pathways: 775
Physical Entities: 3,197
cPath is built using a traditional three-tier web architecture. The first tier consists of the open source MySQL database , and full-text index files generated by the open source Lucene index engine, which also handles most query tasks for the web service . The second tier consists of a Java servlet application, which uses the Jakarta Struts Library  for cleanly separating application logic from HTML/XML presentation. The second tier also uses the Xerces Java XML parser , the open source JDOM library , and ARP: Another RDF Parser . In-memory caching is provided via the open source Ehcache tool kit , and database pooling is provided by the Apache Database Connection Pool (DBCP) . Real-time logging is provided by Apache Log4J , unit tests are written in JUnit , functional tests are written in Anteater , and the entire build process is fully automated via Ant  and Cruise Control . Detailed information about the cPath architecture, including graphical diagrams and definitions of the table structure, can be found in the Architecture Guide PDF on the cPath developer web site .
The core cPath data model consists of just three elements: biological entities, links between biological entities, and links to external databases. For example, when storing a PSI-MI interaction, such as "p53 binds to TP73", cPath splits the PSI-MI record into three biological entity records: one for the interaction, one for p53 and one for TP73. For each record, cPath stores the complete PSI-MI XML content associated with that entity. cPath then stores two internal links, one from the interaction record to p53, and a second from the interaction record to TP73. Finally, cPath stores external link records defined in the PSI-MI record for each of the biological entities; for example, cPath will store a link from p53 to its UniProt identifier, as well as links from p53 to any matching Gene Ontology (GO) terms if those references are present in the PSI-MI file. External links are supplemented by any unification links available in the identifier mapping system.
By maintaining a simple data model, and storing XML within a relational database structure, cPath is able to store data in multiple XML formats, including PSI-MI and BioPAX and the cPath table structure need not be updated when these formats change. cPath does not define any new XML formats, but rather adopts the data models of PSI-MI and BioPAX. Thus cPath can store any biological information represented by these standard exchange formats, from protein sequence, to experimental description, to thermodynamics information for biochemical reactions. Not all information will be displayed via the web interface, but all will be available in the XML returned by the web service API. Additional tables within cPath are used to support the three core entity tables. For example, cPath maintains an identity and reference table for mapping between identifiers, an external database table for creating hyperlinks to other biological databases, an organism table for storing basic organism data, an XML cache table for storing pre-computed XML assembly documents to speed loading of commonly accessed pages, and a log table for storing fatal errors in production mode.
cPath is useful for biologists, computational biologists and software developers.
Browse and search for pathways of interest. Drill down from a pathway to member interactions and molecules. Search for a specific protein of interest, and look up its role in specific pathways. Use third-party tools to visualize and analyze pathways. For example, overlay expression data onto pathways of interest, and algorithmically identify regions of correlated activity.
Download all pathways in BioPAX format for global analysis using your own software. Install cPath locally to aggregate external and/or private data sets. Use cPath to distribute, annotate and share computationally predicted interaction data sets or pathway models.
Software Developers/Tool Builders
Build third-party software tools on top of the open cPath web service API, in order to programmatically access pathway data. For example, build software for visualizing pathways and organizing member molecules based on cellular location.
A recurring problem in bioinformatics is linking related or identical data described by different databases when multiple database identifiers (primary keys) are used to refer to the same biological entity [40, 41]. Interaction databases may use different identifiers for their proteins, RNA, DNA or small molecules (for example, a protein may be identified with a UniProt accession number, RefSeq accession number or an NCBI GI number). This use of multiple identifiers can significantly hinder the ability to seamlessly use data from diverse sources, such as to retrieve all interactions involving a protein from numerous data sources. Recognizing when protein records that use different database identifiers actually represent the same protein allows a query for the protein to correctly retrieve both original records . To address this specific issue, cPath provides an identifier mapping system capable of storing equivalence between two or more identifiers. The system is pre-populated with identifier mappings loaded from external files. For example, a single protein unification mapping may map UniProt accession numbers to equivalent RefSeq accession numbers. Identifier mapping files are simple tab-delimited text files that must be loaded into cPath prior to import of any interaction or pathway data sets. With some scripting ability, cPath identifier mapping files can be created from external database resources, such as Alias Server , the EBI International Protein Index (IPI) , or Ensembl BioMart . Sample protein unification files, derived from the IPI Protein Cross-References dataset, are available for download from the cPath web site. cPath also uses identifier equivalences available in imported pathway datasets that contain multiple database references for the same interactors.
Importantly, cPath also provides a similar service for storing relationships between non-equivalent, but related biological entities. For example, a researcher can import a UniProt to Affymetrix mapping file, then when a new protein with a matching UniProt identifier is subsequently imported into cPath, it is annotated with all known Affymetrix probe set identifiers. This is useful for tools that link gene expression data to pathways.
To support data aggregation from multiple databases, such as to create custom integrated sets of pathways for local use, cPath supports the PSI-MI  and BioPAX  exchange formats. As more databases make their data available in either of these two standard formats, cPath becomes increasingly useful. As some popular pathway databases do not permit public redistribution of their data, it is difficult for central websites to collect a complete set of pathways for research use. A local installation of cPath is one way to effectively collect and access all of this data. For example, we have successfully aggregated data from MINT  and IntAct , resulting in a final data set of over 20,000 proteins, and more than 84,000 interactions. cPath has also been successfully used to store all human pathways from Reactome , and one of our active users has used cPath to successfully store over 1 million interaction records. A complete list of external databases, which have been successfully imported and stored using cPath is provided in Table 2.
cPath supports PSI-MI format Level 1 and BioPAX format Levels 1 and 2. Level 1 of PSI-MI represents protein-protein interactions. Level 1 of BioPAX represents metabolic pathways, Level 2 adds support for molecular interactions and post-translational protein modifications, such as those supported by PSI-MI, and future levels will add support for signaling pathways, gene regulatory networks and genetic interactions by the end of 2006.
In addition to our own software engineering requirements, cPath meets specific interoperability and testing requirements of the National Cancer Institute (NCI) Cancer Biomedical Informatics Grid, or caBIG™. The goal of caBIG™ is to create a common infrastructure of interoperable tools and data specifically focused on cancer research [12, 51], and software funded via caBIG is required to meet specific interoperability requirements. For example, silver-level compliance requires that the software use standard exchange formats, make all data available via well described APIs, and use standard messaging systems where appropriate . Through caBIG™, cPath has been formally tested by a third-party partner institution, Oregon Health & Science University (OHSU). cPath was tested on multiple operating systems, and with multiple versions of the required software providing quality assurance (QA) of the entire software system. Since early 2004, the cPath web service has handled more than 537,000 queries from over 5,800 distinct hosts (IP addresses), mostly from Cytoscape users using the cPath query plugin.
cPath is freely available under the GNU Lesser General Public License (LGPL) for academic and commercial use. cPath can be used to distribute pathway data on the Internet, or can be used to share private data locally within an individual lab, department or company. Stable releases of the cPath software are available for download, as are nightly snapshots of the latest code, which is not guaranteed to be stable, but may have new features compared to the last stable release. A complete administrator guide (available in PDF format) describes the step-by-step process for installing a new instance of cPath. Installation requires some computer system administration skill and ability to work with the command line, thus is geared towards computational biologists and software developers. Once installed, cPath can be administered via the command line using a Perl script wrapper around a Java administration program or via a web-based administration interface. After installation, typical set-up includes loading selecting identifier mapping and PSI-MI or BioPAX files and running the text indexer via the command line administration script or the web-based interface. Once these are done, cPath is fully functional and is ready for use. Any problems with import, such as errors in the input files, are detected by a validator and reported. The web-based administration provides several options for customizing the look and feel of cPath, including the ability to set global headers, footers, and home page content. Additionally, we maintain a public mailing list where new users can post questions related to the administration and use of cPath (firstname.lastname@example.org).
cPath is a robust, scalable, modular, professional-grade software platform for collecting, storing, and querying biological pathways. It can serve as the core data handling component in information systems for pathway visualization, analysis and modeling. As cPath evolves, we hope to attract new collaborators and developers to contribute to its open source development. We also envision that cPath will provide the software infrastructure for a large-scale, international effort to pool pathways from multiple sources into common repositories that provide convenient integrated points of access for the scientific community.
Future cPath software development will focus on increasing levels of data aggregation and linking. Currently, cPath is capable of integrating data at the interactor (e.g. protein) level by simply recognizing identifiers referencing the same protein, but it is incapable of detecting duplicate interaction or pathway records, resolving conflicting information and detecting semantic inconsistencies between different sources, all of which are required for true integration. Furthermore, while cPath is capable of importing both PSI-MI and BioPAX data, the web interface and web service must be set to support one of these exchange formats at a time. To support both exchange formats simultaneously, we will focus on creating translators between PSI-MI and BioPAX, and expand the roster of available web services queries to support both formats. cPath will also support PSI-MI Level 2.5, which expands the format scope to include other interactors, such as small molecules, DNA, and RNA and will support BioPAX Level 3.0 and future levels as they become available. We also plan to integrate BioPAX and PSI-MI validators, currently under development by others, into the cPath import pipeline to verify that all incoming BioPAX and PSI-MI records conform to their respective format definitions and to community best practices.
With the availability of tools for converting SBML and CellML to BioPAX developed by BioModels.net , we will be able to import SBML and CellML data sets present in BioModels.net directly into cPath. We will also support pathway export in SBML and CellML. Furthermore, in order to expand the number of other resources cPath is capable of linking to, we plan to integrate the MIRIAM (Minimal Information Requested In the Annotation of Biochemical Models) URI set. This community-derived data set provides a list of stable URIs and URL patterns for cross-linking bioinformatics resources and is currently used in SBML and BioModels.net .
Project Name: cPath
Project Home Page: http://cbio.mskcc.org/dev_site/cpath/
Operating System(s): Platform independent; tested on Windows, Linux and Mac OS X
Programming Languages: Java
Other Requirements: MySQL 4.0 or higher; Apache Tomcat Server 4.1 or higher; Apache Ant 1.6 or higher, Perl 5.0 or higher. All required software is open source and freely available.
License: Free for academic and commercial users under the GNU Lesser General Public License (LGPL).
Example site running cPath software: Memorial Sloan-Kettering Cancer Cell Map, http://cancer.cellmap.org/.
Partial funding for cPath was provided by the National Cancer Institute (NCI) caBIG initiative and the Alfred W. Bressler Scholars Endowment Fund. We thank Shannon McWeeney, Vincent Yau, and Ranjani Ramakrishnan, of the Center for Biostatistics, Computing & Informatics in Biology and Medicine, at Oregon Health & Science University (OHSU) for testing cPath on multiple platforms, and performing overall quality assurance (QA) of the entire software system and providing a useful BioPAX validation tool. We also thank Iain Keddie of GlaxoSmithKline for code contributions, including performance optimizations of the cPath import and full-text indexing pipeline.
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.