Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Keiichiro Ono
UC, San Diego
Lab Meeting 4/21/2014
Cytoscape and
External Tools
Agenda
- Background

- Why external tools?

- New Cytoscape Module:
RESTful API for Cytoscape

- Current design

- Proof-of-concept demo

- Future plan
Problems
Problems
- Cytoscape is getting more and more user-friendly

- Lots of GUI-based Apps

- Easy access to interaction databases

- But not hardcore-user-friendly!

- There is no easy way to embed Cytoscape as a part of
larger, automated workflow (using R/Python/etc.)

- We are losing hardcore users (like you) because of this
limitation…
THE SMALL TOOLS MANIFESTO FOR BIOINFORMATICS
- Every single tool should do the smallest possible task really well
- Every single tool lives in its own public source code repository
- All tools are free and open source software (FOSS) and come with a
license approved by the Free Software Foundation (FSF).
- Source code should be easy to read and understand by any
competent software developer
- Error conditions and exceptions should be descriptive and handled
in a clear way
- When possible tools should support (Unix) pipes
- When possible tools provide a useful command line interface
- Tools should avoid system dependencies, such as named (absolute)
file paths
- Every single tool comes with a simple build protocol, at least for
Linux
- Software installation and deployment dependencies are handled
through external package management system
https://github.com/pjotrp/bioinformatics
Data Analysis
Tool Ecosystem
Network Data Analysis
Analysis
Visualization
Network Data Analysis
Analysis
s
Visualization
Desktop
Gephi
Cytoscape
matplotlib
Cytoscape.js
Network Dat
Analysis
Graph Analysis
NetworkX
igraph
Cytoscape
Python
Pandas
NumPy
SciPy
Excel
IPython
3rd Party Apps
NetworkAnalyzer
Network Data Analysis
Analysis
Graph Analysis
NetworkX
igraph
Cytoscape
Python
Pandas
NumPy
SciPy
Excel
Visualization
Desktop
Gephi
Cytoscape
matplotlib
Web
Cytoscape.js
sigma.js
d3
NDV3
d3.chart
Google Charts
Data Storage
Graph
Neo4j
GraphX
Document
MongoDB
Relational
MySQL
IPython
3rd Party Apps
NetworkAnalyzer
http://visualizing.jp/d3-unconf-2014-2/
Tools We Will Support
Analysis VisualizationData Preparation
Data Exchange
Data I/O
- Should be platform-independent

- Need to support multiple environments

- R, Python w/Pandas, MATLAB, Perl, Shell Scripts, or
workflow engine like Kepler/Taverna

- RESTful API

➡ Access Cytoscape data and functions via HTTP, which
is supported by virtually all platforms
RESTful API
- Example

- GET http://localhost:9000/networks

➡ Returns all networks in machine-readable format

- GET http://localhost:9000/networks/52

➡ Returns a network with ID 52

- POST http://localhost:9000/networks

➡ Create a new network from the data
CRUD
Resource POST (Create) GET (Read) PUT (Update) DELETE
(Delete)
/networks Create a new
network
List all networks Bulk update
network data
Delete all
networks
/networks/SUID Error Show all
information for
the network with
SUID
Update
information for
the network with
SUID
Delete network
with SUID
Demo
Data Formats
YJR022W pp YOR167C
YJR022W pp YLR264W
YJR022W pp YNR053C
YER116C pp YDL013W
YNL307C pp YAL038W
YNL216W pd YCR012W
YNL216W pd YGR254W
YNL216W pd YHR174W
YNL216W pd YIL133C
YNL216W pd YLR044C
YNL216W pd YOL120C
YNL216W pd YNL301C
YNL216W pd YCL030C
Which Format Should We Support? (1)
- Basic data exchange format in RESTful world

- JSON (JavaScript Object Notation)

- Like XML, not an actual format, just a standard 

- For the first version, we will use Cytoscape.js
style JSON
Cytoscape and External Data Analysis Tools
Cytoscape and External Data Analysis Tools
Which Format Should We Support? (2)
- Other File Formats

- Networks: GraphML, EdgeList, Adj. Matrix

