BACKGROUND
molecular biology has made great progress in recent years by measuring the abundance and characteristics of many kinds of molecules, often at a global level.
whole genomes have been sequenced, global mrna and mirna levels assessed, protein expression measured, phosphorylation and methylation states assayed.
many protein structures have been determined.
progress towards understanding the dynamic relations and interactions among these molecular components, however, has lagged significantly  <cit> .
it is precisely these complex system behaviors which must be understood in order to comprehensively predict and control cellular processes in health and disease.
causal explanations in molecular biology of sufficient depth and completeness to explain disease, and to create the basis for successful therapy, are almost never simple.
cancer, for example, is currently understood to consist of six separate processes, or “hallmarks”, each of which is controlled by redundant and overlapping pathways  <cit> .
even classic single gene disorders show variable age of onset and severity, apparently due to the influence of modifier genes  <cit> .
a recent theoretical framework establishes that the control of gene regulatory networks requires prior control of more than half the constituent nodes  <cit> .
phosphorylation networks exhibit similar complexity and resistance to manipulation  <cit> .
as we explore and map this complex terrain, using ever larger amounts of heterogeneous  data, network visualization tools integrated within a statistically powerful programming environment will prove indispensable.
rcytoscape provides one such set of tools.
many and diverse kinds of software will be needed in order to achieve prediction and control of cellular processes.
we distinguish two broad classes on the basis of novelty.
software for routine bioinformatics, in which well-studied algorithms are applied to well-understood kinds of data, can be distinguished from software required for novel bioinformatics and computational biology, in which the data are often less well understood, and for which new algorithms must be developed.
routine bioinformatics is often accomplished with web-based and point-and-click desktop applications.
gene set enrichment analysis , a java application offered by the broad institute calculates over-representation in curated gene data sets for an experimenter’s expression data: one loads mrna expression data from a file, chooses the gene set categories of interest, obtains a list of enriched categories.
no opportunity is provided to filter the input data, to transform it in possibly revealing ways, to correlate with related data, to display in the context of known gene and protein interactions, to apply experimental algorithms before and after the enrichment step.
novel bioinformatics and computational biology, however, require a programming language .
they depend upon robust and full-featured statistical and modeling libraries, easy access to many kinds of data and annotation, and strong visualization capabilities, harnessed together into a programming environment for exploration, modeling and analysis.
in a recent review of network display software incorporating high throughput molecular biology data  <cit>  gehlenborg et al.
conclude that “truly integrated visualization of systems biology data across the entire range of possible data types is still very much in its infancy.” with one notable exception, the software included in this review are point-and-click web or desktop applications.
.
the effective integration and visualization of large quantities of multiple kinds of data requires frequent recourse to statistical programming and exploratory visualization.
normalization techniques, for example, must be chosen and applied with caution, iteratively and provisionally, with frequent recourse to visual assessment when data from diverse sources are combined.
for the foreseeable future these integration and visualization activities will not be routine, will require programming and interactive engagement with the data, and will thus be beyond the capabilities of point-and-click software performing routinized analyses.
in addition to the above classification of software by novelty, we also distinguish, on another axis, different types of bioinformatic and computational biology activities.
drawing in part upon an nih classification  <cit>  these categories include: exploratory data analysis, confirmatory data analysis , statistical inference , mathematical modeling, and simulation.
listed in an ascending order of complexity and rigor, and sorted into what might be early, medium and late stage bioinformatic or computational research activities, in fact these activities are interleaved and repeated, in an improvised manner, throughout such research projects.
exploratory data analysis   <cit>  and information graphics  <cit>  are two related disciplines associated, respectively, with statistician john tukey and data visualization pioneer edward tufte.
together they provide the rationale for high quality network visualization, and describe the role it can play in novel bioinformatics and computational biology.
their combined claim may be summarized thus: that the judicious display and exploration of data contributes insight into the data and into possible causal relationships which may otherwise be missed.
john tukey: “ … are there, not as a technique, but rather as recognition that the picture-examining eye is the best finder we have of the wholly unanticipated”  <cit> .
as a proponent of good techniques for visualizations, tufte has said, “there is no such thing as information overload, just bad design.
if something is cluttered and/or confusing, fix your design”  <cit> .
integrating a powerful scripting language with network visualization software, as we argue for here, empowers tukey’s picture-examining eye, and makes possible tufte’s injunction to “fix your  design”.
thus the goal is to improve network visualization: to increase the ease and sophistication with which detailed molecular maps can be constructed, in order that they may contribute to all of the novel bioinformatic and computational biology, network-related activities listed above.
software
cytoscape, which we first released in  <dig>  <cit> , has become the standard open source network visualization software used in molecular biology  <cit> .
over the years it has been refined, extended, and has attracted a large number of users and developers.
the core data type is a network  having nodes and edges, and accompanied by any number of data attributes on those nodes and edges.
cytoscapes’s “vizmapper” translates node and edge data attributes into visible attributes .
a plugin architecture allows for extensions to the core code.
over one hundred plugins are available, providing access to many bioinformatic resources and analyses.
cytoscape, despite its many strengths, has not been well-suited to novel bioinformatics and computational biology, because it has lacked a full-featured, bioinformatically-capable scripting language.
three are three candidate open-source scripting languages in common use today: perl, python, and r. cytoscape’s scriptingpluginengine only supports languages implemented to run in the java virtual machine, thus ruling out perl, r and anything but a limited version of python .
ruby, javascript, groovy, clojure, and the aforementioned jython are supported, but these languages are little used in and somewhat limited for bioinformatics.
jython, for instance, is unable to run numpy, “the fundamental package for scientific computing with python”  <cit>  or to call out to other compiled code.
lacking a full-featured, bioinformatically-capable scripting language, the most effective way to extend the capabilities of cytoscape beyond those offered by the cytoscape core development team, and by cytoscape plugin writers, has been to write another plugin.
unfortunately, this is a task for a seasoned java software developer, and largely impractical and/or inefficient for research bioinformaticians and computational biologists, for two reasons.
first, java programming is complex and time-consuming: object inheritance must be understood, java classes designed and implemented, the cytoscape api grasped, the code compiled, classpaths resolved, and jar files dynamically loaded.
second, the new plugin will be subject to the same constraints and lack of flexibility found in all plugins and in cytoscape itself: only pre-conceived operations which can be accomplished via a point-and-click interface are permitted, with parameterization limited to the provided gui, and with the reproducibility of any analysis reduced to recording and repeating a precise series of mouse clicks.
cytoscape, in the absence of a strong bioinformatics scripting language, can be useful in routine bioinformatics, but is not well-suited for the practice of novel bioinformatics and computational biology.
with the appearance of the cytoscaperpc plugin in  <dig>  <cit>  full scripting finally became possible.
cytoscaperpc employs xmlrpc  <cit> , a well-known http-based inter-process communication protocol which is supported by the three top scripting language candidates, perl, python and r. for the first time, most of cytoscape’s point-and-click commands, and many other internal operations, could be accomplished by function calls from a scripting language, running in another process.
data and networks residing in cytoscape can in addition, be transmitted to the environment of the scripting language.
thus augmented, cytoscape becomes well-suited to novel bioinformatics and computational biology.
the first version of rcytoscape, using cytoscaperpc, appeared in the fall of  <dig>
to make these capabilities convenient to use, and to insulate rcytoscape’s programmer interface from changes to cytoscape api  one task remained: to create an r programing interface to cytoscape so that the details of the xmlrpc protocol are hidden, and so that cytoscape commands appears as “natural” operations in the scripting language.
thus, instead of
rcytoscape scripters can write
we chose r from among the three candidate languages.
perl was rejected because it is not interactive, and because its popularity within bioinformatics appears to have declined in recent years, perhaps due a perceived deficiency in statistical and modeling domains, for which bioinformaticians and computational biologists usually turn to python, r, or a compiled language such as c or c++.
python and r are both strong candidates for scripting cytoscape.
both work in interactive and ‘batch’ modes, and both are used in a wide variety of scientific and engineering domains.
they each support an interface to compiled languages  providing access to extra speed or special libraries as needed.
we selected r over python.
as the open source implementation of the s programming language, r has been shaped by more than  <dig> years of use in statistics, data mining, and numerical modeling.
though r has neither the syntactic elegance of python, nor the dynamic power of ruby, its long history, and its broad adoption as the standard open source “software environment for statistical computing and graphics”  <cit>  means that it offers unparalleled convenience and power for analyzing data.
python, while generally acknowledged to be the better-designed language, has always lagged r in features needed by those doing serious statistics, data-mining, and other data- and mathematically-oriented computing.
if mailing list volume is a reliable indicator, the r/bioconductor bioinformatics community is substantially more active than biopython  <cit> .
among data-mining and statistical programming languages, r in recent years has become the most popular  <cit> .
many basic and sophisticated statistical functions are built into the language itself ; these often embody the state of the art in these algorithms.
their easy availability in the language has for many years attracted those wanting to create new capabilities and analyses.
this positive feedback loop continues to this day: existing mathematical and visualization capabilities attract additional capabilities because those new capabilities are easier to create in r than in other languages.
for those working in the field of network inference, in statistically robust analysis of high throughput and next-generation sequencing data, r’s mathematical and visualization strengths confer a substantial advantage.
an integration of python and cytoscape will be useful, welcome and popular.
however, the statistical, data-mining, visualization and bioinformatic strengths and popularity of r, and the bioconductor project, led us to choose r as our scripting language, and to create a new bioconductor r package, “rcytoscape”  <cit> .
another strength of r over python - if only by a matter of degree - is software support for, and wide adoption of the practice of - “reproducible research”  <cit> .
r has evolved an integrated set of coding and data distribution practices, embodied in the standard r “package” structure, expressly designed to support reproducible research the r package is a standardized collection of directories and files, including r source code; c, c++ and fortran source code when applicable; documentation files with executable demonstration code snippets; any required data; unit tests to establish the reliability of the code; and not least, a “vignette”.
the latter is a text document which implements donald knuth’s “literate programming”  <cit> : r code is interspersed with narrative text which explains the logic and details of the analysis undertaken.
whenever the package is built or tested, the code is run, and a pdf version of the vignette is created.
a well-written vignette and its package thus convey everything an interested reader needs in order to reproduce an analysis.
it thus sets the stage for reliably disseminating data, software, and results.
we include such a package and vignette to complement the necessarily less detailed treatment of glioblastoma proneural tumors presented in the discussion section below.
as gehlenborg et al.
<cit>  emphasize, the assimilation and integration of diverse data types into network analysis and visualization is an urgent task.
with new types of molecular measurement data appearing frequently -- as seen in a large public release from the encode project  <cit>  in  <dig> -- an optimal environment will have easy access to the data and tools for analyzing it.
the open-source r-based bioconductor  <cit>  project, along with biopython and bioperl, have a long history of providing routine access to such data and tools.
in the case study we present below, our focus will be upon data visualization in the context of exploratory data analysis to demonstrate the cartographic capabilities of rcytoscape.
heterogeneous experimental data is marshaled and filtered in r, molecular pathways assembled, a sequence of interactive maps displayed in cytoscape, leading to the identification of molecular interaction patterns missed by the clustering analysis upon which the case study builds.
implementation
rcytoscape connects r and cytoscape using xmlrpc, a standard www protocol for transmitting messages and data between programs.
it is implemented in the ‘cytoscaperpc’ plugin and by the complementary open source rcytoscape package, written in r and freely available through the bioconductor web site.
nearly all of cytoscape’s operations appear as function calls in r. networks can be assembled from data marshaled in r from public or proprietary network databases and then displayed in cytoscape.
conversely, data and networks loaded into cytoscape using native cytoscape methods may be imported into an r session via a simple function call.
network layout and visual mapping for nodes and edges can be specified and applied.
zooming and selection, filtering based on attributes, animation  all become possible.
r is a complete, interpreted and batch-oriented programming environment, so network creation, manipulation, exploration and analysis can proceed one command at a time, or be combined into scripts and programs, encouraging reproducible analysis, and thus reproducible research.
by contrast, recreating visualizations in cytoscape, and any analyses performed through the traditional cytoscape combination of interactive commands and plugins, can only be accomplished by recapitulating a precise sequence of mouse clicks, which is error-prone and which restricts the dissemination of useful analyses.
another virtue of scripting control of cytoscape is the ease which with animations  can be made.
when a sequence of cytoscape maps are displayed, or when a single map is modified by scripted commands, an extra dimension of information is added.
this extra dimension may be time, based upon time-series experimental data, but it can equally well, for example, be cell-type, or treatment.
the underlying scripting and display techniques are the same: several frames are shown in sequence, and optionally saved as replayable images .
rcytoscape provides three methods for distributing  biomolecular maps, static or dynamic, each tailored to a different audience.
simple browser publishing is supported by exporting dynamic network images from rcytoscape into a web page.
for experienced cytoscape users, networks created with rcytoscape may be saved and shared as cytoscape session files.
in laboratory settings where some programming skill is available, and particularly where cross-laboratory collaborations are involved, code and data can be combined into easily shared r packages so that networks, experimental data, algorithms and visualization become ‘live documents’ shared and evolving over time .
with the release of cytoscape  <dig>  in february of  <dig>  a new application architecture is available.
with version  <dig> , expected in late  <dig>  built-in support for a “restful”  <cit>  inter-process communication protocol is planned, coupled to the new “taskfactory” api.
this will provide the basis for the next version of rcytoscape.
a native python scripting interface will very likely appear then as well.
however, even with the availability of native python scripting for cytoscape, r and rcytoscape will continue to offer unique capabilities, power and convenience due to r’s long history, and its current capabilities and popularity for doing bioinformatics and computational biology.
RESULTS
we demonstrate the synergistic capabilities of rcytoscape with a small biological case study.
.
verhaak et al.
used consensus average linkage clustering of gene expression and genomic abnormalities to distinguish four subclasses of glioblastoma multiforme  tumors.
interestingly, these data-derived subclasses correspond to the neural lineage of the tumor cells and, to a limited extent, to differing treatment strategies.
we restrict our attention to the least treatable of these four subclass: fifty-five tumors in the “proneural” class.
from these we select thirteen which best match the signature proposed by verhaak et al.
for this subclass: high expression and amplification of pdgfra.
we reason that if the pathway neighbors of pdgfra display heterogeneity in mrna expression, copy number and mutations, despite pdgfra consistency, that this heterogeneity may have implications for tumor treatment.
combined visual and simple statistical exploratory analysis does indeed reveal such heterogeneity.
complete code and data to reproduce the analysis described here is provided in the supplemental r package "proneuralheterogeneity" .
for narrative clarity and to economize on space, we present a typical rcytoscape session in “pseudocode”, leaving out the many fine-grained coding details.
in many cases, the pseudocode show here differs little from calls to functions provided in the supplemental proneuralheterogeneity package.
data retrieval
we use two r packages to retrieve selected kegg pathways and to obtain high throughput assay data from tcga.
these packages deliver r data objects to the rcytoscape session via a few function calls, returning standard data objects which are ready for further computation.
these simple steps contrast with traditional bioinformatic data retrieval, usually accomplished via web browsing and ftp, and followed by reformatting of the downloaded data before it is in a computable form.
we retrieved and combined three pathways from the many curated by kegg: “pathways in cancer”, “cell cycle” and “glioma”, eliminating redundant reactions, and creating a preliminary single network of molecular interactions with which to illuminate the tcga data.
this combined network consists primarily of signaling and regulatory relationships, and provides good coverage of the proneural tumor signature gene  and the signaling pathways in which it is involved.
use the cgdsr package to etrieve expression and genomic variation data for the genes in the combined kegg pathway.
these three tcga data tables created above contain one row for each geneid, and one column for each tumor sample in the tcga repository.
we are interested here only in those categorized as "proneural" and more specifically, only those which match or exceed the signature described in verhaak et al.
: log fold change mrna expression of the receptor tyrosine kinase pdgfra greater than  <dig>   and pdgfra copy number classified as “amplified”.
we call these signature-consistent tumors "strong proneural", and created a function to identify them whose details are elided here:
visualization begins by examining three tcga-derived assays  of each of the thirteen strong proneural tumors, projecting that data onto the cytoscape display of the combined kegg network.
since the network is large, individual details may be missed, but the broad characteristics, and heterogeneity of the tumors is easily seen.
“visual mapping” rules specify how node color, size and shape are to reflect the assay data.
each tumor is visualized in turn, and the result  can be found in additional file  <dig>
programmatic visual mapping
visual mapping rules are traditionally specified in cytoscape via a graphical user interface  but are arguably far easier to handle with r commands.
we learn the distribution of the mrna log-fold expression, first numerically , then visually, with a histogram.
we use this knowledge to parameterize node color mapping.
similarly, the distribution of copy number variation is mapped to node border color and thickness, conveying deletion and amplification.
amino acid substitutions are added to node labels  for the tumors in which they appear.
we use node shape to indicate molecule type .
finally, we devise a vizmapping rule for node size which uses an informal estimate of overall tumorigenic signifcance of each gene so that, for instance, a highly expressed, amplified gene with a non-synonymous mutation is rendered as a node with a large diameter.
network layout can be a complex problem.
automated algorithms, of which cytoscape offers a useful collection, have many strengths.
we find that these algorithms, though useful, can always be improved upon as we seek an optimal display for large and/or complex networks.
rcytoscape encourages a combined layout strategy: an appropriate automated cytoscape layout algorithm is applied in the early development stages of a project, and is then manually fine-tuned using direct placement of some nodes.
the final layout is saved for reuse in the future via a single function call:
any network displayed in cytoscape can be saved as an image, and any succession of such displays can be assembled into an animation easily viewed in a web browser.
three such animations will be found in additional file  <dig> ; additional file  <dig> ; additional file  <dig> .
two representative images from the first animation  are presented and discussed below.
to create the zoomed-in animation, select pdgfra, and its first two network neighbors, then zoom in on this subnetwork before running the data animation:
receptor tyrosine kinases
the animations created above, as well as the two static images  selected from the second sequence, reveal heterogeneous expression and copy number in the immediate network vicinity of pdgfra, the gene whose abnormalities define the proneural subtype.
pdgfra is a receptor tyrosine kinase , a class of proteins which, when constituitively activated, contribute to unrestrained cell growth and tumorigenesis.
a full discussion of rtks and strong proneural tumor heterogeneity will be found in additional file  <dig>  but we here briefly note that although both tumors exhibit amplified and over-expressed pdgfra, only tumor  <dig> shows the ligand pdgfb to be amplified and over-expressed as well, a phenomenon which suggests a possible autocrine loop, and a more important role for pdgrfa signaling than in tumor  <dig>  tumor  <dig>  by contrast, shows an over-expressed and amplified rtk ligand/receptor pair  which is inactive in tumor  <dig>  this contrast, which is immediately visible in the rcytoscape-created map, may have implications for the selection of therapeutic targets in the treatment of glioblastoma figure  <dig>
CONCLUSIONS
detailed, data-driven network visualization and the open-ended computational power and statistical richness of the r programming environment can be useful at all stages of analysis of biological data.
rcytoscape enables the construction of detailed molecular maps that reveal significant heterogeneity beyond statistically robust classifier consensus average linkage hierarchical clustering obtained by verhaak et al.
<cit> .
differences seen in the rcytoscape-derived maps suggest different autocrine loops may be active in proneural glioblastoma tumors, with two complimentary gene/protein pairs in each.
such a classification is valuable, and can set the stage for the careful characterization of individual tumors and design of new treatment strategies.
subsequent steps along the road to clinically useful prediction and control of these phenomena will involve more rounds of confirmatory and exploratory data analysis, simulation and modeling.
linking r with cytoscape has value for many different kinds of analyses beyond what is described here.
recently, grimes et al.,  <cit>  used rcytoscape to graph nodes in two and three dimensions using coordinates derived from dimension reduction  algorithms, and plot networks using protein-protein interaction edges merged from three different databases, setting visual properties for nodes and edges based on quantitative information from a lung cancer phosphoproteomic data set.
rcytoscape will be useful to anyone who wishes to add network visualization and analysis to the rich resources available in the r programming environment.
availability of supporting software and data
we include an r package “proneuralheterogeneity” in additional file  <dig>  which includes complete data, documentation, and unit-tested executable code with which to reproduce the two maps shown above.
code is also provided for the creation of more comprehensive networks, and for visualizing any number of the tcga gbm tumors, along with an animation showing each of the thirteen “strong proneural” tumors in a loop for comparison and exploration.
availability and requirements
project name: rcytoscape
project home page:http://bioconductor.org/packages/release/bioc/html/rcytoscape.html
operating system: platform independent
programming language: r
other requirements: r >=  <dig> , cytoscape >=  <dig> .0
license: gnu gpl-2
competing interests
there are no competing interests.
authors’ contributions
ps conceived, designed and wrote the software, and wrote the manuscript, mg contributed to the software design and the manuscript, bk contributed to the software design and the manuscript, jb advised in the software design and implementation, dg contributed to the manuscript.
all authors read and approved the final manuscript.
supplementary material
additional file 1
.
click here for file
additional file 2
in the context of a much larger collection of cancer-related networks).
click here for file
additional file 3
.
click here for file
additional file 4
.
click here for file
additional file 5
.
click here for file
additional file 6
.
click here for file
acknowledgements
the authors thank their colleagues at their respective institutions, especially vésteinn Þórsson and vangelis simeonidis of the institute for systems biology, and alexander skupin of the luxembourg centre for systems biomedicine, for their helpful suggestions concerning earlier drafts of the paper, and to the bioconductor community for their frequent help and many collaborations.

 molecular biology has made great progress in recent years by measuring the abundance and characteristics of many kinds of molecules, often at a global level. whole genomes have been sequenced, global mrna and mirna levels assessed, protein expression measured, phosphorylation and methylation states assayed. many protein structures have been determined. progress towards understanding the dynamic relations and interactions among these molecular components, however, has lagged significantly. it is precisely these complex system behaviors which must be understood in order to comprehensively predict and control cellular processes in health and disease. causal explanations in molecular biology of sufficient depth and completeness to explain disease, and to create the basis for successful therapy, are almost never simple. cancer, for example, is currently understood to consist of six separate processes, or “hallmarks”, each of which is controlled by redundant and overlapping pathways. even classic single gene disorders show variable age of onset and severity, apparently due to the influence of modifier genes. a recent theoretical framework establishes that the control of gene regulatory networks requires prior control of more than half the constituent nodes. phosphorylation networks exhibit similar complexity and resistance to manipulation. as we explore and map this complex terrain, using ever larger amounts of heterogeneous data, network visualization tools integrated within a statistically powerful programming environment will prove indispensable. rcytoscape provides one such set of tools. many and diverse kinds of software will be needed in order to achieve prediction and control of cellular processes. we distinguish two broad classes on the basis of novelty. software for routine bioinformatics, in which well-studied algorithms are applied to well-understood kinds of data, can be distinguished from software required for novel bioinformatics and computational biology, in which the data are often less well understood, and for which new algorithms must be developed. routine bioinformatics is often accomplished with web-based and point-and-click desktop applications. gene set enrichment analysis, a java application offered by the broad institute calculates over-representation in curated gene data sets for an experimenter’s expression data: one loads mrna expression data from a file, chooses the gene set categories of interest, obtains a list of enriched categories. no opportunity is provided to filter the input data, to transform it in possibly revealing ways, to correlate with related data, to display in the context of known gene and protein interactions, to apply experimental algorithms before and after the enrichment step. novel bioinformatics and computational biology, however, require a programming language. they depend upon robust and full-featured statistical and modeling libraries, easy access to many kinds of data and annotation, and strong visualization capabilities, harnessed together into a programming environment for exploration, modeling and analysis. in a recent review of network display software incorporating high throughput molecular biology data gehlenborg et al. conclude that “truly integrated visualization of systems biology data across the entire range of possible data types is still very much in its infancy.” with one notable exception, the software included in this review are point-and-click web or desktop applications.. the effective integration and visualization of large quantities of multiple kinds of data requires frequent recourse to statistical programming and exploratory visualization. normalization techniques, for example, must be chosen and applied with caution, iteratively and provisionally, with frequent recourse to visual assessment when data from diverse sources are combined. for the foreseeable future these integration and visualization activities will not be routine, will require programming and interactive engagement with the data, and will thus be beyond the capabilities of point-and-click software performing routinized analyses. in addition to the above classification of software by novelty, we also distinguish, on another axis, different types of bioinformatic and computational biology activities. drawing in part upon an nih classification these categories include: exploratory data analysis, confirmatory data analysis, statistical inference, mathematical modeling, and simulation. listed in an ascending order of complexity and rigor, and sorted into what might be early, medium and late stage bioinformatic or computational research activities, in fact these activities are interleaved and repeated, in an improvised manner, throughout such research projects. exploratory data analysis and information graphics are two related disciplines associated, respectively, with statistician john tukey and data visualization pioneer edward tufte. together they provide the rationale for high quality network visualization, and describe the role it can play in novel bioinformatics and computational biology. their combined claim may be summarized thus: that the judicious display and exploration of data contributes insight into the data and into possible causal relationships which may otherwise be missed. john tukey: “ … are there, not as a technique, but rather as recognition that the picture-examining eye is the best finder we have of the wholly unanticipated”. as a proponent of good techniques for visualizations, tufte has said, “there is no such thing as information overload, just bad design. if something is cluttered and/or confusing, fix your design”. integrating a powerful scripting language with network visualization software, as we argue for here, empowers tukey’s picture-examining eye, and makes possible tufte’s injunction to “fix your design”. thus the goal is to improve network visualization: to increase the ease and sophistication with which detailed molecular maps can be constructed, in order that they may contribute to all of the novel bioinformatic and computational biology, network-related activities listed above. software cytoscape, which we first released in, has become the standard open source network visualization software used in molecular biology. over the years it has been refined, extended, and has attracted a large number of users and developers. the core data type is a network having nodes and edges, and accompanied by any number of data attributes on those nodes and edges. cytoscapes’s “vizmapper” translates node and edge data attributes into visible attributes. a plugin architecture allows for extensions to the core code. over one hundred plugins are available, providing access to many bioinformatic resources and analyses. cytoscape, despite its many strengths, has not been well-suited to novel bioinformatics and computational biology, because it has lacked a full-featured, bioinformatically-capable scripting language. three are three candidate open-source scripting languages in common use today: perl, python, and r. cytoscape’s scriptingpluginengine only supports languages implemented to run in the java virtual machine, thus ruling out perl, r and anything but a limited version of python. ruby, javascript, groovy, clojure, and the aforementioned jython are supported, but these languages are little used in and somewhat limited for bioinformatics. jython, for instance, is unable to run numpy, “the fundamental package for scientific computing with python” or to call out to other compiled code. lacking a full-featured, bioinformatically-capable scripting language, the most effective way to extend the capabilities of cytoscape beyond those offered by the cytoscape core development team, and by cytoscape plugin writers, has been to write another plugin. unfortunately, this is a task for a seasoned java software developer, and largely impractical and/or inefficient for research bioinformaticians and computational biologists, for two reasons. first, java programming is complex and time-consuming: object inheritance must be understood, java classes designed and implemented, the cytoscape api grasped, the code compiled, classpaths resolved, and jar files dynamically loaded. second, the new plugin will be subject to the same constraints and lack of flexibility found in all plugins and in cytoscape itself: only pre-conceived operations which can be accomplished via a point-and-click interface are permitted, with parameterization limited to the provided gui, and with the reproducibility of any analysis reduced to recording and repeating a precise series of mouse clicks. cytoscape, in the absence of a strong bioinformatics scripting language, can be useful in routine bioinformatics, but is not well-suited for the practice of novel bioinformatics and computational biology. with the appearance of the cytoscaperpc plugin in full scripting finally became possible. cytoscaperpc employs xmlrpc, a well-known http-based inter-process communication protocol which is supported by the three top scripting language candidates, perl, python and r. for the first time, most of cytoscape’s point-and-click commands, and many other internal operations, could be accomplished by function calls from a scripting language, running in another process. data and networks residing in cytoscape can in addition, be transmitted to the environment of the scripting language. thus augmented, cytoscape becomes well-suited to novel bioinformatics and computational biology. the first version of rcytoscape, using cytoscaperpc, appeared in the fall of to make these capabilities convenient to use, and to insulate rcytoscape’s programmer interface from changes to cytoscape api one task remained: to create an r programing interface to cytoscape so that the details of the xmlrpc protocol are hidden, and so that cytoscape commands appears as “natural” operations in the scripting language. thus, instead of rcytoscape scripters can write we chose r from among the three candidate languages. perl was rejected because it is not interactive, and because its popularity within bioinformatics appears to have declined in recent years, perhaps due a perceived deficiency in statistical and modeling domains, for which bioinformaticians and computational biologists usually turn to python, r, or a compiled language such as c or c++. python and r are both strong candidates for scripting cytoscape. both work in interactive and ‘batch’ modes, and both are used in a wide variety of scientific and engineering domains. they each support an interface to compiled languages providing access to extra speed or special libraries as needed. we selected r over python. as the open source implementation of the s programming language, r has been shaped by more than years of use in statistics, data mining, and numerical modeling. though r has neither the syntactic elegance of python, nor the dynamic power of ruby, its long history, and its broad adoption as the standard open source “software environment for statistical computing and graphics” means that it offers unparalleled convenience and power for analyzing data. python, while generally acknowledged to be the better-designed language, has always lagged r in features needed by those doing serious statistics, data-mining, and other data- and mathematically-oriented computing. if mailing list volume is a reliable indicator, the r/bioconductor bioinformatics community is substantially more active than biopython. among data-mining and statistical programming languages, r in recent years has become the most popular. many basic and sophisticated statistical functions are built into the language itself; these often embody the state of the art in these algorithms. their easy availability in the language has for many years attracted those wanting to create new capabilities and analyses. this positive feedback loop continues to this day: existing mathematical and visualization capabilities attract additional capabilities because those new capabilities are easier to create in r than in other languages. for those working in the field of network inference, in statistically robust analysis of high throughput and next-generation sequencing data, r’s mathematical and visualization strengths confer a substantial advantage. an integration of python and cytoscape will be useful, welcome and popular. however, the statistical, data-mining, visualization and bioinformatic strengths and popularity of r, and the bioconductor project, led us to choose r as our scripting language, and to create a new bioconductor r package, “rcytoscape”. another strength of r over python - if only by a matter of degree - is software support for, and wide adoption of the practice of - “reproducible research”. r has evolved an integrated set of coding and data distribution practices, embodied in the standard r “package” structure, expressly designed to support reproducible research the r package is a standardized collection of directories and files, including r source code; c, c++ and fortran source code when applicable; documentation files with executable demonstration code snippets; any required data; unit tests to establish the reliability of the code; and not least, a “vignette”. the latter is a text document which implements donald knuth’s “literate programming”: r code is interspersed with narrative text which explains the logic and details of the analysis undertaken. whenever the package is built or tested, the code is run, and a pdf version of the vignette is created. a well-written vignette and its package thus convey everything an interested reader needs in order to reproduce an analysis. it thus sets the stage for reliably disseminating data, software, and results. we include such a package and vignette to complement the necessarily less detailed treatment of glioblastoma proneural tumors presented in the discussion section below. as gehlenborg et al. emphasize, the assimilation and integration of diverse data types into network analysis and visualization is an urgent task. with new types of molecular measurement data appearing frequently -- as seen in a large public release from the encode project in -- an optimal environment will have easy access to the data and tools for analyzing it. the open-source r-based bioconductor project, along with biopython and bioperl, have a long history of providing routine access to such data and tools. in the case study we present below, our focus will be upon data visualization in the context of exploratory data analysis to demonstrate the cartographic capabilities of rcytoscape. heterogeneous experimental data is marshaled and filtered in r, molecular pathways assembled, a sequence of interactive maps displayed in cytoscape, leading to the identification of molecular interaction patterns missed by the clustering analysis upon which the case study builds. implementation rcytoscape connects r and cytoscape using xmlrpc, a standard www protocol for transmitting messages and data between programs. it is implemented in the ‘cytoscaperpc’ plugin and by the complementary open source rcytoscape package, written in r and freely available through the bioconductor web site. nearly all of cytoscape’s operations appear as function calls in r. networks can be assembled from data marshaled in r from public or proprietary network databases and then displayed in cytoscape. conversely, data and networks loaded into cytoscape using native cytoscape methods may be imported into an r session via a simple function call. network layout and visual mapping for nodes and edges can be specified and applied. zooming and selection, filtering based on attributes, animation all become possible. r is a complete, interpreted and batch-oriented programming environment, so network creation, manipulation, exploration and analysis can proceed one command at a time, or be combined into scripts and programs, encouraging reproducible analysis, and thus reproducible research. by contrast, recreating visualizations in cytoscape, and any analyses performed through the traditional cytoscape combination of interactive commands and plugins, can only be accomplished by recapitulating a precise sequence of mouse clicks, which is error-prone and which restricts the dissemination of useful analyses. another virtue of scripting control of cytoscape is the ease which with animations can be made. when a sequence of cytoscape maps are displayed, or when a single map is modified by scripted commands, an extra dimension of information is added. this extra dimension may be time, based upon time-series experimental data, but it can equally well, for example, be cell-type, or treatment. the underlying scripting and display techniques are the same: several frames are shown in sequence, and optionally saved as replayable images. rcytoscape provides three methods for distributing biomolecular maps, static or dynamic, each tailored to a different audience. simple browser publishing is supported by exporting dynamic network images from rcytoscape into a web page. for experienced cytoscape users, networks created with rcytoscape may be saved and shared as cytoscape session files. in laboratory settings where some programming skill is available, and particularly where cross-laboratory collaborations are involved, code and data can be combined into easily shared r packages so that networks, experimental data, algorithms and visualization become ‘live documents’ shared and evolving over time. with the release of cytoscape in february of a new application architecture is available. with version, expected in late built-in support for a “restful” inter-process communication protocol is planned, coupled to the new “taskfactory” api. this will provide the basis for the next version of rcytoscape. a native python scripting interface will very likely appear then as well. however, even with the availability of native python scripting for cytoscape, r and rcytoscape will continue to offer unique capabilities, power and convenience due to r’s long history, and its current capabilities and popularity for doing bioinformatics and computational biology.  we demonstrate the synergistic capabilities of rcytoscape with a small biological case study.. verhaak et al. used consensus average linkage clustering of gene expression and genomic abnormalities to distinguish four subclasses of glioblastoma multiforme tumors. interestingly, these data-derived subclasses correspond to the neural lineage of the tumor cells and, to a limited extent, to differing treatment strategies. we restrict our attention to the least treatable of these four subclass: fifty-five tumors in the “proneural” class. from these we select thirteen which best match the signature proposed by verhaak et al. for this subclass: high expression and amplification of pdgfra. we reason that if the pathway neighbors of pdgfra display heterogeneity in mrna expression, copy number and mutations, despite pdgfra consistency, that this heterogeneity may have implications for tumor treatment. combined visual and simple statistical exploratory analysis does indeed reveal such heterogeneity. complete code and data to reproduce the analysis described here is provided in the supplemental r package "proneuralheterogeneity". for narrative clarity and to economize on space, we present a typical rcytoscape session in “pseudocode”, leaving out the many fine-grained coding details. in many cases, the pseudocode show here differs little from calls to functions provided in the supplemental proneuralheterogeneity package. data retrieval we use two r packages to retrieve selected kegg pathways and to obtain high throughput assay data from tcga. these packages deliver r data objects to the rcytoscape session via a few function calls, returning standard data objects which are ready for further computation. these simple steps contrast with traditional bioinformatic data retrieval, usually accomplished via web browsing and ftp, and followed by reformatting of the downloaded data before it is in a computable form. we retrieved and combined three pathways from the many curated by kegg: “pathways in cancer”, “cell cycle” and “glioma”, eliminating redundant reactions, and creating a preliminary single network of molecular interactions with which to illuminate the tcga data. this combined network consists primarily of signaling and regulatory relationships, and provides good coverage of the proneural tumor signature gene and the signaling pathways in which it is involved. use the cgdsr package to etrieve expression and genomic variation data for the genes in the combined kegg pathway. these three tcga data tables created above contain one row for each geneid, and one column for each tumor sample in the tcga repository. we are interested here only in those categorized as "proneural" and more specifically, only those which match or exceed the signature described in verhaak et al.: log fold change mrna expression of the receptor tyrosine kinase pdgfra greater than and pdgfra copy number classified as “amplified”. we call these signature-consistent tumors "strong proneural", and created a function to identify them whose details are elided here: visualization begins by examining three tcga-derived assays of each of the thirteen strong proneural tumors, projecting that data onto the cytoscape display of the combined kegg network. since the network is large, individual details may be missed, but the broad characteristics, and heterogeneity of the tumors is easily seen. “visual mapping” rules specify how node color, size and shape are to reflect the assay data. each tumor is visualized in turn, and the result can be found in additional file programmatic visual mapping visual mapping rules are traditionally specified in cytoscape via a graphical user interface but are arguably far easier to handle with r commands. we learn the distribution of the mrna log-fold expression, first numerically, then visually, with a histogram. we use this knowledge to parameterize node color mapping. similarly, the distribution of copy number variation is mapped to node border color and thickness, conveying deletion and amplification. amino acid substitutions are added to node labels for the tumors in which they appear. we use node shape to indicate molecule type. finally, we devise a vizmapping rule for node size which uses an informal estimate of overall tumorigenic signifcance of each gene so that, for instance, a highly expressed, amplified gene with a non-synonymous mutation is rendered as a node with a large diameter. network layout can be a complex problem. automated algorithms, of which cytoscape offers a useful collection, have many strengths. we find that these algorithms, though useful, can always be improved upon as we seek an optimal display for large and/or complex networks. rcytoscape encourages a combined layout strategy: an appropriate automated cytoscape layout algorithm is applied in the early development stages of a project, and is then manually fine-tuned using direct placement of some nodes. the final layout is saved for reuse in the future via a single function call: any network displayed in cytoscape can be saved as an image, and any succession of such displays can be assembled into an animation easily viewed in a web browser. three such animations will be found in additional file; additional file; additional file. two representative images from the first animation are presented and discussed below. to create the zoomed-in animation, select pdgfra, and its first two network neighbors, then zoom in on this subnetwork before running the data animation: receptor tyrosine kinases the animations created above, as well as the two static images selected from the second sequence, reveal heterogeneous expression and copy number in the immediate network vicinity of pdgfra, the gene whose abnormalities define the proneural subtype. pdgfra is a receptor tyrosine kinase, a class of proteins which, when constituitively activated, contribute to unrestrained cell growth and tumorigenesis. a full discussion of rtks and strong proneural tumor heterogeneity will be found in additional file but we here briefly note that although both tumors exhibit amplified and over-expressed pdgfra, only tumor shows the ligand pdgfb to be amplified and over-expressed as well, a phenomenon which suggests a possible autocrine loop, and a more important role for pdgrfa signaling than in tumor tumor by contrast, shows an over-expressed and amplified rtk ligand/receptor pair which is inactive in tumor this contrast, which is immediately visible in the rcytoscape-created map, may have implications for the selection of therapeutic targets in the treatment of glioblastoma figure   detailed, data-driven network visualization and the open-ended computational power and statistical richness of the r programming environment can be useful at all stages of analysis of biological data. rcytoscape enables the construction of detailed molecular maps that reveal significant heterogeneity beyond statistically robust classifier consensus average linkage hierarchical clustering obtained by verhaak et al.. differences seen in the rcytoscape-derived maps suggest different autocrine loops may be active in proneural glioblastoma tumors, with two complimentary gene/protein pairs in each. such a classification is valuable, and can set the stage for the careful characterization of individual tumors and design of new treatment strategies. subsequent steps along the road to clinically useful prediction and control of these phenomena will involve more rounds of confirmatory and exploratory data analysis, simulation and modeling. linking r with cytoscape has value for many different kinds of analyses beyond what is described here. recently, grimes et al., used rcytoscape to graph nodes in two and three dimensions using coordinates derived from dimension reduction algorithms, and plot networks using protein-protein interaction edges merged from three different databases, setting visual properties for nodes and edges based on quantitative information from a lung cancer phosphoproteomic data set. rcytoscape will be useful to anyone who wishes to add network visualization and analysis to the rich resources available in the r programming environment. availability of supporting software and data we include an r package “proneuralheterogeneity” in additional file which includes complete data, documentation, and unit-tested executable code with which to reproduce the two maps shown above. code is also provided for the creation of more comprehensive networks, and for visualizing any number of the tcga gbm tumors, along with an animation showing each of the thirteen “strong proneural” tumors in a loop for comparison and exploration. availability and requirements project name: rcytoscape project home page:http://bioconductor.org/packages/release/bioc/html/rcytoscape.html operating system: platform independent programming language: r other requirements: r >=, cytoscape >=.0 license: gnu gpl-2 competing interests there are no competing interests. authors’ contributions ps conceived, designed and wrote the software, and wrote the manuscript, mg contributed to the software design and the manuscript, bk contributed to the software design and the manuscript, jb advised in the software design and implementation, dg contributed to the manuscript. all authors read and approved the final manuscript. supplementary material additional file 1. click here for file additional file 2 in the context of a much larger collection of cancer-related networks). click here for file additional file 3. click here for file additional file 4. click here for file additional file 5. click here for file additional file 6. click here for file acknowledgements the authors thank their colleagues at their respective institutions, especially vésteinn Þórsson and vangelis simeonidis of the institute for systems biology, and alexander skupin of the luxembourg centre for systems biomedicine, for their helpful suggestions concerning earlier drafts of the paper, and to the bioconductor community for their frequent help and many collaborations.
