# Graphical desktop environment on the UK Biobank RAP (Research Analysis Platform) This document contains details on installing a graphical Linux desktop environment on the UK Biobank Research Analysis Platform (RAP). These instructions use a pre-prepared Docker image which contains Ubuntu and the XFCE desktop environment, and has noVNC installed for remote access to the desktop. Docker images are available which have a Linux desktop environment and noVNC set up - you can download and use these Docker images on the RAP via the _ttyd_ application. > For advanced users, it is possible to install noVNC directly into a RAP session via the _ttyd_ or _Cloud Workstation_ applications, but accomplishing that is beyond the scope of this document. Feel free to inspect/re-use the commands in the [`pauldmccarthy/rap-novnc-docker-images` `Dockerfile` definitions](https://github.com/pauldmccarthy/rap-novnc-docker-images) if you wish to build your own solution. ## Instructions 1. Log into the RAP portal at https://ukbiobank.dnanexus.com/login 2. Click on _Tools_ at the top, and select _Tools Library_. 3. Find and click on the _ttyd_ app (it may not be on the first page). 4. Click the _Run_ button at the top. 5. Set _Output to_ to a location within the RAP project workspace you wish to work within, and click _Next_. 6. Click the _Start Analysis_ button at the top-right. 7. Click _Edit Instance Type_ to select your RAM/CPU resources. 8. Click the _Launch Analysis_ button. 9. You will be taken to the _Monitor_ page - click on the new entry corresponding to your new _ttyd_ session. 10. You will need to wait several minutes for the session to start up. When it is ready, click the _Open Worker URL_ link. This wil open a new web browser tab with a UNIX shell. 11. Run these commands in the shell (change `pauldmccarthy/ubuntu-novnc` to the Docker image you wish to run - more on this below): ```bash env | egrep "^DX_" > dx.env docker run --detach --name novnc \ --network host \ --env-file dx.env \ -v /mnt/project:/mnt/project \ pauldmccarthy/ubuntu-novnc docker logs -f novnc ``` 12. Once the image has started running, a message starting with _Navigate to this URL_ will be printed. Copy+paste the URL into a new web browser window to open your desktop session. The [`pauldmccarthy/ubuntu-novnc`](https://hub.docker.com/r/pauldmccarthy/ubuntu-novnc) Docker image is a minimal Ubuntu system with the XFCE desktop environment installed, but without much else. Once you have started running the container, you can install whatever software you want using `apt` or `micromamba`. The `dx` command is also available, gibving you access to your RAP project workspace. ## Use a different Docker image, or build your own Some other Docker images are available - for example: - The [`pauldmccarthy/fsl-novnc`](https://hub.docker.com/r/pauldmccarthy/fsl-novnc) image comes with [FSL](https://fsl.fmrib.ox.ac.uk/fsl/docs/) installed, for MRI image analysis. - The [`pauldmccarthy/fsleyes-novnc`](https://hub.docker.com/r/pauldmccarthy/fsleyes-novnc) image just contains [FSLeyes](https://fsl.fmrib.ox.ac.uk/fsl/docs/utilities/fsleyes.html) and a few low-level FSL utilities, for MRI image visualisation and basic analysis. - The [`pauldmccarthy/workbench-novnc`](https://hub.docker.com/r/pauldmccarthy/workbench-novnc) image contains [Connectome Workbench](https://humanconnectome.org/software/connectome-workbench), including the `wb_view` and `wb_command` utilites for NIfTI/CIfTI visualisation and processing. You can also build your own Docker image with whatever software you need - simply use `pauldmccarthy/ubuntu-novnc` as the base image, or copy the contents of its `Dockerfile` into your own. Refer to the [GitHub repository](https://github.com/pauldmccarthy/rap-novnc-docker-images) for more details. ## Access your UK Biobank data When running on the RAP, we recommend running the Docker image with the following commands: ```bash env | egrep "^DX_" > dx.env docker run --name novnc --detach \ --network host \ --env-file dx.env \ -v /mnt/project:/mnt/project \ pauldmccarthy/ubuntu-novnc docker logs -f novnc ``` The `pauldmccarthy/*-novnc` Docker images have the `dx` command installed, however in order for it to be associated with your RAP account, you need to pass the relevant environment variables from the _ttyd_ session into the running Docker container. You can do this by saving them to a file, and then passing that file to `docker run` via its `--env-file` option. You may also need to re-select your RAP project by running: ```bash dx select ``` Once this has been done, you can use `dx` to upload/download data to/from your RAP workspace: - `dx ls` - list the contents of your project workspace. - `dx download <file>` - download a file from your project workspace to the workstation. - `dx upload <file>` - upload a file from the workstation to your project workspace. Within the _ttyd_ session, your RAP project workspace is also mounted (read-only) at `/mnt/project/` - in the above `docker run` command, this is mounted into the Docker container via the `-v` option. This means you can access your Project files without having to run `dx download`. The Docker container must be started in "detached" mode (via the `--detach` option) - this ensures that your desktop session is not killed in the event that you close the _ttyd_ browser window (or e.g. close your laptop lid).