KEGGViewer, a BioJS component to visualize KEGG Pathways

Summary: Signaling pathways provide essential information on complex regulatory processes within the cell. They are moreover widely used to interpret and integrate data from large-scale studies, such as expression or functional screens. We present KEGGViewer a BioJS component to visualize KEGG pathways and to allow their visual integration with functional data. Availability: KEGGViewer is an open-source tool freely available at the BioJS Registry. Instructions on how to use the tool are available at http://goo.gl/dVeWpg and the source code can be found at http://github.com/biojs/biojs and DOI: 10.5281/zenodo.7708.


Introduction
Networks and network-based techniques are widely used in systems biology to model biological processes such as gene regulation, protein interactions and signaling pathways. Signaling pathways in particular, provide an understanding of cell dynamics by describing step by step the temporal interactions that a group of molecules or metabolites undergo in order to control one or more cellular functions.
Different attempts have been made to store and aid the retrieval and analysis of signaling pathways. For example the Kyoto Encyclopedia of Genes and Genomes (KEGG) 1 contains a large collection of manually curated pathway maps. Panther Pathway 2 , as another example, provides access to a number of mainly signaling pathways, subfamilies and protein sequences mapped to individual pathway components.
KEGG is widely used by researchers to retrieve pathway information. Pathway maps in KEGG can be downloaded as static PNG images or alternatively as KEGG Markup Language (KGML) files (free of charge for academic use). KGML is an XML-like format that describes a pathway, its components and relationships and can, for instance, be used to visualize pathways 3 , generate systems biology models 4 or perform network analysis 5 .
Large-scale techniques like expression arrays, deep sequencing or proteomics allow monitoring the relative or absolute level of expression for a large number of genes simultaneously. However, expression profiling by itself is not sufficient to understand the exact role of a set of genes in a biological process. In order to gain new insights into the regulatory relationships of differentially regulated genes, expression profiles from a large-scale study can be integrated with signaling pathways.
Here, we present KEGGViewer, software that allows visual integration of KEGG pathways and expression profiles. We have coded KEGGViewer in BioJS 6 , a JavaScript library that holds components for visualizing biological data on the web. The KEGGViewer component is open source and freely available at http://goo.gl/dVeWpg.

The KEGGViewer component
To run KEGGViewer (i) a target DIV ID (unique identifier) to render the pathway, (ii) a KEGG pathway ID and (iii) a proxy URL to bypass the same domain policy constraint in JavaScript are required. The following code snippet illustrates how to initialize the component: var instance = new Biojs.KEGGViewer ({ target: "example", pathId: "hsa04910", proxy: "proxy.php" }); With that input, KEGGViewer queries the KEGG API 7 in order to obtain the KGML-formatted KEGG pathway. Once retrieved, the KGML file is parsed by KEGGViewer and the pathway is rendered using Cytoscape.js 8 Figure 1a).
To contextualize regulatory relationships between a predefined set of genes, KEGGViewer can integrate userprovided gene expression data in a pathway ( Figure 1b). For this, the expression values must be handed over to KEGGViewer. The following code shows how to initialize the component to overlay expression data:   The expression parameter defines the color to highlight up-and down-regulation, the genes affected and the different experimental conditions, in which expression values were obtained for the affected genes (Figure 1b).
By providing expression data to KEGGViewer, the tool is able to (i) highlight genes according to their expression values in each experimental condition, (ii) allow users to change the threshold parameters for up-and down-regulation, and (iii) visualize expression changes under different experimental conditions as a slideshow.
More details on how to use KEGGViewer can be obtained from the BioJS Registry in http://goo.gl/dVeWpg.

Conclusions
KEGGViewer is a simple, web-based component for visualization of KEGG pathways and integration of user-provided expression data on pathway information. It follows the principles of reutilization, sharing and development behind BioJS. KEGGViewer is easy to integrate in any website and provides functionality to interact with other JavaScript components. As a BioJS component, KEG-GViewer is easy to extend allowing changes to be made or new functionality to be included.

