Science Flask is a web-app template for online
Bootstrap CSS. It allows you to build a modern web-app from your
research tool in a matter of hours (as opposed to a few weeks).
It comes with batteries included:
robust form validation
secure user management
uploading and checking of data files
asyncronous job submission and handling
email notifications of job status
detailed tutorial for deployment
nicely designed user-interface
logging to email and files
compatible with Python3
It's also open-source and free.
This demo app runs on AWS on a t2.micro instance. Check the deployment.md which explains the necessary steps to get your app to this stage.
For more info, documentation and source code please go to
To demonstrate the various features of Science Flask, this demo
implements a really simple scientific app which does the following:
Users can register with an academic email address.
Upload one or two datasets as .csv or .txt files.
A series of checks are performed on the uploaded datasets:
all columns have to be numerical
each dataset must have a feature and sample number that is between a
predefined minimum and maximum
if we have two datasets uploaded by the user, they need a minimum number
of intersecting samples.
missing values are imputed with their column-wise median
Then the user can submit an analysis using the uploaded files.
During the analysis the app will select a user defined number
of columns with the highest variance.
These columns/features are then used to calculate a correlation matrix between them.
If there's only one dataset uploaded, the correlations are calculated
between the features of this one dataset. If two datasets are uploaded then
three matrices/plots are produced: two for the features of the individual
datasets and another that shows the correlation between the features of the
two disperate datasets.
The resulting p-values of the correlation matrix are filtered using one of
the user selected corrrection for multiple testing methods: Bonferroni or
Benjamini Hochberg. The user can also specify the the alpha-level for
hypothesis testing. Only correlations that pass both of these will be displayed.
The tables and heatmap of correlations can be downloaded by the user or