Automation in the Cytoscape Ecosystem

Dexter Pratt, Sophie Liu, John "Scooter" Morris and Alex Pico

12 July 2020

Please proceed to the next slides for important requirements and installation instructions.

Requirements and Installation Instructions

You should have the most recent version of Cytoscape downloaded and successfully installed. You can download the appropriate installer here.

Here are the directions for installing the environments and libraries for the tutorial content:

For the HTML/JavaScript content, you will require an up-to-date web browser, such as Chrome, Firefox, or Edge.


The tutorial consists of four Step-by-Step code examples.

The code examples are coordinated and demonstrate similar workflow steps.

  • Part 1: Demonstration of the python workflow.
    • You can follow along in the Jupyter notebook as we present or in the R and Web versions.
  • Part 2: Questions
  • Part 3: Demonstration of R- and Web-specific examples
  • Part 4: Try it on your own, ask more questions.

Goals and Motivations

By the end of this workshop you should be able to:

  • Control the Cytoscape desktop application from scripts and web applications in order to:
    • Get networks from NDEx
    • Apply layouts and visual styles
    • Create networks from tabular data
    • Add tabular data to network
  • Programmatically access public networks from NDEx
  • Load data via scripts or via the Cytoscape desktop
  • Store and share resulting networks with NDEx


Dexter Pratt, UCSD
  • Director of Software Development, Ideker lab, UCSD
  • Started the NDEx Project

Sophie Liu, UCSD
  • Software Developer, Ideker lab, UCSD


Chris Churas, UCSD
  • Senior Software Developer, Ideker lab, UCSD

David Otasek, UCSD
  • Software Consultant, Ideker lab, UCSD


John "Scooter" Morris, UCSF
  • Executive director, Resource for Biocomputing, Visualization, and Informatics
  • Roving Engineer, National Resource for Network Biology
  • Cytoscape team since 2006
  • Author of over a dozen Cytoscape apps


Alex Pico, Gladstone Institutes
  • Associate director, Bioinformatics Core
  • Executive director, National Resource for Network Biology
  • Cytoscape team since 2006
  • Author of a handful of Cytoscape apps and RCy3

Automating Cytoscape via CyREST

Task Python R Web
Open the NDEx network in Cytoscape
Apply a visual style
Apply a layout
Save the network to NDEx
Load a PPI Network from a File
Load Expression Data from a File

Working Directly with Networks

Task Python R Web
Get a Summary of an NDEx Network
Retrieve a Network from NDEX
Display the network on a web page
Query NDEx to Find Networks
Load a PPI Network from a File
Load Expression Data from a File

What is NDEx?

  • Find networks to use in applications.
  • Store networks in your private account.
  • Share your networks - "DropBox for networks".
  • Disseminate your networks.
  • Publish your networks as computable, actionable data.
  • Work with your networks in Cytoscape
  • Integrate networks with your applications.

Cytoscape Ecosystem Components

  • Cytoscape Desktop (Java)
  • Cytoscape Automation via CyREST
    • From R: RCy3
    • From Python Py4Cytoscape
  • Cytoscape Automation via CyCommands
  • CyBrowser: a web browser within Cytoscape that supports CyCommands
  • App Store: the cloud repository where Apps are published.
  • NDEx: store, share, and publish networks
  • CX: the JSON Cytoscape network exchange format
  • cytoscape.js: the JavaScript library for interactively viewing and using networks in web applications.
  • Cloud apps and services