| Literature DB >> 25475079 |
Rui Wang1, Yasset Perez-Riverol, Henning Hermjakob, Juan Antonio Vizcaíno.
Abstract
Recent advances in high-throughput experimental techniques have led to an exponential increase in both the size and the complexity of the data sets commonly studied in biology. Data visualisation is increasingly used as the key to unlock this data, going from hypothesis generation to model evaluation and tool implementation. It is becoming more and more the heart of bioinformatics workflows, enabling scientists to reason and communicate more effectively. In parallel, there has been a corresponding trend towards the development of related software, which has triggered the maturation of different visualisation libraries and frameworks. For bioinformaticians, scientific programmers and software developers, the main challenge is to pick out the most fitting one(s) to create clear, meaningful and integrated data visualisation for their particular use cases. In this review, we introduce a collection of open source or free to use libraries and frameworks for creating data visualisation, covering the generation of a wide variety of charts and graphs. We will focus on software written in Java, JavaScript or Python. We truly believe this software offers the potential to turn tedious data into exciting visual stories.Entities:
Keywords: Bioinformatics; Chart; Hierarchy; Network; Software library
Mesh:
Substances:
Year: 2015 PMID: 25475079 PMCID: PMC4409855 DOI: 10.1002/pmic.201400377
Source DB: PubMed Journal: Proteomics ISSN: 1615-9853 Impact factor: 3.984
Figure 1General comparison of features among the different libraries described in the main text: (A) charts, (B) networks, and (C) hierarchical representations. The figure was generated using the D3.js library.
Libraries and frameworks for data visualization split in three different categories: charts, networks and hierarchies
| Name | Language | Platform | Type | Description | Supported Categories | URL |
|---|---|---|---|---|---|---|
| D3.js | JavaScript | Web | Open source | JavaScript visualisation framework designed to utilise the capabilities of CSS3, HTML5 and SVG | Charts/Hierarchies | |
| JFreeChart Orson Charts | Java | Desktop Web | Free | Java well-known library to generate charts in 2D and 3D | Charts | |
| Google Charts | JavaScript | Web | Free | Google project to embed many different kinds of charts and maps in web pages | Charts/Hierarchies | |
| matplotlib | Python | Desktop | Open source | Desktop plotting library written in Python for creating quality plots (primarily in 2D) | Charts/Hierarchies | |
| MPLD3 | Python | Web | Open source | Python package that provides a | Charts | |
| GRAL | Java | Desktop | Open source | Java library for displaying plots | Charts | |
| Jzy3d | Java | Desktop | Open source | Library to easily draw 3D scientific data | Charts | |
| XChart | Java | Desktop | Open source | Lightweight Java library for plotting data | Charts | |
| Flot | JavaScript | Web | Open source | Plotting library for jQuery | Charts | |
| Bokeh | Python | Web | Open source | Python interactive visualization library that targets modern web browsers | Charts | |
| Cytoscape | Java | Desktop | Open source | Framework for integrating, visualising and analysing data in the context of biological networks | Networks/Hierarchies | |
| Cytoscape.js | JavaScript | Web | Open source | Framework for integrating, visualising and analysing data in the context of biological networks | Networks/Hierarchies | |
| Gephi | Java | Desktop | Open source | Platform written in Java for visualising and manipulating large graphs | Networks/Hierarchies | |
| Graphviz | DOT, Java, Python, C, C++ | Desktop/Web | Open source | Graph Visualization Framework for drawing graphs specified in DOT language scripts | Networks/Hierarchies | |
| Sigma.js | JavaScript | Web | Open source | JavaScript library dedicated to graph drawing, using either the HTML canvas element or WebGL | Networks | |
| mxGraph | JavaScript | Web | Commercial | Commercial JavaScript library | Networks/Hierarchies | |
| JGraphX | Java | Desktop | Open source | Open-source Java Swing graph visualization | Networks/Hierarchies | |
| JUNG | Java | Desktop | Open source | A library that provides a common and extendible language for graph visualization | Networks/Hierarchies |
Figure 2Examples of charts: (A) bullet plots of identified proteins in different MS proteomics resources (original data published in [75]); (B) box plots of theoretical isoelectric point (x-axis) for seven experimental fractions (original data published in [39,40]); (C) histograms of gravy index of proteins non-identified in protein expression resources (original data published in Ref. [75]); (D) scatter plot matrix charts; and (E) volcano plot. (A) was generated using Google Charts, and (B) was generated using D3.js bullet plugin (https://github.com/d3/d3-plugins/tree/master/bullet), respectively; (C) and (D) were generated using JFreeChart and D3.js, respectively; (E) was generated using matplotlib.
Figure 3Examples of networks: (A) Network circle layout of a protein network generated with Cytoscape; (B) Hybrid network, generated using NodeTrix (http://www.aviz.fr/Research/Nodetrix), combining a network with an adjacency matrix; (C) Hive plot (http://bost.ocks.org/mike/hive/), generated using D3.js; and (D) Arc diagram (http://bl.ocks.org/sjengle/5431779), generated also using D3.js.
Figure 4Examples of visualisation for hierarchical data: (A) Tree radial layout, (B) Pack layout, (C) Sunburst partition layout, and (D) Treemap layout. All the examples were generated using the D3.js library.