---
title: "How to run CaDrA within a Docker Environment"
output: rmarkdown::html_document
vignette: >
%\VignetteIndexEntry{How to run CaDrA within a Docker Environment}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
# Software requirements
- Git version >= 2.21
- Docker version >= 20.10
Don't have Git installed, see [Git Guides](https://github.com/git-guides/install-git)
Don't have Docker installed, see [Docker Engine](https://docs.docker.com/engine/install/)
# Build Docker image of `CaDrA`
## (1) Clone this repository
```bash
git clone https://github.com/montilab/CaDrA
```
## (2) Navigate to `CaDrA` folder where `Dockerfile` is stored and build its Docker image.
```bash
cd CaDrA
docker build -t montilab/cadra:latest .
```
**`-t`**: add a tag to an image such as the version of the application, e.g. *montilab/cadra:1.0.0* or *montilab/cadra:latest*
### (3) After the build is completed, check if the image is built successfully
```bash
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
montilab/cadra latest 2c22887402d3 2 hours ago 2.46GB
```
# Run `CaDrA` container with its built image
```bash
docker run --name cadra -d -p 8787:8787 -e PASSWORD=CaDrA montilab/cadra:latest
```
**`--name`**: give an identity to the container
**`-d`**: run container in detached mode
**`-p`**: map host port to container port **[host_port]:[container_port]**
**`-e`**: set a default password to access RStudio Server
For more information about the Docker syntax, see [Docker run reference](https://docs.docker.com/engine/reference/run/)
Check if the container is built successfully
```bash
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b37b6b19c4e8 montilab/cadra:latest "/init" 5 hours ago Up 5 hours 0.0.0.0:8787->8787/tcp cadra
```
# Run `CaDrA` on RStudio Server hosted within a Docker environment
Using your preferred web browser, go to http://localhost:8787. You will be prompted to log into Rstudio Server. Enter the following credentials:
username: rstudio
password: CaDrA
When the Rstudio Server is opened, copy the following commands and run them in the R console. The script is used to search for candidate drivers that associated with the YAP/TAZ Activity in the BrCA dataset that provided with the package.
```bash
# Load R packages
library(CaDrA)
library(SummarizedExperiment)
## Read in BRCA GISTIC+Mutation object
utils::data(BRCA_GISTIC_MUT_SIG)
eset_mut_scna <- BRCA_GISTIC_MUT_SIG
## Read in input score
utils::data(TAZYAP_BRCA_ACTIVITY)
input_score <- TAZYAP_BRCA_ACTIVITY
## Samples to keep based on the overlap between the two inputs
overlap <- base::intersect(base::names(input_score), base::colnames(eset_mut_scna))
eset_mut_scna <- eset_mut_scna[,overlap]
input_score <- input_score[overlap]
## Binarize FS to only have 0's and 1's
SummarizedExperiment::assay(eset_mut_scna)[SummarizedExperiment::assay(eset_mut_scna) > 1] <- 1.0
## Pre-filter FS based on occurrence frequency
eset_mut_scna_flt <- CaDrA::prefilter_data(
FS = eset_mut_scna,
max_cutoff = 0.6, # max event frequency (60%)
min_cutoff = 0.03 # min event frequency (3%)
)
# Run candidate search
topn_res <- CaDrA::candidate_search(
FS = eset_mut_scna_flt,
input_score = input_score,
method = "ks_pval", # Use Kolmogorow-Smirnow scoring function
method_alternative = "less", # Use one-sided hypothesis testing
weights = NULL, # If weights is provided, perform a weighted-KS test
search_method = "both", # Apply both forward and backward search
top_N = 7, # Evaluate top 7 starting points for each search
max_size = 7, # Maximum size a meta-feature matrix can extend to
do_plot = FALSE, # Plot after finding the best features
best_score_only = FALSE # Return all results from the search
)
## Fetch the meta-feature set corresponding to its best scores over top N features searches
topn_best_meta <- CaDrA::topn_best(topn_res)
# Visualize the best results with the meta-feature plot
CaDrA::meta_plot(topn_best_list = topn_best_meta, input_score_label = "YAP/TAZ Activity")
# Evaluate results across top N features you started from
CaDrA::topn_plot(topn_res)
```
Any questions or issues? Please report them on our [github issues](https://github.com/montilab/CaDrA/issues).