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