Competing interests
No competing interests were disclosed. The BioJS library of components has a lot of potential. It's encouraging to see a diversity of interactive viewers already registered with BioJS. The intersection of modern JavaSript (JS) components with network biology in particular is ripe for development to bring powerful perspectives on massive biomedical datasets to researchers. I decided to critique this article introducing the BioJS from three KEGGViewer points of view to acknowledge the broad set of use cases this work takes on. While there and challenges are a number of things to improve upon (as always) and a few points requiring clarification, the project is a nice addition to the BioJS library and may provide a useful data visualization option when deployed with a complementary set of web tools for selecting pathways, managing datasets and viewing details.

Generic User:
The "play" feature is great for comparing conditions. Nicely done! Panning is tricky, I seem to have to hold cmd, click, pause, and then drag. Without the 'pause' I invoke a selection tool. There is no additional information or link-outs when you click on a node; only the gene symbol is provided.
There is no interface for accessing the data values underlying the visualization. There is a disconnect between the web developer who sets up the viewer with all the underlying expression data and the end-user who views the data with only limited access and controls.

Biomedical Researcher:
The default expression range appears to be set at min-min, which results in all data values visualized as up-regulation. I would recommend default values centered on 0 in addition to support for user-provided parameters. Unfortunately, the parameter names and value ranges for data overlays are unnecessarily restricted to "expression", "upColor" and "downColor". A generic solution for data overlay that could work with any type of data ( shouldn't care if it's expression or not) and color KEGGViewer gradients or discrete mapping options would be much more useful. All of these sorts of options are in fact already available in closely related tools (also free and open source, and which I happen to work on) that the authors neglected to cite: PathVisio [ ] and 1 Cytoscape [ ]. These projects have both Java and JavaScript flavors. The JS version of Cytoscape 2 was obviously used and cited in this work, but the Java version with its built-in data import, style and overlay options --as well as KEGG import --was missed. Speaking of KEGG, I'm dubious about the blanket statement that it is "free of charge for academics". It's a complicated situation that I know many colleagues are unclear about, so I think it's important to describe it thoroughly. According to their own website [ ], "Academic users who 3 utilize KEGG for providing academic services are requested to obtain a KEGG FTP subscription for organizational use, which includes a proper license agreement." This leads to a licensing agent with various paid subscription options [ , ]. The KEGG API, which uses, is indeed 1.
with various paid subscription options [ , ]. The KEGG API, which uses, is indeed 4 5 KEGGViewer freely provided for academic use, but only for individual downloads. Bulk downloads, such as those required to do analysis of over representation or enrichment, are explicitly forbidden and require a KEGG FTP subscription [ ].
6 Software Developer: It is unfortunate that the EBI host site has resources in conflict with the . This seems KEGGViewer counter to the whole point of BioJS and should be addressed in future releases of the EBI web site, cytoscape.js and/or (whichever CSS is the most intrusive or classes least specific). KEGGViewer Beyond a bit of copy/paste JS (including a 5-level deep JS object), asking users to host a php proxy will likely turn some away. Is there any way around this?

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.
I have the following interests which are neither financial nor competing, really, but The emphasis of signaling pathways is not reasoned enough in the text. KEGG has signaling pathways, but it is so much more (e.g. metabolism, information processing, diseases, etc). For the usage of the given component it makes no difference between pathway classification, this should be clarified. KEGG also has information about metabolites but this has not been mentioned in the text nor in the documentation of the component. I would assume that is capable of handling KEGGViewer metabolite data as well, but it would be nice to have it specified in the text and/or in the documentation of the component. Although is an easy plugin for visualizing KEGG pathways it is not a unique way for KEGGViewer visualizing user data and alternative options could be mentioned in the Introduction section. KEGG itself allows for user data mapping, for example, is a special web tool for mapping KEGGanim metabolite and gene expression data to the pathways. Other alternatives that could be mentioned 4.

5.
metabolite and gene expression data to the pathways. Other alternatives that could be mentioned include , which allows expression analysis from user provided data. Reactome Although the BioJS component page has enough information to create working KEGGViewer examples of the component, not all the requirements are self-explanatory (missing UI icons, display problems on certain mac chrome versions, expression range setup bar is confusing and it could be set to a default state at 0,0, the proxy setup is confusing and needs better documentation). Currently, the description of parameters and options allows only basic usage. To make the component usable for a wider range of users and to display it's full power, the authors will have to considerably update the component description with additional details and 3-4 use cases.
We have read this submission. We believe that we have an appropriate level of expertise to confirm that it is of an acceptable scientific standard.
No competing interests were disclosed. Competing Interests: