Cytoscape and External Data Analysis Tools
Preview:
DESCRIPTION
Introduction to new Cytoscape RESTful API. (Slides used for internal group meeting).
Citation preview
- 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 workow (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) le 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 workow 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 rst version,
we will use Cytoscape.js style JSON
- 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