Literature DB >> 25285206

enhancedGraphics: a Cytoscape app for enhanced node graphics.

John H Morris1, Allan Kuchinsky2, Thomas E Ferrin1, Alexander R Pico3.   

Abstract

enhancedGraphics ( http://apps.cytoscape.org/apps/enhancedGraphics) is a Cytoscape app that implements a series of enhanced charts and graphics that may be added to Cytoscape nodes. It enables users and other app developers to create pie, line, bar, and circle plots that are driven by columns in the Cytoscape Node Table. Charts are drawn using vector graphics to allow full-resolution scaling.

Entities:  

Year:  2014        PMID: 25285206      PMCID: PMC4176421          DOI: 10.12688/f1000research.4460.1

Source DB:  PubMed          Journal:  F1000Res        ISSN: 2046-1402


Introduction

Cytoscape [1, 2] provides support for coloring and sizing nodes and node borders based on data values stored in the Node Table. This provides an extremely useful mapping between data values and a single visual property, but does not solve the need for more complex visualizations. Over the years, there have been attempts to support more complex mappings of multiple data values onto node visuals in Cytoscape. These include GOlorize [3], which maps GO terms to pie charts on nodes; GenePro [4], which visualizes groups of nodes as pie charts; VistaClara [5], which adds bar graphs to represent expression data; and more recently MultiColoredNodes [6]. Each of these plugins and apps implemented their own graph and chart capabilities that are not accessible to other apps and in some cases not applicable outside of specific types of analyses. We felt that a better approach would be to implement an app that provided general support for graphs and charts to users as well as to the developers of other apps. The initial version of this approach was developed for Cytoscape 2.8 as nodeCharts, which was used by clusterMaker [7], for example, and numerous users (see Figure 3 in the Jäger, et al. paper [8]). For Cytoscape 3, we reimplemented this approach as an app to take advantage of the new architecture and custom graphics API. The mechanism supports saving and restoring charts, as well as high-quality image file output suitable for publication. The intent is to provide a single, consistent, mechanism to draw charts and graphs on nodes as a general solution for diverse users and other app developers, mitigating the need to reinvent this capability in future apps.

Implementation

As part of the visual property mechanism, enhancedGraphics utilizes the Cytoscape 3 custom graphics API (org.cytoscape.view.presentation.customgraphics). To use the gradients and charts provided by enhancedGraphics, an app or user would create two things: a column that contains the instructions for creating the chart, and a passthrough visual mapping that maps that column to one of the custom graphics visual properties. The format of the instruction column is type: arglist, where type is the type of gradient or chart, and arglist is a list of name=value pairs that specify the arguments to create the gradient or chart (see details and examples in the tables below). The drawing and display of the chart or graph is handled by enhancedGraphics methods that are called by the Cytoscape rendering engine. Internally, each enhancedGraphics chart type implements a CyCustomGraphicsFactory that is registered with OSGi [9]. Each CyCustomGraphicsFactory informs the visual mapping mechanism of the chart type (e.g. lingrad) and method to create the CyCustomGraphics object given a String, which is the instruction column value. The CyCustomGraphics object parses the String as appropriate. Each CyCustomGraphics object implements a getLayers method that generates the appropriate list of CustomGraphicLayers. The API defines three types of CustomGraphicsLayers: (1) the base interface, CustomGraphicsLayers, that provides a getPaint method to return a simple java.awt.Paint for the node; (2) ImageCustomGraphicLayer, that adds a getPaint method that returns a java.awt.TexturePaint suitable for painting an image on a node; and (3) PaintedShape which adds methods to return Shapes, Strokes, and Paints to draw arbitrary shapes. enhancedGraphics utilizes the base CustomGraphicsLayer for the two gradient types and PaintedShape for all of the charts.

Results

Figure 1 shows examples of all of the gradients and charts that are provided by enhancedGraphics. Up to nine different graphs can be combined on a single node by mapping different columns to different Custom Graphics properties and then offsetting the charts using the corresponding Custom Graphics Position properties. enhancedGraphics currently provides two different types of graphics options: gradients and charts.
Figure 1.

enhancedGraphics example Gradients and Charts.

Gradients

Gradients are simple paints on nodes. In order to provide the user with control over the exact paint to use, both linear and radial gradients allow the user to specify the gradient start and end (or center point and radius) and a stop list of color and opacity values. Table 1 provides the prefixes and arguments for the two gradient types.
Table 1.

Gradient prefixes and arguments.

TypePrefixArgumentDescription
Linear Gradient lingrad start=”x,y” end=”x,y” stoplist=”r,g,b,a,stop1|r,g,b,a,stop2|...”x and y proportion (0-1) of where the gradient starts x and y proportion (0-1) of where the gradient ends red,green,blue, and opacity values (0–255) at each stop, which is interpreted as a proportion
Radial Gradient radgrad center=”x,y” radius=”r” stoplist=”r,g,b,a,stop1|r,g,b,a,stop2|...”x and y proportion (0-1) of the gradient center proportional (0-1) radius red,green,blue, and opacity values (0–255) at each stop, which is interpreted as a proportion

Charts

enhancedGraphics currently provides six chart types: bar, circos, heat strip, line, pie, and stripe. Each chart type has it’s own set of arguments as shown in Table 3. In addition, there are a number of common options that are used by many of the charts. Table 2 provides the syntax and explanation for each of these common arguments.
Table 3.

Charts and arguments.

Chart TypePrefixArgumentDescription
Bar Chart Simple bar chart. Multiple charts may be combined to get both up and down values. Accepts all of the common arguments. barchart separation= value The separation between bars
Circos chart Circos plots (more properly donut or ring charts) use many of the standard values except range, scale, and ybase. Also note that attributelist should be a list of List attributes in you intend to have more than one ring. circoschart arcstart= value arcwidth= value firstarc= value firstarcwidth= width labelcircles=       [ true | false] sortslices=       [ true | false]The start of each circle in degrees The thickness of each of the rings The start of the first arc as a proportion of the entire node The width of the first arc If true label each circle If true sort the slices from largest to smallest
Heat strip chart Heatstrip charts provide an up/ down bar graph with each bar colored as a gradient to reflect the values. Colorlist is interpreted differently for these charts heatstripchart colorlist=        gradient keyword|        updown colors separation= value Current gradient keywords include: yellowcyan, yellowblue, orangepurple, bluegreenyellow, purpleyellow, greenpurple, redyellow, and if you absolutely must: redgreen. See Table 2 for a description of updown colors. The separation between bars
Line chart Simple line graph. Accepts the standard arguments linechart linewidth= value The width of the lines on the plot
Pie chart Simple pie chart. Accepts all standard values except textbfrange, scale, and ybase. Stripe chart Very simple chart that breaks the node into n colors determined by the colorlist argument. No other arguments are used. piechart stripechart arcstart= value sortslices=       [ true | false]The start of each circle in degrees If true sort the slices from largest to smallest
Table 2.

Common arguments used by many charts.

ArgumentDescription
attributelist=”attr1,attr2,...attrn” colorlist=[ contrasting| modulated| rainbow| random|       updown colors| colors] labels=”label1,label2,..., labeln” labelcolor= color labelfont= font name labelsize= value labelstyle=[ italics| bold| bolditalic| plain] range=” min, max scale=” scale showlabels=[ true| false] values=” v1,v2,...vn ybase=[ top| middle| bottom| value]List of columns to use to get the values for the chart. The colorlist argument provides a number of options, including a series of keywords for automatically generating colors. updowncolors is a specification of colors for positive, negative, and zero values: up: color, down: color[, zero: color] where the zero is optional. colors may be specified as a color name (red, green, blue) or an rgb or rgba color in hex notatation, e.g. #FF0000 for red. List of labels for the chart. If not provided and attributelist is provided, the names of the attributes are used as labels. Color of the labels Font to use for the labels Size of the label font label style The min and max range as floating point values. This is used to have consistent scaling across all nodes A floating point value used to scale the chart. If false, labels aren’t drawn A list of values to use for the chart. One of values or attributelist will often be required, but not both The specified the base of the chart. Usually used to set the location of the 0 value for line and bar graphs.

Examples

The example charts shown in Figure 1 and provided in the Cytoscape session file Supplementary File 1 are generated from data columns. The instructions in the chart columns assume that the following columns exist: a, b, c, and d are integer columns in the default node table; Values is a list of Doubles also in the default node table, and Circle1 and Circle2 are also lists of Doubles. At this point, gradients are not dependent on any internal data. See Supplementary File 1 to see the instructions that generated Figure 1. A more relevant biological example is shown in Figure 2. This image shows a portion of the galFiltered.cys network delivered as part of the sampleData with every Cytoscape download. The bar charts show the values of the expression data included as columns gal1RGexp, gal4RGexp, and gal80Rexp. A string column was created and all rows were filled with the enhancedGraphic arguments:
Figure 2.

Example of using enhancedGraphics to show expression data in the context of a protein-protein interaction network.

Conclusions

enhancedGraphics fills an important need for Cytoscape visualizations: the ability to display more complicated data relationships as graphical representations onto nodes. enhancedGraphics has been integrated into clusterMaker to show heatstrips on nodes corresponding to clusters, into upcoming apps such as cddApp, which connects to the NCBI CDD Database and uses enhancedGraphics to show pie charts of the domain coverage. We have also used enhancedGraphics to show sequence coverage histograms on nodes that represent sequence contigs. In the future, we want to improve the font handling and add support for small heatmaps painted on nodes. We also plan to add a graphical interface to help users construct these visualizations without having to write out instruction arguments. The concise syntax, however, will still be valuable to advanced users and other app developers seeking to create enhanced graphics. With enhancedGraphics, Cytoscape users and app developers can visualize multiple columns of data as graphs and charts on their network nodes.

Software availability

Software available from: http://apps.cytoscape.org/apps/enhancedGraphics Latest source code: https://github.com/RBVI/enhancedGraphics Source code as at the time of publication: https://github.com/F1000Research/enhancedGraphics/releases/tag/v1 Archived source code as at the time of publication: http://www.dx.doi.org/10.5281/zenodo.10421 [11] Software license: Lesser GNU Public License 3.0: https://www.gnu.org/licenses/lgpl.htmlM The app described in the article addresses a specific issue with the Cytoscape network visualization tool: drawing of multidimensional data on nodes is currently not possible by default. As such this is a very valuable addition to the Cytoscape app ecosystem. The article is well written but I do have some minor issues that can be considered for further improvement: Minor issue The implementation details are a too technical when an intended audience includes biologists (and might even scare them away). I would suggest to transfer these OSGI specific details to a supplement or add a protocol section before this section with a sample protocol (including installation details). Minor issue The current sample session file included in the supplemental data only contains example nodes. A session file or additional network showing actual data mapped on the gal dataset (as in the figure) would further clarify the actual usage of the app. Minor issue In the conclusions section references to cddApp and NCBI CDD Database are lacking. 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. General comments: The authors describe a Cytoscape App, which provides a generic interface for displaying additional data onto the nodes of a graph. I believe that this App will be highly useful to researchers working with transcriptomics and proteomics data, as these often have a need to display, for example, expression time-courses onto protein interaction networks. This is especially true if the App is used as the foundation for other more specialized Apps that make it easier for users to import and visualize specific data types in an appropriate manner. Specific comments: The Integration section is difficult to fully follow for people who are not Cytoscape developers, who cannot be assumed to know what, for example, a  CyCustomGraphicsFactory is. It would in my opinion be good to revise this section to make it understandable to a broader audience. In Figure 1, I find it strange that the pie charts are not circular and that the circos charts, unlike all the other chart types, are not embedded within a frame with rounded corners. Also, the figure would benefit from a figure caption explaining the difference between Pie Chart 1 and Pie Chart 2, as well as between Circos 1 and Circos 2. The differences between these chart subtypes are not clear to me. 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.
  9 in total

1.  Discovering regulatory and signalling circuits in molecular interaction networks.

Authors:  Trey Ideker; Owen Ozier; Benno Schwikowski; Andrew F Siegel
Journal:  Bioinformatics       Date:  2002       Impact factor: 6.937

2.  Cytoscape: a software environment for integrated models of biomolecular interaction networks.

Authors:  Paul Shannon; Andrew Markiel; Owen Ozier; Nitin S Baliga; Jonathan T Wang; Daniel Ramage; Nada Amin; Benno Schwikowski; Trey Ideker
Journal:  Genome Res       Date:  2003-11       Impact factor: 9.043

3.  GOlorize: a Cytoscape plug-in for network visualization with Gene Ontology-based layout and coloring.

Authors:  Olivier Garcia; Cosmin Saveanu; Melissa Cline; Micheline Fromont-Racine; Alain Jacquier; Benno Schwikowski; Tero Aittokallio
Journal:  Bioinformatics       Date:  2006-11-24       Impact factor: 6.937

4.  GenePro: a Cytoscape plug-in for advanced visualization and analysis of interaction networks.

Authors:  James Vlasblom; Samuel Wu; Shuye Pu; Mark Superina; Gina Liu; Chris Orsi; Shoshana J Wodak
Journal:  Bioinformatics       Date:  2006-09-01       Impact factor: 6.937

5.  Integration of biological networks and gene expression data using Cytoscape.

Authors:  Melissa S Cline; Michael Smoot; Ethan Cerami; Allan Kuchinsky; Nerius Landys; Chris Workman; Rowan Christmas; Iliana Avila-Campilo; Michael Creech; Benjamin Gross; Kristina Hanspers; Ruth Isserlin; Ryan Kelley; Sarah Killcoyne; Samad Lotia; Steven Maere; John Morris; Keiichiro Ono; Vuk Pavlovic; Alexander R Pico; Aditya Vailaya; Peng-Liang Wang; Annette Adler; Bruce R Conklin; Leroy Hood; Martin Kuiper; Chris Sander; Ilya Schmulevich; Benno Schwikowski; Guy J Warner; Trey Ideker; Gary D Bader
Journal:  Nat Protoc       Date:  2007       Impact factor: 13.491

6.  Global landscape of HIV-human protein complexes.

Authors:  Stefanie Jäger; Peter Cimermancic; Natali Gulbahce; Jeffrey R Johnson; Kathryn E McGovern; Starlynn C Clarke; Michael Shales; Gaelle Mercenne; Lars Pache; Kathy Li; Hilda Hernandez; Gwendolyn M Jang; Shoshannah L Roth; Eyal Akiva; John Marlett; Melanie Stephens; Iván D'Orso; Jason Fernandes; Marie Fahey; Cathal Mahon; Anthony J O'Donoghue; Aleksandar Todorovic; John H Morris; David A Maltby; Tom Alber; Gerard Cagney; Frederic D Bushman; John A Young; Sumit K Chanda; Wesley I Sundquist; Tanja Kortemme; Ryan D Hernandez; Charles S Craik; Alma Burlingame; Andrej Sali; Alan D Frankel; Nevan J Krogan
Journal:  Nature       Date:  2011-12-21       Impact factor: 49.962

7.  clusterMaker: a multi-algorithm clustering plugin for Cytoscape.

Authors:  John H Morris; Leonard Apeltsin; Aaron M Newman; Jan Baumbach; Tobias Wittkop; Gang Su; Gary D Bader; Thomas E Ferrin
Journal:  BMC Bioinformatics       Date:  2011-11-09       Impact factor: 3.307

8.  ExprEssence--revealing the essence of differential experimental data in the context of an interaction/regulation net-work.

Authors:  Gregor Warsow; Boris Greber; Steffi S I Falk; Clemens Harder; Marcin Siatkowski; Sandra Schordan; Anup Som; Nicole Endlich; Hans Schöler; Dirk Repsilber; Karlhans Endlich; Georg Fuellen
Journal:  BMC Syst Biol       Date:  2010-11-30

9.  VistaClara: an expression browser plug-in for Cytoscape.

Authors:  Robert Kincaid; Allan Kuchinsky; Michael Creech
Journal:  Bioinformatics       Date:  2008-08-04       Impact factor: 6.937

  9 in total
  20 in total

1.  A joint molecular networking study of a Smenospongia sponge and a cyanobacterial bloom revealed new antiproliferative chlorinated polyketides.

Authors:  Roberta Teta; Gerardo Della Sala; Germana Esposito; Christopher W Via; Carmela Mazzoccoli; Claudia Piccoli; Matthew J Bertin; Valeria Costantino; Alfonso Mangoni
Journal:  Org Chem Front       Date:  2019-04-11       Impact factor: 5.281

2.  PopNet: A Markov Clustering Approach to Study Population Genetic Structure.

Authors:  Javi Zhang; Asis Khan; Andrea Kennard; Michael E Grigg; John Parkinson
Journal:  Mol Biol Evol       Date:  2017-07-01       Impact factor: 16.240

3.  scNetViz: from single cells to networks using Cytoscape.

Authors:  Krishna Choudhary; Elaine C Meng; J Javier Diaz-Mejia; Gary D Bader; Alexander R Pico; John H Morris
Journal:  F1000Res       Date:  2021-06-07

4.  Cytoscape StringApp: Network Analysis and Visualization of Proteomics Data.

Authors:  Nadezhda T Doncheva; John H Morris; Jan Gorodkin; Lars J Jensen
Journal:  J Proteome Res       Date:  2018-12-05       Impact factor: 4.466

5.  Hyperlipidemia-associated gene variations and expression patterns revealed by whole-genome and transcriptome sequencing of rabbit models.

Authors:  Zhen Wang; Jifeng Zhang; Hong Li; Junyi Li; Manabu Niimi; Guohui Ding; Haifeng Chen; Jie Xu; Hongjiu Zhang; Ze Xu; Yulin Dai; Tuantuan Gui; Shengdi Li; Zhi Liu; Sujuan Wu; Mushui Cao; Lu Zhou; Xingyu Lu; Junxia Wang; Jing Yang; Yunhe Fu; Dongshan Yang; Jun Song; Tianqing Zhu; Shen Li; Bo Ning; Ziyun Wang; Tomonari Koike; Masashi Shiomi; Enqi Liu; Luonan Chen; Jianglin Fan; Y Eugene Chen; Yixue Li
Journal:  Sci Rep       Date:  2016-06-01       Impact factor: 4.379

6.  A network-based meta-analysis for characterizing the genetic landscape of human aging.

Authors:  Hagen Blankenburg; Peter P Pramstaller; Francisco S Domingues
Journal:  Biogerontology       Date:  2017-12-21       Impact factor: 4.277

7.  MCM2-regulated functional networks in lung cancer by multi-dimensional proteomic approach.

Authors:  Chantal Hoi Yin Cheung; Chia-Lang Hsu; Kai-Pu Chen; Siao-Ting Chong; Chang-Hsun Wu; Hsuan-Cheng Huang; Hsueh-Fen Juan
Journal:  Sci Rep       Date:  2017-10-16       Impact factor: 4.379

8.  IDARE2-Simultaneous Visualisation of Multiomics Data in Cytoscape.

Authors:  Thomas Pfau; Mafalda Galhardo; Jake Lin; Thomas Sauter
Journal:  Metabolites       Date:  2021-05-06

9.  Molecular systems evaluation of oligomerogenic APP(E693Q) and fibrillogenic APP(KM670/671NL)/PSEN1(Δexon9) mouse models identifies shared features with human Alzheimer's brain molecular pathology.

Authors:  B Readhead; J-V Haure-Mirande; B Zhang; V Haroutunian; S Gandy; E E Schadt; J T Dudley; M E Ehrlich
Journal:  Mol Psychiatry       Date:  2015-11-10       Impact factor: 15.992

10.  Integrated analysis of numerous heterogeneous gene expression profiles for detecting robust disease-specific biomarkers and proposing drug targets.

Authors:  David Amar; Tom Hait; Shai Izraeli; Ron Shamir
Journal:  Nucleic Acids Res       Date:  2015-08-10       Impact factor: 16.971

View more

北京卡尤迪生物科技股份有限公司 © 2022-2023.