R Shiny Example Web App
This is an example web applet that demonstrates how to build and run an R Shiny application on DNAnexus.
View full source code on GitHub
Creating the web application
Inside the dxapp.json
, you would add "httpsApp": {"ports":[443], "shared_access": "VIEW"}
to tell the worker to expose this port.
R Shiny needs two scripts, server.R
and ui.R
, which should be under resources/home/dnanexus/my_app/
. When a job starts based on this applet, the resources
directory is copied onto the worker, and since the ~/
path on the worker is /home/dnanexus
, that means you now have ~/my_app
with those two scripts inside.
From the main applet script code.sh
, we simply start shiny pointing to ~/my_app
repo, serving its mini-application on port 443.
Note that for all web apps, if everything is running smoothly and no errors are encountered (the ideal case), the line of code that starts the server will keep it running forever. The applet stops only when it is terminated. This also means that any lines of code after the server starts will not be executed.
Modifying this example for your own applet
To make your own applet with R Shiny, simply copy the source code from this example and modify server.R
and ui.R
inside resources/home/dnanexus/my_app
.
How to rebuild the shiny asset
To build the asset, run the dx build_asset
command and pass shiny-asset
, i.e. the name of the directory holding dxasset.json
:
This will output a record ID record-xxxx
that you can then put into the applet’s dxapp.json
in place of the existing one:
Build the applet
Now build and run the applet itself:
Once it spins up, you can go to that job’s designated URL based on its job ID, https://job-xxxx.dnanexus.cloud/, to see the result.
Last updated