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.
Supplementary Information:Supplementary data are available at Bioinformatics online.
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.
Can be easily integrated into web pages.
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.
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.
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.
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.