Web Development and Pathway Analysis Software

advertisement
Web Development and
Pathway Analysis Software
Methods and Techniques, Software Comparisons , and use of Clinical Data
Table of Contents
Introduction
Web Development Patterns and Techniques
Pathway Visualization Software
Clinical Data
Conclusion
Introduction:
●
●
●
Current trends
○
Commercial applications use web platform - VoIP, Inbox, Document editing, Video streaming, etc
○
HTML5 - no browser plugins (flash and shockwave)
Users
○
Avoid native installation
○
Avoid dependency issues
○
Avoid update management
Developers
Web Development Patterns and Techniques:
Overview (i)
●
Basics
○
HTTP - Application layer protocol - handles delivery content
○
HTML - Markup language - handles representation of content
○
End user can view static pages on a web browser of any given platform
○
Maintain state through inpersistent/unreliable means - cookies
●
Functional but minimalistic
●
How to deliver services: Facebook, Twitter, or Gmail?
Web Development Patterns and Techniques:
Overview (ii)
●
●
●
Requirements
○
Persistent storage
○
User ability to interface with data
Functionality
○
Procedural languages - PHP, Ruby, Python, etc
○
REST (Representational State Transfer) - Let clients send HTTP requests to post, read, delete data (CRUD)
Security
○
Sanitize - SQL injection/mass assignment/etc
Web Development Patterns and Techniques:
Model-View-Controller
Very common
Restful architecture for GUI based web applications
Subsequent patterns
Hierarchical-Model-View Controller (HMVC)
Model-View-Adapter (MVA)
Model-View-Presenter (MVP)
Model-View-ViewModel (MVVM)
Three intercommunicating parts:
Web Development Patterns and Techniques:
Model
Direct interface to the data storage
Independent of the GUI component
Define the data model and necessary logic
Object Relational Mapping
i.e. Patient model
Validatiation
Access Control
Handle relationships with other models
Web Development Patterns and Techniques:
Controller (i)
Action handler
Middleman for passing data between view and model
Suitable location for operation and calculation (for example pagination)
Access Control
User invoked
Visiting MySite.com/Users/index would trigger the index action of the User controller
Minimal guarantee - successfully route and deliver a page (avoid 404 error)
Web Development Patterns and Techniques:
Controller (ii)
Model to View
Pass data from model into variable
Render variable in the view
Non-strict - Can invoke model in the view
View to Model
What if user wants to create or update?
Request MySite.com/Users/Create?attr1=”X”
Trigger the create action
Web Development Patterns and Techniques:
View
Defines what will be rendered client side
Defines what will be executed client side (fat client)
Expression indicators nest
Finished executing before page is sent to client
Additional framework feature (s):
Partials
Web Development Patterns and Techniques:
Client-side MVC
Server-side MVC
MVC pattern defined on the server-side
This includes frameworks: Ruby on Rails, Web2py, CakePHP, Grails, etc
Problem
Delivered pages have persistent data and requests can be made to alter that data
But… Once rendered pages don’t do anything unless client refreshes
Client-side MVC
Model - Stored in local client memory as an object(s)
Web Development Patterns and Techniques:
Hybrid architectures
Skillful balancing act
Decisions can be impactful but subtle
For example: Should I be defining partials in my front side MVC pattern or my backend MVC?
Design Setup
Server-side controller action will load in the page
Local MVC architecture takes over
User Interaction
Will go through the controller actions of the local MVC
Web Development Patterns and Techniques:
Document data-binding-D3 (i)
Binding in MVC frameworks
How data is written and read
Handle presentation
How to stylize
How to make interactive
Libraries for data visualization/interaction
D3 (General purpose)
Cytoscape.js (problem specific)
Goals
Easy
Generalizable
Non-monolithic
Design
Based around root issue
Data and the visual should be coupled, but
separate entities
Web Development Patterns and Techniques:
Document data-binding-D3 (ii)
Web Development Patterns and Techniques:
Cytoscape.js
Graph theory and visualization
Extendable but internal changes are non-trivial, stuck with base design
Can be used to create pathway editing software
Entire graph library would be difficult to reproduce with D3
Good design principles and practices
Optimized
Dependency free
Like D3, incorporates set operations, functional patterns, chaining, etc
Pathway Visualization Software: Pathway
Commons
Open source
Collection of tools
Service for sharing and accessing pathway data
Web services and libraries
Direct queries to PC
PaxtoolsR - R interface
BioPax
Exchange format for pathway data
Pathway Visualization Software: Pathway
Commons-PCViz
Overview
Graph visualization
Web-based
Lightweight - little dependency
Implementation
Spring framework on the backend (Java based)
Backbone.js on the frontend (Javascript based)
MVC architecture and RESTful design - both front and back
Pathway Visualization Software:
WikiPathways (i)
●
●
●
Build on MediaWiki software
○
Used by wikipedia
○
Scalable
○
High traffic over multiple servers
Implementation
○
Pure PHP
○
No framework
Features
Pathway Visualization Software:
WikiPathways (ii)
●
Built in pathway editor
●
Implementation
●
○
Representation - SVG and HTML
○
Mithril Framework
○
BridgeDB for data queries
Mithril Framework
○
Client Side MVC
○
Small API
Pathway Visualization Software:
WikiPathways-HMVC
●
●
●
Traditional MVC
○
Router will handle URL request
○
Call appropriate controller action
Problem
○
Larger applications will experience overlay in controller functionality
○
Object Oriented Solution - move shared methods into a super class
○
Introduces a new problem - content rendering now being duplicated across multiple controllers
HMVC pattern
Clinical Data: Overview
Prospective Discussion
How can pathways be used in patient care?
Union of pathway and RNA or Protein expressiveness of patient
Spray clinical data over the pathway
Research benefits
Predict patients response to external factors
More personalization - genetics level
Opposed to “one-size-fits-all”
Clinical Data: Technical Specifications of
Patient Care-System
Scalability
Clinical data may be available from multiple sources
Pathway data may be available from multiple sources
Security
Exchange format languages
BioPAX - from previous section
HL7/FHIR for clinical data - same ontological approach
Hospitals expand records to include genetics data
Clinical Data: Challenges
Causal inference
Difficult (compounded in health science)
Different proteins involved in genetic polymorphism all with their own associated phenotypes based on
expression
Association vs. Casual (latter is stronger and more desired, former has associated error)
Associations still useful as predictors
Pathways enrich our understanding of the biology
Conclusion
Survey Study of…
Web development & technical methodologies
Current trends
Implementation details
No proclamation of which ones are better
Existing pathway editing software
Highly visual and data focused
Reveals that a lot of these tools utilize aforementioned technology
References (i)
.
(1)
Bevacqua, Nicolás. "The Controversial State of JavaScript Tooling." Pony Foo. N.p., Jan. 2016. Web. 19 Apr. 2016.
(1)
"Pathway Commons Search and Visualize Public Biological Pathway Information. Single Point of Access." Pathway Commons: A Resource for Biological Pathway Analysis.
Memorial Sloan-Kettering Cancer Center, n.d. Web. 19 Apr. 2016.
(1)
"Experimental Data and Disease Models at the Heart of Biological Research."Biological Research – Pathway Studio. Elsevier, n.d. Web. 19 Apr. 2016.
(1)
Kutmon M, Riutta A, Nunes N, Hanspers K, Willighagen EL, Bohler A, Mélius J, Waagmeester A, Sinha SR, Miller R, Coort SL, Cirillo E, Smeets B, Evelo CT, Pico AR.
WikiPathways: capturing the full diversity of pathway knowledge Nucl. Acids Res. first published online October 19, 2015 doi:10.1093/nar/gkv1024
(1)
Elkstein, M. "Learn REST: A Tutorial." Learn REST: A Tutorial. N.p., n.d. Web. 19 Apr. 2016.
(1)
This Web App Best Viewed By Someone Else - Eric Meyer (Complex Spiral Consulting) Keynote. Dir. OreillyMedia. Perf. Eric Meyer. YouTube.
YouTube, 25 Apr. 2015. Web. 19 Apr. 2016.
(1)
Fowler, Martin. "GUI Architectures." Martinfowler.com. N.p., 18 July 2006. Web. 19 Apr. 2016
(1)
Doctor, Amber. "AngularJS and Web2py." Slides. N.p., n.d. Web. 19 Apr. 2016.
(1)
"About." AngularJS. Google, 2010. Web. 19 Apr. 2016.
(1)
Bostock, Mike. "D3.js - Data-Driven Documents." D3.js - Data-Driven Documents. N.p., 2015. Web. 19 Apr. 2016.
(1)
Hartl, Michael. Ruby on Rails Tutorial. 3rd ed. N.p.: Softcover, n.d. Softcover.io. Softcover. Web. 19 Apr. 2016.
References (ii)
(1)
Hubbard, Bruce. "Demystifying D3." Weblog post. I AM NOT A COG. N.p., n.d. Web. 19 Apr. 2016.
(1)
Franz, Max. "Cytoscape.js." Cytoscape.js. N.p., n.d. Web. 19 Apr. 2016.
(1)
"BioPAX.org." BioPAX.org. N.p., 12 July 2014. Web. 19 Apr. 2016.
(1)
"Manual:What Is MediaWiki?" MediaWiki. MediaWiki.org, 28 Jan. 2016. Web. 19 Apr. 2016.
(1)
Riutta, Anders. "Wikipathways/pvjs." GitHub. GitHub, Inc, n.d. Web. 19 Apr. 2016.
(1)
MacDonald, Rory. "The Hierarchical Model-View-Controller Pattern." The Hierarchical Model-View-Controller Pattern. Madetech, 1 Oct. 2014. Web.
19 Apr. 2016.
Thomas, Sterling, and Danail Bonchev. “A Survey of Current Software for Network Analysis in Molecular Biology.” Human Genomics 4.5 (2010):
353–360. PMC. Web. 19 Apr. 2016.
(2)
(1)
"Ariadne Pathway Studio® Software." Ariadne Pathway Studio® Software. Office of Science and Technology Resources, n.d. Web. 19 Apr. 2016.
(1)
"Health Personalized." Laboratory of Personalized Health. Genomas, n.d. Web. 19 Apr. 2016.
(1)
Holdford, Theodor R., Andreas Windemuth, and Gualberto Ruano. "Personalizing Public Health." Future Medicine 2.3 (2005): 239-49. Future
Medicine. Web. 19 Apr. 2016.e
Download