network visualizations -- molecular maps -- created from an open-ended programming environment rich in statistical power and data-handling facilities, such as rcytoscape, will play an essential role in this progression. progress in bioinformatics and computational biology depends upon exploratory and confirmatory data analysis, upon inference, and upon modeling.
 biomolecular pathways and networks are dynamic and complex, and the perturbations to them which cause disease are often multiple, heterogeneous and contingent. pathway and network visualizations, rendered on a computer or published on paper, however, tend to be static, lacking in detail, and ill-equipped to explore the variety and quantities of data available today, and the complex causes we seek to understand.  rcytoscape integrates r and cytoscape. rcytoscape extends cytoscape's functionality beyond what is possible with the cytoscape graphical user interface. to illustrate the power of rcytoscape, a portion of the glioblastoma multiforme data set from the cancer genome atlas is examined. network visualization reveals previously unreported patterns in the data suggesting heterogeneous signaling mechanisms active in gbm proneural tumors, with possible clinical relevance.  progress in bioinformatics and computational biology depends upon exploratory and confirmatory data analysis, upon inference, and upon modeling. these activities will eventually permit the prediction and control of complex biological systems. network visualizations -- molecular maps -- created from an open-ended programming environment rich in statistical power and data-handling facilities, such as rcytoscape, will play an essential role in this progression. biological networksvisualizationexploratory data analysisstatistical programmingbioinformatics 