Cytoscape
Cytoscape is an open source bioinformatics software platform for visualizing molecular interaction networks and integrating with gene expression profiles and other state data. Additional features are available as plugins. Plugins are available for network and molecular profiling analyses, new layouts, additional file format support and connection with databases and searching in large networks. Plugins may be developed using the Cytoscape open Java software architecture by anyone and plugin  community development is encouraged.  Cytoscape also has a JavaScript-centric sister project named Cytoscape.js that can be used to analyse and visualise graphs in JavaScript environments, like a browser.

History 
Cytoscape was originally created at the Institute of Systems Biology in Seattle in 2002.  Now, it is developed by an international consortium of open source developers. Cytoscape was initially made public in July, 2002 (v0.8); the second release (v0.9) was in November, 2002, and v1.0 was released in March 2003.  Version 1.1.1 is the last stable release for the 1.0 series. Version 2.0 was initially released in 2004; Cytoscape 2.83, the final 2.xx version, was released in May 2012. Version 3.0 was released Feb 1, 2013, and the latest version, 3.4.0, was released in May 2016.

Development 
The Cytoscape core developer team continues to work on this project and released Cytoscape 3.0 in 2013. This represented a major change in the Cytoscape architecture; it is a more modularized, expandable and maintainable version of the software.

Usage 

While Cytoscape is most commonly used for biological research applications, it is agnostic in terms of usage.  Cytoscape can be used to visualize and analyze network graphs of any kind involving nodes and edges (e.g., social networks). A key aspect of the software architecture of Cytoscape is the use of plugins for specialized features. Plugins are developed by core developers and the greater user community.

Features 
Input
 Input and construct molecular interaction networks from raw interaction files (SIF format) containing lists of protein–protein and/or protein–DNA interaction pairs.  For yeast and other model organisms, large sources of pairwise interactions are available through the BIND and TRANSFAC databases. User-defined interaction types are also supported.
 Load and save previously-constructed interaction networks in GML format (Graph Modelling Language).
 Load and save networks and node/edge attributes in an XML document format called XGMML (eXtensible Graph Markup and Modeling Language).
 Input mRNA expression profiles from tab- or space-delimited text files.
 Load and save arbitrary attributes on nodes and edges. For example, input a set of custom annotation terms for your proteins, create a set of confidence values for your protein–protein interactions.
 Import gene functional annotations from the Gene Ontology (GO) and KEGG databases.
 Directly import GO terms and annotations from OBO and Gene Association files.
 Load and save state of the cytoscape session in a cytoscape session (.cys) file. Cytoscape session file includes networks, attributes (for node/edge/network), desktop states (selected/hidden nodes and edges, window sizes), properties, and visual styles.

Visualization
 Customize network data display using powerful visual styles.
 View a superposition of gene expression ratios and p-values on the network.  Expression data can be mapped to node color, label, border thickness, or border color, etc. according to user-configurable colors and visualization schemes.
 Layout networks in two dimensions.  A variety of layout algorithms are available, including cyclic and spring-embedded layouts.
 Zoom in/out and pan for browsing the network.
 Use the network manager to easily organize multiple networks. And this structure can be saved in a session file.
 Use the bird's eye view to easily navigate large networks.
 Easily navigate large networks (100,000+ nodes and edges) by efficient rendering engine.

Analysis
 Plugins available for network and molecular profile analysis. For example:
 Filter the network to select subsets of nodes and/or interactions based on the current data.  For instance, users may select nodes involved in a threshold number of interactions, nodes that share a particular GO annotation, or nodes whose gene expression levels change significantly in one or more conditions according to p-values loaded with the gene expression data.
 Find active subnetworks/pathway modules. The network is screened against gene expression data to identify connected sets of interactions, i.e. interaction subnetworks, whose genes show particularly high levels of differential expression.  The interactions contained in each subnetwork provide hypotheses for the regulatory and signaling interactions in control of the observed expression changes.
 Find clusters (highly interconnected regions) in any network loaded into Cytoscape. Depending on the type of network, clusters may mean different things. For instance, clusters in a protein–protein interaction network have been shown to be protein complexes and parts of pathways. Clusters in a protein similarity network represent protein families.