- Tables: CSV/TSV

- Open Question:

Conversion from Standard Data Structure

- igraph object to JSON

- DataFrame to JSON/CSV
Long-Term Goal: Cytoscape Cyberinfrastructure
Internet
Service 1 Service 2
NDEx (DB)
Web Browser
Cytoscape Desktop
2014 Keiichiro Ono
kono@ucsd.edu

More Related Content

Cytoscape and External Data Analysis Tools

  • 1. Keiichiro Ono UC, San Diego Lab Meeting 4/21/2014 Cytoscape and External Tools
  • 2. Agenda - Background - Why external tools? - New Cytoscape Module: RESTful API for Cytoscape - Current design - Proof-of-concept demo - Future plan
  • 4. Problems - Cytoscape is getting more and more user-friendly - Lots of GUI-based Apps - Easy access to interaction databases - But not hardcore-user-friendly! - There is no easy way to embed Cytoscape as a part of larger, automated workflow (using R/Python/etc.) - We are losing hardcore users (like you) because of this limitation…
  • 5. THE SMALL TOOLS MANIFESTO FOR BIOINFORMATICS - Every single tool should do the smallest possible task really well - Every single tool lives in its own public source code repository - All tools are free and open source software (FOSS) and come with a license approved by the Free Software Foundation (FSF). - Source code should be easy to read and understand by any competent software developer - Error conditions and exceptions should be descriptive and handled in a clear way - When possible tools should support (Unix) pipes - When possible tools provide a useful command line interface - Tools should avoid system dependencies, such as named (absolute) file paths - Every single tool comes with a simple build protocol, at least for Linux - Software installation and deployment dependencies are handled through external package management system https://github.com/pjotrp/bioinformatics
  • 10. Network Data Analysis Analysis Graph Analysis NetworkX igraph Cytoscape Python Pandas NumPy SciPy Excel Visualization Desktop Gephi Cytoscape matplotlib Web Cytoscape.js sigma.js d3 NDV3 d3.chart Google Charts Data Storage Graph Neo4j GraphX Document MongoDB Relational MySQL IPython 3rd Party Apps NetworkAnalyzer
  • 12. Tools We Will Support Analysis VisualizationData Preparation
  • 14. Data I/O - Should be platform-independent - Need to support multiple environments - R, Python w/Pandas, MATLAB, Perl, Shell Scripts, or workflow engine like Kepler/Taverna - RESTful API ➡ Access Cytoscape data and functions via HTTP, which is supported by virtually all platforms
  • 15. RESTful API - Example - GET http://localhost:9000/networks ➡ Returns all networks in machine-readable format - GET http://localhost:9000/networks/52 ➡ Returns a network with ID 52 - POST http://localhost:9000/networks ➡ Create a new network from the data
  • 16. CRUD Resource POST (Create) GET (Read) PUT (Update) DELETE (Delete) /networks Create a new network List all networks Bulk update network data Delete all networks /networks/SUID Error Show all information for the network with SUID Update information for the network with SUID Delete network with SUID
  • 17. Demo
  • 18. Data Formats YJR022W pp YOR167C YJR022W pp YLR264W YJR022W pp YNR053C YER116C pp YDL013W YNL307C pp YAL038W YNL216W pd YCR012W YNL216W pd YGR254W YNL216W pd YHR174W YNL216W pd YIL133C YNL216W pd YLR044C YNL216W pd YOL120C YNL216W pd YNL301C YNL216W pd YCL030C
  • 19. Which Format Should We Support? (1) - Basic data exchange format in RESTful world - JSON (JavaScript Object Notation) - Like XML, not an actual format, just a standard - For the first version, we will use Cytoscape.js style JSON
  • 22. Which Format Should We Support? (2) - Other File Formats - Networks: GraphML, EdgeList, Adj. Matrix - Tables: CSV/TSV - Open Question:
 Conversion from Standard Data Structure - igraph object to JSON - DataFrame to JSON/CSV
  • 23. Long-Term Goal: Cytoscape Cyberinfrastructure Internet Service 1 Service 2 NDEx (DB) Web Browser Cytoscape Desktop