introduction to biological network analysis and visualization with cytoscape part 2
TRANSCRIPT
Introduction to Biological Network Analysis and Visualization with Cytoscape
Keiichiro OnoCytoscape Core Developer TeamUC, San Diego Trey Ideker Lab / National Resource for Network Biology
5/12/2016 The Scripps Research Institute
Lecture 2: Reproducible Workflows with Jupyter Notebook
Lecture slides are available here:
http://www.slideshare.net/keiono
Agenda
• Lecture 1: Introduction to Biological Network Analysis and Visualization
• What is the benefits of biological network analysis and visualization?
• Introduction to Cytoscape
• Preview of Lecture 2: cyREST
• Lecture 2 (Today):Reproducible Analysis & Visualization
• Introduction to Jupyter Notebook
• Create a reproducible network visualization workflows with Python
Review of Lecture 1
- Network analysis / visualization is a powerful method to get biological insights from your screening result
- Cytoscape is the de-facto standard tool to perform this type of analysis
Review of Lecture 1
-Core features of Cytoscape -Navigation (Pan/Zoom/Select) -Network / Table Data Import -Automatic Layout -Visual Style
Recap
Cytoscape Session File — for sharing results
But what about process?
Reproducibility
http://www.the-scientist.com/?articles.view/articleNo/43632/title/Get-With-the-Program/
https://theconversation.com/how-computers-broke-science-and-what-we-can-do-to-fix-it-49938http://www.nature.com/nature/journal/v483/n7391/full/483531a.html
Reproducibility…it’s a known issue
Problems- Reproducibility of biological research, especially for in vivo/vitro
experiments, is a hard problem
- But this is true even for in silico analysis! - OS version - Revision of scripts - Data analysis software versions - Version of data files - Command line parameters written on a paper napkin - “Black magic” only a grad student knows
- This is something we need to fix, using latest technologies and best practices
Typical Workflow
Data Preparation Analysis Visualization
Data Preparation
Data Preparation
- Cleansing
- Normalization
- Missing values
- Corrupted values
- Reformat
- Conversion
Data Preparation Analysis Visualization
Analysis
Analysis
- Filtering
- Standard graph statistics
- Density
- Betweenness - Centrality
- Clustering
- Community Detection
- GO enrichment analysis
Data Preparation Analysis Visualization
Visualization
Visualization
- Mapping
- Data points to visual variables
- Layout
- For graphs:
- Force-directed
- Tree
Data Preparation Analysis Visualization
Data Preparation
Analysis Visualization
Data Preparation
Analysis Visualization
Cytoscape for Interactive Visualization
Python for Data Manipulation / Analysis
Lab Notebook for in silico Experiments
Interactive Command-Line +
Markdown-based Documents
IPython Notebook? Jupyter?
IPython Notebook
Notebook UI
+ Python Kernel
Jupyter Notebook UI
+
Language Kernel
(R/Julia/etc.)
Language-Agnostic
- From next version (4.x), Python Notebook will be an implementation of Jupyter
- You can switch to other language kernels
- In this lecture, we will use Python, but you can use language of your choice to control Cytoscape
Question
• Cytoscape is a desktop application
• Point & click GUI operation
• Easy to use, but how can we make our workflow reproducible?
REST
What is cyREST?
- Platform-independent, RESTful API module for Cytoscape - Means you can access basic Cytoscape data objects
programmatically - Now it’s a Cytoscape Core feature!
REST
Interactive Data Analysis Environments
In-House Databases External Computing Resources
- Graph Layout- Statistical Analysis- Data Pre-processing
RStudio
- NumPy- SciPy- Pandas- NetworkX
IPython Notebook
File / Code Hosting ServicesPublic Data Repository
PSICQUIC Services
EBI RDF Platform
Other Bioinformatics Web Applications / Services
- igraph- rCurl
Command Line Tools
> sed> awk> grep> curl
Web Browsers
Data Repository & Collaboration Service
Data Bus (Internet)
Your Workstation
Cytoscape App Store
Cytoscape Desktop
Apps
Core
REST
REST
Cytoscape 3.1+Clients
POST
PUT
DELETE
GET
How cyREST Works
Mapping Cytoscape API to HTTP Methods
Create
Read
Update
Delete
Cytoscape Operations
POST
GET
PUT
DELETE
HTTP Methods
Get full network with unique ID 52 as JSON
GET http://localhost:1234/v1/networks/52
http://localhost:1234/v1/networks/52
Language-Specific Shims
For Python For R
REST
RESTLab notebook to record
your workflow
Make Cytoscape controllable via scripts
Manage multiple versions of your
notebooks and other scripts
Further Readings
Further Readings
• My presentation slides
• http://www.slideshare.net/keiono
• cyREST web sites
• http://apps.cytoscape.org/apps/cyrest
• https://github.com/idekerlab/cyREST/wiki
• py2cytoscape — https://github.com/idekerlab/py2cytoscape
2016 Keiichiro Ono [email protected]