Skip to content

Architecture

lilili77 edited this page Dec 13, 2019 · 34 revisions

MORTALITYMINDER ARCHITECTURE

Overview

MortalityMinder Open Source Architecture

About R

R is an open source language and environment for statistical computing and graphics that provides a wide variety of statistical (linear and nonlinear modelling, classical statistical tests, time-series analysis, classification, clustering, …) and graphical techniques, and is highly extensible.

One of R’s strengths is the ease with which well-designed visualizations and publication-quality plots can be produced, including mathematical symbols and formulae where needed. The Data INCITE program at Rensselaer Polytechnic Institue uses R as the basis for several courses, including Intro to Data Math, Data Analytics Research Lab and Health Analytics Challenge Lab; R also is the data analytics core of many research projects at Rensselaer.

R is available as Free Software under the terms of the Free Software Foundation’s GNU General Public License in source code form. It compiles and runs on a wide variety of UNIX platforms and similar systems (including FreeBSD and Linux), Windows and MacOS. For more information about R, refer to the R Project web site.

MORTALITYMINDER was developed using R version 3.6.0 (2019-04-26), running on CentOS 7.

About R Shiny

Shiny is an open source R package that provides an elegant and powerful web framework for building web applications using R. Shiny is a framework for turning analyses into interactive web applications without requiring extensive HTML, CSS, or JavaScript knowledge. Shiny does allow Shiny app developers to extend apps with CSS themes, htmlwidgets, and JavaScript actions, capabilities that the MORTALITYMINDER team took full advantage of.

MORTALITYMINDER was deployed using R Shiny Server () on a CentOS 7 virtual server at https://mortalityminder.idea.rpi.edu/. For redundancy and to demonstrate compatibility with other hosting alternatives, MORTALITYMINDER has also been deployed "in the Cloud" at https://olyerickson.shinyapps.io/mortalityminder/

MORTALITYMINDER R Implementation

Data Selection and Download

Discuss e.g. CDC WONDER selection and download; CHR selection and download

Data Loaders, Preparation and Imputation

Discuss github directory structure Discuss common function of "loader" files Discuss purpose of saving to Rds files (ie direct binary load of data) Discuss imputation: for what purpose and our strategy

R Shiny: Server

R Shiny applications have two

R Shiny: User Interface

R shiny package provides tag function that allows users to manipulate HTML objects directly. So we can have CSS files and javascript files to style it just like normal web development. We have 4 pages in total that show 3 different perspectives of the analysis: national wide view, state view, and factor view. Users will see one page at a time and slide to the next page by clicking the right arrow. Each page is divided into three columns.

We choose to use Shiny largely because Shiny has built-in support for interacting with static plots generated by R. By choosing State and Cause of Death on the top navigation bar, Users can see the related plots change according to the choice. Some plots itself are interactive. We can choose different counties and social determinants by clicking on the plots, and other related plots will rerender accordingly as well.

This is all done in Shiny!

Web Interface Framework: Fullpage.js

This is a javascript library that creates fullscreen scrolling websites. MortalityMinder is based on landscape sliders functions of the package.

Clone this wiki locally