BridgeDb app: unifying identifier mapping services for Cytoscape

The BridgeDb app for Cytoscape allows users to map and annotate identifiers of genes, proteins and metabolites in the context of biological networks. The app greatly simplifies the identifier mapping process in Cytoscape by providing a unified interface to different mapping resources and services. The app also provides a programming interface via Cytoscape Commands that can be utilized for identifier mapping by other Cytoscape apps. In this article we provide a technical guide to the BridgeDb app for mapping identifiers in Cytoscape.

This work was partially funded by the Google Summer of Code program (JG, CZ, and LZ), the Robertson Foundation (NS), Grant information: and by NIGMS R01-GM100039 (ARP). The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript.

Introduction
Cytoscape 1 is a powerful network visualization tool and platform for data integration and analysis. However, identifier mapping remains a challenge when working with biological data from different sources. We developed the BridgeDb app for Cytoscape to provide utilities for mapping and annotating identifiers in the network context. Built on the BridgeDb open-source framework for identifier mapping 2 , the BridgeDb app provides a graphical user interface (GUI) for users and a command interface for other Cytoscape apps to perform identifier mapping in Cytoscape networks. As a result, BridgeDb enables or simplifies the processes of identifier translation, biological entity unification, and functional annotation.

Implementation
The BridgeDb identifier mapping framework (http://bridgedb.org/) 2 was designed to provide standardized access to gene, protein and metabolite identifier mapping services such as Ensembl BioMart 3 , Synergizer 4 , PICR 5 and BridgeDb web services and BridgeDb database files. By creating a Java-based abstract layer, BridgeDb enables bioinformatics applications to connect to different mapping resources through the same interface, which greatly alleviates the burden of exploring, maintaining and switching between resources.
Built upon BridgeDb framework and API, the BridgeDb app for Cytoscape can be used to connect to different mapping resources and map identifiers in Cytoscape netwoks. The BridgeDb app was implemented based on the Cytoscape 3 API. Its predecessor was the CyThesarus plugin for Cytoscape 2. To take advantage of the new OSGi based architecture in Cytoscape 3 and its clearly defined and simplified API, we have rewritten the CyThesaurus plugin into an OSGi bundle app. Figure 1 illustrates the implementation details. The identifier mapping API of BridgeDb framework was wrapped by Cytoscape Task and TaskFactory API, which provide identifier mapping utilities to users through graphical user interfaces for managing mapping resources and performing identifier mapping. The BridgeDb app Tasks were also registered to Cytoscape as command services allowing other apps, such as Mosaic 6 and NOA 7 apps, and the Merge Network tool, to take advantage of BridgeDb app's identifier mapping capacities.

BridgeDb app user interface
The BridgeDb app provides an intuitive GUI to perform identifier mapping in Cytoscape networks, consisting of two interactive dialogs for resource management and identifier mapping, respectively, which can be opened via the menu item Apps/BridgeDb. The resource management dialog allows user to add, remove, and select or deselect mapping resources. Once the resources are configured, they will be saved in a global property file and therefore shared among different Cytoscape sessions. Currently BridgeDb app supports local and remote delimited text files, BridgeDb database files, BridgeDb web service, BioMart web service, and Synergizer web service. Web services are easy to access and up to date and therefore are preferable for annotating small to medium-size networks (less than 1,000 nodes). It is highly recommended to download and use the BridgeDb database files for mapping identifiers in large networks in order to save time. Local delimited text files are useful when mapping between non-standard or customized identifiers. To avoid ambiguity, it is recommended to select only one resource unless multiple resources are believed to be complementary to each other. Particularly, resources for different species should not be selected at the same time. Database or text files are also preferable when reproducibility is essential. We will update the app to support more mapping resources as BridgeDb API keeps being developed.
The identifier mapping dialog is the main interface for mapping identifiers stored in the node table in the selected Cytoscape network. The user needs to choose the source identifier types, columns in the node table that contain the source identifiers, target identifier types, and columns to save the target identifiers. When mapping, all specified source identifier types in all selected resources will be queried for matching identifiers. If one source identifier can be mapped onto multiple target identifiers, all target identifiers can be saved as a list in the node table. If a target column exists in the node table, all values in the column will be overwritten with the target identifiers; otherwise, a new column will be created and filled with the target identifiers. Besides a set of supported identifier types (e.g., Entrez Gene ID and UniProt accession), a mapping resource such as BridgeDb database may also have a set of supported attributes (e.g., gene symbol and description).

BridgeDb app command interface
The BridgeDb app also provides a set of Cytoscape commands, which can be used by scripting or by other Cytoscape apps (client apps) to take advantage of the identifier mapping capacities provided by BridgeDb app. Table 1 provides a selected list of commands supported by BridgeDb. Every command has an optional argument 'appName' in order to allow every client app to have its own set of identifier mapping resources. Morris et al. (setsApp 8 , published together in the Cytoscape App collection 9 ) provided an example of how to use commands in client apps.

Example use cases
Use cases of BridgeDb app include identifier translation, biological entity unification, and functional annotation in Cytoscape networks. Box 1 provides an example of how to use BridgeDb app to facilitate annotation and integration of networks from public databases. In particular, this example shows the steps to generate a TP53 interaction network by merging networks from different sources using BridgeDb app and Merge Network tool. Figure 2 illustrates the process of the Cytoscape app NOA 7 annotating Cytoscape networks with Gene Ontology by utilizing BridgeDb app's command services.

Conclusions
In this paper, we presented the BridgeDb app for Cytoscape. By providing a unified interface to various mapping resources, BridgeDb app enables identifier mapping in the network context and therefore greatly eases the process of data integration in Cytoscape.

Software availability
Software UniProt identifiers for all genes or selected genes in a Cytoscape network. This is an important and useful application that among other application enables the merging of networks obtained from different sources (as shown in demonstration). The app is reasonably user-friendly and intuitive. Most importantly, it does not require any programming knowledge and is accessible via a GUI. I appreciate that it either uses local downloaded files for mapping (for heavy usage) or BridgeDb web services (for smaller networks). The demo in the paper worked flawlessly on my MacBook Air.
Potential future improvements may include ortholog mapping e.g. from mouse to human to enable cross-species network analyses. I have read this submission. I believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard.
No competing interests were disclosed. Competing Interests:

Benno Schwikowski
Systems Biology Lab, Institut Pasteur, Paris, France BridgeDB app provides Cytoscape users and app developers with powerful functionality to address the ID mapping problem in integrative data analysis. App user and command interfaces are well-documented; the workflow is functional and recommended for anyone wishing to learn how to use the app.
As a minor suggestion, it would be reassuring to new users if they were able to validate the result of the workflow example in some way.