Abstract

Summary: Cobweb is a Java applet for real-time network visualization; its strength lies in enabling the interactive exploration of networks. Therefore, it allows new nodes to be interactively added to a network by querying a database on a server. The network constantly rearranges to provide the most meaningful topological view.

Availability: Cobweb is available under the GPLv3 and may be freely downloaded at http://bioinformatics.charite.de/cobweb.

Contact:joachim.eichborn@charite.de

Supplementary Information:Supplementary data are available at Bioinformatics online.

1 INTRODUCTION

Network-based techniques are used today to tackle a wide variety of scientific questions, ranging from interaction mechanisms in protein networks to signalling pathway analysis (Barabási and Oltvai, 2004). Consequently, there is a strong need to have tools to visualize and explore networks such as Cytoscape (Shannon et al., 2003), Gephi (Bastian et al., 2009) and ProViz (Iragne et al., 2005). However, these programs aim at visualizing large networks and offer many features. They cannot be integrated into web sites and have a significant learning curve. Therefore, we have developed Cobweb as a Java applet that has fewer features but can be easily used from any webpage. Cobweb offers uncomplicated real-time visualization of networks up to a few hundred nodes. In contrast to earlier web-based approaches such as Medusa (Hooper and Bork, 2005) and jSquid (Klammer et al., 2008), Cobweb stresses interactive features. Thus, it is possible to interactively add new nodes to the network at which time the network topology changes to provide the most uncluttered view.

2 THE APPLET

Cobweb's strength lies in its ease of use and ability to be adapted to new tasks.

2.1 Features

  • Can be easily integrated into web pages.

  • The user interface is easily customizable using JavaScript (Section 2.2).

  • The user can interactively load new nodes (e.g. from a database) (Section 2.3).

  • Network conformation changes for best viewing (Section 2.4).

  • Networks can be input and output as XGMML and GraphML files (Section 2.5).

  • Pictorial representation of nodes.

2.2 User interface

The user interface consists of three parts: a network view, a status bar and a side bar (Fig. 1). The network view is the actual applet, where the network is drawn. Here nodes can be clicked, dragged and visualization options (like how to depict nodes, the length of edges, etc.) chosen.

Fig. 1.

Screenshot of Cobweb used by PROMSICUOUS to visualize drug–target–side-effect data (http://bioinformatics.charite.de/promiscuous). In the side bar, the various options to interact with the network are shown as blue buttons. These are context sensitive as they depend on the selected node.

Fig. 1.

Screenshot of Cobweb used by PROMSICUOUS to visualize drug–target–side-effect data (http://bioinformatics.charite.de/promiscuous). In the side bar, the various options to interact with the network are shown as blue buttons. These are context sensitive as they depend on the selected node.

The other parts, the side and status bars, are not part of the applet, but of the HTML content of the page. The status bar gives some information about the actions the applet is performing while the side bar offers possibilities for interacting with the network, e.g. to add new nodes or to perform basic analyses. The content of these bars is generated by JavaScript functions, so it is possible to add additional features to the side bar just by changing the JavaScript code without touching the applet code.

2.3 Interactively add nodes

The applet supports interactive exploration of the network displayed by adding new nodes to the network. Nodes are added either by double clicking on existing nodes in the network view or through buttons in the side bar.

To add a new node to the network, the Java applet calls a script (e.g. written in PHP) that returns detailed information (like neighbours, description, etc.) about the node. This information is then parsed by Cobweb and the node is added to the network. If the script is stored on the same server as the applet, this works without having to sign the applet.

2.4 Network arrangement

The network is represented internally as a particle system, where each node in the network is represented by one particle. Each particle is connected by spring-like forces to all other particles in a pairwise manner. If two nodes in the network are connected by an edge, the force between the corresponding particles is attractive, otherwise repellent. The positions of all particles are constantly recomputed based on these forces using a fourth-order Runge–Kutta method (Press et al., 2007). As such, the network automatically returns to a favourable position after nodes are added or moved by the user. Additionally, single nodes can be given a fixed position to improve clarity.

2.5 Input and output

The applet is able to read and write networks as valid XGMML (eXtensible Graph Markup and Modeling Language) and GraphML documents. XGMML and GraphML are widely used file formats; this allows users to open the networks using other software, e.g. Cytoscape and Gephi.

3 CONCLUSIONS

Cobweb is a tool for uncomplicated real-time network visualization and particularly suited to interactive exploration of datasets accessed from web sites. Cobweb is able to open and save documents in XGMML- and GraphML- format and thus is suited to preliminary viewing before loading into more complicated and detailed analytical software.

We are currently using Cobweb in our project PROMISCUOUS (von Eichborn et al., 2011); incorporation into other projects is on-going.

Cobweb is written in Java and based on the Processing framework (Reas and Fry, 2010) and the G4P library (http://lagers.org.uk/g4p) by Peter Lager. Being object oriented makes it straightforward to add new functionality (e.g. new node and edge properties) to the applet.

ACKNOWLEDGEMENTS

We want to mention J.T. Bernstein's physics library from which our particle system for Cobweb evolved (http://traer.cc/physics).

Funding: International Research Training Group on Genomics and Systems Biology of Molecular Networks (GRK1360 to J.v.E.); Federal Ministry of Education and Research (MedSys Project, 0315450 A); European Union (SynSys Project).

Conflict of Interest: none declared.

REFERENCES

Barabási
A-L
Oltvai
ZN
Network biology: understanding the cell's functional organization
Nat. Rev. Genet.
 , 
2004
, vol. 
5
 (pg. 
101
-
113
)
Bastian
M
, et al.  . 
Gephi: an open source software for exploring and manipulating networks
International AAAI Conference on Weblogs and Social Media
 , 
2009
San Jose, California, USA
Hooper
SD
Bork
P
Medusa: a simple tool for interaction graph analysis
Bioinformatics
 , 
2005
, vol. 
21
 (pg. 
4432
-
4433
)
Iragne
F
, et al.  . 
ProViz: protein interaction visualization and exploration
Bioinformatics
 , 
2005
, vol. 
21
 (pg. 
272
-
274
)
Klammer
M
, et al.  . 
jSquid: a Java applet for graphical on-line network exploration
Bioinformatics
 , 
2008
, vol. 
24
 (pg. 
1467
-
1468
)
Press
WH
, et al.  . 
Integration of ordinary differential equations
Numerical Recipes: The Art of Scientific Computing
 , 
2007
3
New York, NY, USA
Cambridge University Press
(pg. 
899
-
954
)
Reas
C
Fry
B
Getting Started with Processing
 , 
2010
Sebastopol, CA, USA
O'Reilly Media/Make
Shannon
P
, et al.  . 
Cytoscape: a software environment for integrated models of biomolecular interaction networks
Genome Res.
 , 
2003
, vol. 
13
 (pg. 
2498
-
2504
)
von Eichborn
J
, et al.  . 
PROMISCUOUS: a database for network-based drug-repositioning
Nucleic Acids Res.
 , 
2011
, vol. 
39
 (pg. 
D1060
-
D1066
)

Author notes

Associate Editor: John Quackenbush

Comments

0 Comments