The Cytoscape Cyberinfrastructure extends Cytoscape and its community into web-connected services.The CI is a Service Oriented Architecture that supports network biology oriented computations that can be orchestrated into repeatable workflows.
TEST BANK For Radiologic Science for Technologists, 12th Edition by Stewart C...
Cytoscape CI Chapter 2
1. Quality Network Analysis
Quickly and Cheaply
Cytoscape Cyberinfrastructure
Chapter 2
ISMB/NetBioSIG 2016
Orlando, Florida
July 8, 2016
Keiichiro Ono, Eric Sage & Barry Demchak
Ideker Lab
1
2. Problems and Solutions
Creating (Network Biology) Software is slow
and expensive
We want
Novel and reproducible workflows
Mature standardized workflows
Sharable networks, workflows, and results
More memory, processors & storage
Cytoscape Cyberinfrastructure (CI)
Distributed microservice-based architecture
2
3. What I Hope to Convey Today
How to build network biology workflows
• Using reusable components (*** God reuses code!)
• Computational
• Storage
• User interface
• Coordinate with Cytoscape, NDEx, and other
NB assets
How to build reusable components
Useful from Cytoscape and other programs
The “reuse party” is worth coming to! 3
7. App Service
Message Bus (REST/Internet)
Return(yyy)
Calculate(xxx)
Calculate(xxx)
Return(yyy)
1 2 34
What is a Microservice?
App Service
Return(yyy)
Calculate(xxx)
Time
7
Late Binding
Scalability
Reusability
Language choice
9. Services in Action – Cytoscape as Service
Jupyter application calls Cytoscape/cyREST
as a service for visualizing networks
9
Send Network
Send Styles cyREST / Cytoscape
(Click here for video showing Jupyter creating network in Cytoscape)
10. Important Considerations
How do I call or build a service?
What (actually) is being exchanged?
Where does the service run?
What if your service becomes popular?
How to do create a good service?
What if your service is too slow?
What if your service is buggy? 10
11. Anatomy of a Service Call
11
Send Network
Send Styles
cyREST /
Cytoscape
igraph
py2cytoscape
igraph2CX
model.impl
CX.impl
cyREST
cyREST1 / Internet
CX encode/decode
Local network model
App ServiceCI
1http://www.ncbi.nlm.nih.gov/pubmed/26672762
12. Making Your Service Real
1. Create function
Python, R, Go, Java …
2. Add REST wrapper
Eve, OpenCPU, GoRilla, Jersey…
3. Add client call using REST
12
Function
Data CX
REST
Function
Data CX
App
CX
REST
Function
Data CXData
REST
More later … Network + params
on server
13. Important Considerations
How do I call or build a service?
What (actually) is being exchanged?
Where does the service run?
What if your service becomes popular?
What if your service is too slow?
What if your service is buggy?
How to do you test your service? 13
14. CX Transfer Format
1
3 2
Example Graph
4
5
nodes Aspect
edges Aspect
cartesianLayout Aspect
Aspect Relationships
Organizes
Positions
ID=1 ID=2 ID=3
nodes Aspect (3 nodes)
edges Aspect (2 edges)
Source Target Source TargetID=4 ID=5
cartesianLayout Aspect
X=100 Y=100ID X=200 Y=200ID X=100 Y=200ID
CX Encoding
14
X
X
Benefits
Streamable (large networks)
Lossless (BioPAX, SGML, OpenBEL…)
Extensible (new aspects)
Transfers only aspects of interest
Community, community, community
16. Important Considerations
How do I call or build a service?
What (actually) is being exchanged?
Where does the service run?
What if your service becomes popular?
How to do create a good service?
What if your service is too slow?
What if your service is buggy? 16
18. Deploying, Scaling, Speeding Up
18
App
CX Data
REST
REST
Function
Data CX
Your Server
Amazon
NRNB Servers
REST
Function
Data CX
REST
Function
Data CX
REST
Function
Data CX
Elsa
REST
Function
Data CX
…
Other servers
19. Important Considerations
How do I call or build a service?
What (actually) is being exchanged?
Where does the service run?
What if your service becomes popular?
How to do create a good service?
What if your service is too slow?
What if your service is buggy? 19
20. App Tests
CX Data
REST
App Tests
CX Data
RESTTests
CX Data
Development Model
20
Step 1: Step 2:
Step 3:
Function
Data CX
App Tests
CX Data
Function
Data CX
Function
Data CX
REST
Function
Data CX
REST
Elsa
Function
Data CX
REST
Step 4:
21. Important Considerations
How do I call or build a service?
What (actually) is being exchanged?
Where does the service run?
What if your service becomes popular?
How to do create a good service?
What if your service is too slow?
What if your service is buggy? 21
22. CyComponents - Embeded UI Services
Embeddable in Web apps and Cytoscape apps
GUI front end to services
Builds on
Cytoscape.js network display library
BioJS libraries
Other widgets
Based on Facebook’s React framework
Simple to build
Simple to incorporate into apps
22
23. Reusing CyComponents is Easy
23
Can be used from Cytoscape app or Web app
function init(loginInfo) {
const cyto = CyFramework.config([NDExStore]);
cyto.render(NDExLogin, document.getElementById('valet'), {
defaults: loginInfo,
onSubmit: () => {
const state = cyto.getStore('ndex').server.toJS();
connect(state);}
});
}
25. CyComponents in Action
NDEx web site calls NDEx database using
NDEx Valet CyComponent
25
Send Query
Return NetList
Get Network
Return Network
NDEX Valet is also a part of a Cytoscape app
that loads NDEx networks into Cytoscape
26. Services in Action – Cytoscape + NDEx
Cytoscape calls cyNDEx app to load network,
cyNDEX uses NDEx Valet to call NDEx
26
Send Query
Return NetList
Get Network
Return Network
Choose Networks
Send Networks
cyREST /
Cytoscape
(Click here for video showing NDEx Valet creating network in Cytoscape)
30. Support
National Resource for Network Biology (NRNB)
Supports software and staging hardware
Pharma & NCI support NDEx
Elsevier
All sources open and on GitHub
31
31. Call to Community
App authorshipCytoscape community thrives
Pride of authorship, listing in App Store
Tangible realization of useful research
Valuable workflows for all to use
Publishable results (e.g., F1000)
CI community inherits all of these! … but also:
More direct path from algorithm to useful code
Wider audience
Easier coding & dissemination
Better coding practices
More resources
32
More Information
bdemchak@ucsd.edu
32. Reading List
http://martinfowler.com/articles/microservices.html
http://home.ndexbio.org/about-ndex-2
http://idekerlab.github.io/cy-net-share
Lincoln Stein. Towards a cyberinfrastructure for the biological
sciences: progress, visions and challenges.
http://www.nature.com/nrg/journal/v9/n9/full/nrg2414.html
Barry Demchak, et al. PALMS: A Modern Coevolution of Community
and Computing Using Policy Driven Development.
https://sosa.ucsd.edu/ResearchCentral/view.jsp?id=203
Stephen Goff, et al. The iPlant collaborative: cyberinfrastructure for
plant biology.
http://journal.frontiersin.org/article/10.3389/fpls.2011.00034/pdf
33