|Home | About | Journals | Submit | Contact Us | Français|
Cytoscape is a free software package for visualizing, modeling and analyzing molecular and genetic interaction networks. This protocol explains how to use Cytoscape to analyze the results of mRNA expression profiling, and other functional genomics and proteomics experiments, in the context of an interaction network obtained for genes of interest. Five major steps are described: (i) obtaining a gene or protein network, (ii) displaying the network using layout algorithms, (iii) integrating with gene expression and other functional attributes, (iv) identifying putative complexes and functional modules and (v) identifying enriched Gene Ontology annotations in the network. These steps provide a broad sample of the types of analyses performed by Cytoscape.
Functional genomic and proteomic techniques enable routine measurement of expression profiles and functional interactions from the cells and tissues of many different organisms1–4. These measurements have significant potential to map cellular processes and their dynamics, given the appropriate computer software to filter and interpret the resulting large amount of data. Commonly used expression analysis methods identify active biological processes from expression profiles by finding enriched gene annotation terms in the lists of differentially expressed genes5–8. By combining expression profiles with cellular network information, including protein–protein and protein–DNA interactions, we can begin to explain the control mechanisms underlying the observed changes in activity of a biological process. For instance we can identify a transcription factor known to regulate a set of affected genes.
An important benefit of integrating expression and network data is biologically relevant signals supported by both data types are more likely to be correct than those supported from either data source alone. This is important because expression profiles can be noisy and difficult to reproduce when expression levels are low9, while protein interaction assays are known to contain false positives and negatives. For instance, it is estimated that up to 50% of unfiltered yeast two-hybrid data are spurious10, although this is improving as experimental protocols and automated reliability measures that combine multiple data sets of a given type evolve11,12.
Many sources of expression profiles and cellular networks exist. The Gene Expression Omnibus13 and ArrayExpress14 are both large public repositories of gene expression profiles. Protein–protein interactions mapped either by focused studies or by high-throughput techniques are increasingly available in public repositories such as IntAct15, HPRD16 and MINT17 (as reviewed in ref. 18). Protein–DNA interactions mapped at the genome scale using ChIP-Chip and ChIPSeq technology19 provide potential links between transcription factors and their regulated genes. When information is not available in databases but is in the literature, text-mining techniques can extract functional relationships between recognized genes that, while not always accurate, are useful for analysis in aggregate20. In these networks, two genes are linked if they are frequently mentioned in the same sentence21. This link may indicate a biochemical association, such as catalysis, or a genetic, colocalization or coexpression relationship. Literature association networks are also useful as a general literature search tool, since each link is tied to the supporting publication. These public data repositories are growing rapidly as the underlying measurement technology improves. For example, the HPRD repository more than doubled in size between 2003 and 200522.
A number of software tools are available for network visualization and analysis, including Osprey23, VisANT24, CellDesigner25 GenMAPP26, PIANA27, ProViz28 BioLayout29, PATIKA30 and Cytoscape31. Each tool has a distinct set of features, which are highlighted in Table 1. Here, we describe the application of Cytoscape within a workflow for integration of functional genomics data with biological networks.
Cytoscape is freely distributed under the open-source GNU Lesser General Public License, which allows any use of the software, including feature extension by programming (http://www.gnu.org/licenses/lgpl.html). In Cytoscape nodes representing biological entities, such as proteins or genes, are connected with edges representing pairwise interactions, such as experimentally determined protein–protein interactions (Fig. 1). Nodes and edges can have associated data attributes describing properties of the protein or interaction. A key feature of Cytoscape is its ability to set visual aspects of nodes and edges, such as shape, color and size, based on attribute values. This data-to-visual attribute mapping allows biologists to synoptically view multiple types of data in a network context. Additionally, Cytoscape allows users to extend its functionality by creating or downloading additional software modules known as ‘plugins’. These plugins provide additional functionality in areas such as network data query and download services32–35; network data integration and filtering12; attribute-directed network layout36,37; Gene Ontology (GO) enrichment analysis7; and network motif38,39, functional module40–42, protein complex43 or domain interaction detection44. Links to these plugins can be found at http://www.cytoscape.org. Altogether, Cytoscape and its plugins provide a powerful tool kit designed to help researchers answer specific biological questions using large amounts of cellular network and molecular profiling information.
This protocol is modular in its organization, and the five modules can be followed sequentially or as stand-alone protocols (the modular organization is shown schematically in Fig. 2). The first module, ‘Obtain network data’, describes methods to build networks for genes of interest by querying protein interaction databases and text-mining data sources. ‘Explore network and generate layout’ introduces basic aspects of Cytoscape operation, including network navigation and layout. ‘Annotate with attribute and expression data’ shows how to link expression profile data to the network for visualization and analysis. This module uses mRNA expression data as an example, but the steps outlined apply to any form of molecular profile such as protein levels. ‘Analyze network features’ explains how to perform analytical methods that identify putative functional or structural modules within the network that may, for instance, highlight protein complexes active under a profiled experimental condition. Finally, ‘Detect enriched gene functions’ illustrates methods to identify enriched gene functions, such as those characteristic of biological processes, in previously identified sets of interesting genes or network regions.
These analysis steps have proven useful in multiple studies, such as analyzing networks of genetic interactions45–48, gene regulatory events49,50 and protein–protein interactions51,52, cellular network organization53,54 and evolution55 and determining pathways involved in atherosclerosis56. A sample protein network and mRNA expression profile resulting from gene knockouts that perturb galactose metabolism in S. cerevisiae57 is provided to illustrate the protocol.
We now turn to each of the five modules in detail, presenting the rationale for each portion of the protocol and indicating viable alternative techniques.
This section describes three ways to import network data into Cytoscape.
The first method is to query protein interaction databases such as cPath33 with a list of genes of interest. cPath queries the IntAct15 and MINT17 databases. This is an appropriate method for users who are interested in assessing the connections between genes with significant experimental responses, in well-studied organisms such as S. cerevisiae or Homo sapiens. Cytoscape users can interrogate additional protein interaction databases via MiMi34 or BioNetBuilder32, plugins that are similar in application to cPath. In each of these cases, following the steps in this workflow section yields a network that contains known and putative functional associations between the genes of interest.
The second method is to build a text-mining association network using the Agilent Literature Search plugin21. This method is most appropriate for those who are working in organisms that are not well represented in protein interaction databases, or want to restrict the network to associations observed only in specific contexts. For Literature Search the user builds a set of queries by entering terms, such as gene names, and contexts, such as an organism or disease name. The query set is submitted to selected search engines, for example PubMed or OMIM. The resulting documents are fetched, parsed into sentences, and analyzed for known interaction terms, like ‘binding’ or ‘activate’. Agilent Literature Search uses a lexicon set for defining gene names (concepts) and aliases, drawn from Entrez Gene, and interaction terms (verbs) of interest. An association is extracted for every sentence containing at least two concepts and one verb. Associations are then converted into interactions with corresponding sentences and source hyperlinks, and added to a Cytoscape network. Interaction network and text-mining association network data are complementary: protein interaction databases contain experimentally determined interactions; whereas text mining association networks contain more general association types and offer an alternative network source where interaction data are limited.
The third method described for importing network data in to Cytoscape is to import a network file, such as a SIF (Simple Interaction Format) file. The SIF file format is detailed in Box 1. These files are straightforward for a user to create with a standard text editor. SIF file import is the most appropriate method for users who want to focus their analysis on network data identified in advance, such as those who are interested in the impact of the experimental conditions on sets of specific interactions or pathways.
Cytoscape can import and export data in a variety of formats, from simple delimited text formats to XML and other sophisticated formats for sharing data with other programs. This box provides a brief overview of these formats. For complete information, please refer to the Cytoscape manual at http://www.cytoscape.org/.
The standard file that Cytoscape opens and saves is the Cytoscape Session File (.cys). This file stores all information in your current session including multiple network layouts, attribute values and setting information. Cytoscape can also import network data in the following formats:
For network export, Cytoscape can output SIF, GML, XGMML and PSI-MI formats. Users may also create an image file of their network data via File → Export → Network view as graphics. This feature includes many standard image formats, including JPEG, PNG and PDF.
The SIF format is a straightforward format to allow users to define network data with a text editor. Each line of the file contains three or more tokens. The first token is the source node. The second token is the interaction type. This token is an arbitrary text string that describes the interaction between the two nodes. The third token, and all subsequent tokens on the same line, specify the target nodes. A sample file might look like this:
nodeA interactionType1 nodeB
nodeA interactionType2 nodeC
In this network nodeA has an edge to nodeB labeled interactionType1; nodeA has an edge to nodeC labeled interactionType2; nodeF is defined but has no edges. In practice the nodes will be the names of proteins or genes in the network, and the labels given to the interaction type will be some tag that defines that relationship, such as ‘protein-protein’, ‘degrades’ or ‘phosphorylates’. Because of its basic text format, a SIF file is easily created either manually by a user (e.g., in Excel) or programmatically by a text-processing script. The Supplementary Data contain a sample SIF file, galFiltered.sif (Supplementary Data 2).
The GML format stores information on the network connectivity (like SIF) but also preserves the visual layout and appearance of the network in the Cytoscape view. The XGMML format is the XML extension of the GML format and is generally preferable to GML. These formats are not amenable to human editing. However, once a network is loaded into Cytoscape from a (human-edited) SIF file, the attributes and visual style settings can be modified using the GUI interface. Then the network can be stored along with its visual properties and data attributes using the GML or XGMML format. Cytoscape can also read files in the SBML, BioPAX, and PSI-MI data exchange formats, allowing the use of networks created in other programs.
Data attributes on nodes and edges can be imported from delimited text files or Excel spreadsheets via Cytoscape’s Table Import functionality. Text files are given the filename suffix .noa for Node Attribute and .eda for Edge Attribute. For a node attribute, a sample .noa file might appear like this:
nodeA = value1
nodeB = value2
nodeC = value1
The first line is the name of the attribute, for example, ‘SubcellularLocation’. Each subsequent line contains the name of the node, an equal to sign and the node’s attribute value. Attribute values can be numeric or textual such as ‘4.12’ or ‘nucleus’. An edge attribute file (.eda) is formatted similarly, where the edge name is specified by the source node, the interaction value in parentheses and the target node. For example:
nodeA (interactionType) nodeB = 0.56
nodeB (interactionType) nodeC = 0.918
nodeB (interactionType) nodeA = 0.3412
Each attribute is stored in a separate file.
Cytoscape reads expression data from tab-delimited text files that can be exported from a spreadsheet program or created by the user in a text editor. These files must be renamed to have the extension either ‘.mrna’ or ‘.pvals’ to be recognized by Cytoscape. The choice of extension does not matter between these two. The data are organized as a matrix, with each row representing the expression results for one gene/protein in the network (Fig. 3). The first row provides column labels. The first column holds the gene/protein identifier, while the second column contains arbitrary text, such as a descriptive annotation. The subsequent columns contain expression data: one experiment per column, with the experiment names provided in the first row. If the expression data consist of one measure per gene per experiment, then there is one column per experiment. If the data also contain P-values or other significance measures, as generated by expression analysis packages such as RMA73, then each experiment is represented with two columns: the first is assumed to contain the expression measure, the second contains the significance measure, and the two columns must have exactly the same label:
GeneA identifies a gene, labelA provides a descriptive name, valueA_1 contains its expression level as measured in Experiment1, valueA_2 contains its expression level as measured in Experiment2, and pvalueA_1 and pvalueA_2 contain P-values (or other measures of significance of differential expression) for Experiment1 and Experiment2, respectively. The P-value columns are optional for most Cytoscape functionality. However, to identify active modules with the jActiveModules plugin, the expression data must contain P-values of significance ranging between 0 (most significant) and 1 (least significant). The Supplementary Data contain a sample expression data file, galExpData.pvals (Supplementary Data 1). Figure 3 illustrates the first lines of this file.
In addition to the import methods described in this protocol, Cytoscape users can also import pathways from repositories such as KEGG58, Reactome59 via the PSI-MI, BioPAX, or SBML data exchange formats (as reviewed in ref. 60), although such pathway data contain non-pairwise interactions between molecules. For instance, there is a single interaction between multiple substrates and products in a biochemical reaction, which must be mapped to pairwise interactions in Cytoscape.
After importing interaction data, the user may optionally filter the resulting network to reduce the network size by selecting just the types of network information of interest. For instance, the CABIN plugin12 enables the user to merge network data from multiple experimental sources and select the interactions observed multiple times, which are likely more reliable than those observed once.
This section introduces the user to basic aspects of Cytoscape operation, including network navigation and layout. Apart from basic operation, basic filter features are available to identify genes as important by virtue of their high number of connections in the network61. Essential genes are also associated with nodes, which occupy central positions in large interaction networks, particularly those frequently found to connect other nodes together62. This section uses the yFiles layout algorithm, although many other layout algorithms exist, some of which support more specialized operations.
Expression profiles can provide powerful insights into cellular state and dynamics when integrated with network data. For example, if two nodes consistently show similar changes in expression levels, or they consistently show changes in opposite directions, then one gene might regulate the production of the other. Also, a group of connected nodes characterized by large fold changes may represent a signal-transduction cascade or protein complex that is repressed or induced under the experimental condition63. This section shows how to apply mRNA expression data to a network as an example, but the steps outlined apply to any form of molecular profile data.
This section explains how to run analysis methods that identify putative functional or structural modules within the network that may highlight protein complexes active under a profiled experimental condition as complex topologies of interaction networks make this difficult to do by eye. The jActiveModules plugin42 automates this analysis and identifies connected sections of the network in which the nodes have significant P-values. This indicates a group of nodes that may be coregulated, suggesting a module whose activity is influenced by the experimental context of the expression data. A complex is a module in which the macromolecules involved form a structure to execute some function called a molecular machine. Densely connected regions in protein interaction networks tend to correspond to protein complexes. The MCODE plugin43 identifies putative complexes by finding regions of significant local density. At this stage, the user could also identify over-represented network motifs with the Metabolica or NetMatch plugins39, although these alternatives are not covered here.
The function of interesting gene sets or network regions can be summarized by finding significantly enriched functional annotation terms. This may be used to support module or complex predictions. This section outlines steps required to identify enriched GO processes with the BiNGO plugin7. Users can optionally use the GOlorize plugin36 to refine the network layout according to selected GO classes.
Cytoscape can be used in many additional visualization and analysis workflows, including published protocols on the reverse engineering of regulatory64 and metabolic65 networks, and can be extended using Java programming to implement new features and analysis methods. Over 40 excellent plugins contributed by many software development groups provide examples. While these topics are not covered here, Cytoscape has a community of software developers and users who can answer questions about potential new Cytoscape uses, as detailed at http://www.cytoscape.org.
Cytoscape hardware requirements depend on the size of the networks to be imported and analyzed. For networks up to 5,000 edges, we recommend a 1 GHz CPU or higher, a high-end graphics card, 60MB of available hard disk space, at least 512 MB of free physical RAM and a minimum screen resolution of 1,024 × 768. At least 1 GB of RAM is required for larger networks.
This is recommended (but not required) forMac users as an aid in network navigation.
This protocol begins with an expression data set to be analyzed. While Cytoscape has direct links to several previously published expression data sets via the Internet, loading new data into Cytoscape requires assembling a tab-delimited file as detailed in Box 1. A sample expression file is made available in Supplementary Data 1 (galExpData.pvals; see Fig. 3). In addition to expression data, several additional data files are available for readers wishing to follow this protocol as a tutorial:
Cytoscape For simplest operation of this protocol, Cytoscape can be executed over the web via Java Web Start by navigating to http://www.cytoscape.org/nature.protocols/ and clicking on the web start link. See http://java.sun.com/products/javawebstart/ for more information on running Java Web Start applications. Alternatively, Cytoscape can be installed on a local computer by following the steps in Box 2.
Cytoscape provides many mechanisms for integrating heterogeneous forms of data and for assessing the influence of each data type within a network context. Additional node or edge attribute data can be integrated with your network by following the steps below. Users who are following this protocol as a tutorial should download the Supplementary Data 5 file (galGeneNames.csv) and follow the steps below to import common gene names (synonyms) for nodes in the network galFiltered.sif.
To import attribute files or expression data into Cytoscape, the gene or protein identifier in the file must exactly match the corresponding Cytoscape node ID (or other Cytoscape attribute that has been previously loaded). If no matching identifiers are present, the situation can be corrected by loading an additional identifier into Cytoscape as a new node attribute. This section describes one method for constructing and loading an identifier-mapping attribute, using an external ID mapping service called Synergizer, which is provided by the Roth laboratory at Harvard University. Additional ID mapping services are described at http://baderlab.org/IdentifierMapping/.
The time required to execute this protocol is most strongly related to the time required to download the sample data and software over the Internet. With a 1.5 Mbs ADSL connection under favorable operating conditions, it takes approximately 9 min to download Cytoscape under Java Web Start, 2.5 min to download a network of ~1,000 nodes and ~2,000 interactions from cPath and 8 min to download and process 1,000 articles with the Agilent Literature Search plugin. On a Macintosh Powerbook G4 with 768 MB of memory, a network of ~3,000 nodes and ~7,000 edges requires approximately 1.50 min for loading, 2.25 min for analysis with jActiveModules using one expression experiment and 0.75 min for analysis with MCODE. An experienced user can execute the full protocol described within 30 min.
The effectiveness of network analysis depends strongly on the amount of network data available. Species such as yeast, fly, Escherichia coli and human have tens of thousands of measured interactions available. For other species, the methods outlined here will likely become more effective over time as the amount of interaction data increases. Even in these cases, a gene association network can be constructed from published abstracts, the usefulness of which depends on the number of available publications, not the number of protein interaction assays. Another option when protein interaction measurements are lacking is to perform network analysis on a closely related organism for which more interactions have been measured (or for which a greater volume of publications are available). Protein identifiers can be mapped via orthology relationships, that is, as calculated by services such as PhyloFacts69 or Roundup70.
The most common problems with Cytoscape arise from mismatched gene identifiers across different input data files. This problem occurs most often when integrating attribute or expression data with an existing network. In Cytoscape, the identifiers in attribute or expression data files should match exactly to node names in the network in a case-sensitive match. If there is a case-sensitive match but data are still not loaded correctly, the following steps can help isolate the source of the problem:
Sometimes a node attribute is a list of multiple values rather than just a single value (e.g., multiple gene function terms per node). However, in most other cases, Cytoscape assumes that a node or edge will be assigned only one value per attribute. In these cases, if a node or edge attribute file contains two values for the same node or edge, such as two probesets for one gene, the latter will be retained and the former overwritten. Consequently, if you discover that the expression data loaded for some node(s) are not as expected, verify that multiple attribute entries have not been specified.
As is true with many programs, Cytoscape can fail when the computer runs out of memory. This problem is manifest in a myriad of ways. Typically in these cases, Cytoscape will display an error message such as a Java Null Pointer Exception. In other cases, no error will be reported, but a pop-up window may fail to appear on the screen or a network may fail to appear in the Cytoscape canvas. If Cytoscape exhibits such behavior when analyzing a very large network, or running alongside many other applications on the same computer, insufficient memory may be the cause. The problem may be addressed by freeing memory: deleting extraneous networks, closing other applications that are running on the same computer or saving the session and rebooting the computer. If sufficient memory is available, Cytoscape may need to be set to use it. Further instructions on this are available at http://www.cytoscape.org/cgi-bin/moin.cgi/How_to_increase_memory_for_Cytoscape.
If a loaded network fails to display in the Cytoscape canvas, it may be that the loaded network is very large. By default, Cytoscape displays (or ‘creates views’) for networks of up to 10,000 nodes. If the user attempts to load a network of over 10,000 nodes, the network will be loaded into memory but by default no view will be created. In such cases, the network is listed in the control panel in red. At this point, the user can create a view by right-clicking on the network name in the Control Panel and selecting Create View. Before doing so, the user should bear in mind that visual analysis of very large networks is not usually productive, and that it may be more expedient to issue a more modest query or subdivide the input file. Also, the user can filter to select nodes and edges of interest in a loaded network even if it does not have a view and these can be extracted to create a smaller, more manageable network that can be reasonably viewed.
We have obtained the following average numbers of interactions for networks constructed based on the following methods and representative species. Numbers represent (mean ± s.d.) interactions per gene sampled from ten randomly chosen genes in July 2007. cPATH: yeast 90.0 ± 194.1, human 63.1 ± 81.6, mouse 3.3 ± 5.5, rat 0.5 ± 1.1. Agilent Literature Search: yeast 18.9 ± 22.7, human 178.8 ± 134.0, mouse 152.5 ± 143.1, rat 60.3 ± 92.1. If the network sizes obtained are much smaller than expected, see TROUBLESHOOTING. Successful import of the sample SIF file and application of the yFiles Organic layout algorithm produces a Cytoscape view similar to that shown in Figure 1.
In the near future, Cytoscape and its plugins will expand to make network loading easier. For instance, the cPath33 plugin currently serves protein interaction data from recent releases of the IntAct15 and MINT17 public data repositories. The cPath site will grow to include a larger number of databases that share data in the BioPAX or PSI-MI71 standard formats, providing a convenient point of access for public biological interaction and pathway information.
Execution of jActiveModules on the sample network with the expression condition gal4RG produces five modules (as specified by the default parameters), all having significant Z-scores > 3.0. The top module (shown in Fig. 5) contains the genes encoding the known galactose enzymes (GAL1, 7, 10), the galactose transporter (GAL2) and the galactose pathway transcriptional regulators (GAL4, 80, 3). Gal4, the central transcriptional activator of the pathway, is connected to other GAL genes through protein–DNA interactions (yellow), which are strongly differentially expressed since the GAL4 gene is deleted in this experiment. In this way, expression values superimposed on a protein network in the Cytoscape canvas can identify expression-activated pathways or protein complexes.
Execution of MCODE on the sample network produces 46 protein interaction clusters with scores ranging from 1 to 5.5, with the five top scores >2.5. Figure 6 displays one such cluster containing five PEX genes that encode components of a protein complex associated with the peroxisomal membrane. This set of proteins has been detected as a putative complex by MCODE based on its high level of enrichment for protein–protein interactions (seven observed interactions out of ten possible among five proteins).
The key regulatory “control points” of a biological system may not always be genes with the most pronounced expression ratios; more often, the most differentially expressed genes are in fact regulated by the controller, which lies upstream. An effective approach to finding upstream agents is to identify groups of genes that exhibit large measured changes under the experimental conditions and then to examine the genes adjacent to those in the network. When doing so, bear in mind that existing network data may be incomplete, and so one should not expect all connections between the causative agent(s) and the affected genes to be present in the network.
Evidence suggests that the activity of a complex may be controlled by restricting the production of one component, even if most are produced ubiquitously72. Thus, if one gene in the putative complex shows decreased expression levels, the complex may be less active under the given experimental conditions (although it is known that mRNA–protein levels do not always correlate). Similarly, signal-transduction pathways are often branched with multiple alternatives, yet all that is necessary for signaling is that the proteins in some branch are available and activated. The expression levels on each node suggest which alternatives may be produced under the given experimental conditions. In cases where the signaling activity can be measured, gene knockdown methods such as RNA interference can be used to verify these hypotheses experimentally.
Many research groups have developed plugins to Cytoscape and provided them for download free of charge from http://www.cytoscape.org/. These plugins represent key contributions to the overall utility of Cytoscape, and we gratefully thank the authors for their contributions. Cytoscape is developed through an ongoing collaboration between the University of California at San Diego, the University of Toronto, the Institute for Systems Biology, Memorial Sloan- Kettering Cancer Center, Institut Pasteur, Agilent Technologies and the University of California at San Francisco. Many developers have contributed to Cytoscape, and we gratefully acknowledge the contributions of former developers including Nada Amin, Mark Anderson, Richard Bonneau, Larissa Kamenkovich, Andrew Markiel, Owen Ozier, Paul Shannon, Robert Sheridan and Jonathan Wang. We thank Tero Aittikalio and Cricket Sloan for assistance with the manuscript. Funding for Cytoscape is provided by the US National Institute of General Medical Sciences of the National Institutes of Health under award number GM070743-01. Corporate funding is provided through a contract from Unilever PLC. Cytoscape contributions by G.D.B. were funded in part by Genome Canada. The BiNGO plugin was developed at the Department of Plant Systems Biology at the University of Ghent, with partial funding through the Research Foundation Flanders in Belgium.
Note: Supplementary information is available via the HTML version of this article.
AUTHOR CONTRIBUTIONS Cytoscape development is a large community effort, with principal efforts under the direction of A.A. at Agilent Technologies; I.S. and L.H. at the Institute for Systems Biology; C.S. at Memorial Sloan Kettering Cancer Center; B.S. at Institut Pasteur; G.J.W. at Unilever; T.I. at University of California, San Diego; B.R.C. at University of California, San Francisco; and G.D.B. at University of Toronto. Every author has made significant contributions to the software, without which this protocol would not be possible. Specific contributions are as follows. E.C., B.G., G.D.B. and C.S. developed the cPath plugin. A.K., A.V. and M.C. developed the Agilent Literature Search plugin. S.M., R.I. and M.K. developed the BiNGO plugin. M.S., T.I. and R.K. developed the jActiveModules plugin. V.P., G.D.B. and C.S. developed the MCODE plugin. N.L., R.C., I.A.C., S.K., S.L., M.S., K.O. and P.-L.W. developed much of the improvements to the Cytoscape v2.5 core, including automatic loading of plugins and the VizMapper. K.H., J.M. and A.R.P. were instrumental in the usability analysis, specification and prototyping of many of these features. This protocol was written by M.S.C., M.S., A.K., S.M., C.W., G.D.B. and T.I.
Reprints and permissions information is available online at http://npg.nature.com/reprintsandpermissions