Stunning ➥8448380779▻ Call Girls In Panchshil Enclave Delhi NCR
第1回バイオインフォマティクスデータ可視化セミナー@Riken
1. Keiichiro ONO 大野圭一朗
第一回バイオインフォマティクス可視化セミナー (12/26/2018)
バイオインフォマティクス分野における
可視化アプリケーション構築と維持の実際
Design,implementation,and maintenance of data
visualization applications for bioinformatics
3. Del Mar,CA
‣Keiichiro ONO
‣ Bioinformatics software engineer
@UC,San Diego Trey Ideker Lab
‣ Cytoscape Consortium member since 2005
‣ National Resource for Network Biology (NRNB)
‣ Data Visualization Japan
9. A gene ontology inferred from molecular networks. Dutkowski J,
Kramer M,Surma MA,Balakrishnan R,Cherry JM,Krogan NJ,Ideker
T., Nature Biotechnology 2013 Jan;31(1):38-45.
NeXO Web: the NeXO ontology database and visualization
platform. Dutkowski J, Ono K,Kramer M, Yu M, Pratt D,Demchak B,
Ideker T., Nucleic Acids Res. 2014 Jan;42(Database issue).
10. Using deep learning to model the hierarchical structure and function of a cell.
Ma J,Yu MK,Fong S,Ono K,Sage E,Demchak B,Sharan R,Ideker T. Nat Methods. 2018 Mar 5. doi: 10.1038/
nmeth.4627.PMID: 29505029
18. Cytoscape V1
2003
• Java-Swing GUI application
• For multiple platform support
• Support for plugins
• Basic architecture was modular and “modern”
• Slow…
• Designed to handle few hundreds of nodes and edges
24. Cytoscape V3.7
2018
• Still a Java-Swing GUI application
• With a lot of optimization and improvements
• Basic architecture is still the same - Visual Style, Filter, Plugins/Apps
• Polyglot - Core is still Java, but provides REST API for multiple language support
• MUCH faster
• Designed to visualize tens of thousands of nodes and edges
25. Hardest project so far:
Migration from v2.0 to 3.0
= Breaking API change
26. • Breaking API changes
• OK for us, but NOT for 3rd party developers!
• There was over few hundreds of 3rd party apps for v2.x
• Had a lot of tutorial sessions and workshops for Plugin (a.k.a. App) developers
• With a lot of optimization and improvements
• Introduced OSGi - Modular Java
• Took us almost 5 years to complete the migration…
Migration from 2.x to 3.x
27. Lessons learned:
Breaking API change is extremely
expensive if the application has
large 3rd party developer community
31. Plugins / Apps
• Expansions / Add-ons written in Java
• Still acceptable, but huge overhead
for bioinformaticians
32. Scripting
• Support for languages implemented on
top of JVM
• JRuby
• Jython
• JavaScript (Rhino)
• Not so successful due to the limitations
of the JVM scripting languages
33. REST API
• Language-agnostic
• Enable users to automate
their workflows
https://cytoscape.org/cytoscape-tutorials/presentations/advanced-automation-2018-sib.html#/
35. Why we should use
web technologies to build
complex data viz apps for biology?
36. • Standard platform for data visualization
= Web browser
• Toolchain / Frameworks
• Documents
• Developers!
37. Toolchain / Frameworks
• Most popular, modern frameworks for advanced data visualization are available
for the web browsers
• Browsers are ubiquitous - from phones to workstations
41. Developers
• It is hard to find good developers for (relatively) old
technology…
• Learn Java Swing in 2019…?
• It is important to attract young developers
• Otherwise, the community eventually dies
42. …and data analysis tools are
always available in R/Python
(this statement may be too strong,especially Julia users, but in reality,this is true from the sponsor’s point of view)
43. • Workbench for data analysis and
visualization
• Notebook applications
• Jupyter Notebook
• R Markdown
• IDE-like applications
• Jupyter Lab
44. These are the tools for modern data
analysis/viz application developers
50. • Needs for custom data visualization apps
• BI tools, such as Tableau/Spotfire are not always good enough for
researchers’ use cases
• Limited resources
• Even the biggest (academic) lab in the world is much smaller than the tech
giants…
61. Why two versions?
• JupterLab notebook panel is not 100% compatible with Jupyter Notebook
• e.g. local search
• Not all Jupyter Notebook users are migrating to JupyterLab
• Some prefer simplicity of the Notebook
82. • Maintaining a long-lived client application is HARD
• Always accept changes
• Technology is always changing
• Don’t stick to a language / platform
• Support popular / standard platforms