ReViewCNV is a containerized Shiny App for the visualization of germinal Copy Number Variants (CNVs). It was created to visualize CNVs from exome or gene panels sequencing identified by the algorithm EXCAVATOR2
ReViewCNV has now increased its compatibility and accepts as input a list of CNVs identified by any bioinformatic tool!
The App allows the user to compare the CNVs of interst with population polymorphisms present in different public datasets (AnnotSV, DGV and gnomAD) and to identify the genes present in correspondence of the altered regions (genome-wide). The exons of the genes present in correspondance of the CNVs of interest are highlighted. It is possible to visualize up to three individuals at the same time in synchronized plots, facilitating family studies and the identification of de novo mutations.
In the container are present two apps: app_Excavator2.R and app_CNV_tsv.R. The app_Excavator2.R is specific for EXCAVATOR2. The app_CNV_tsv.R accepts as input a tsv file (without header) with three columns indicating for each CNV the genomic coordinates (Chromosome, Start and End) and optionally a fourth column specifying the CNV type (i.e. deletion or duplication). Example input files for the app_Excavator2.R are avialble in the folder TEST_TRIO_app_Excavator2, while for the app_CNV_tsv.R in the folder test_TRIO_app_CNV_tsv.
The ShinyApp has been developed in R (v. 4.4.1) using RStudio as IDE and the following R libraries: arrow, bslib, dplyr, htmlwidgets,plotly, shiny, shinyHugePlot and stringr. The base image used for the Dockerfile is rhub/rminimal.
To build the image, download the repository, open the terminal, go to the folder with the downloaded files and run the command below (this will take around 25 minutes):
sudo docker buildx build -t shiny-app-excavator2 .
sudo docker run --name shiny-app-excavator2 -p 3838:3838 shiny-app-excavator2 Rscript app_Excavator2.R
sudo docker run --name shiny-app-excavator2 -p 3838:3838 shiny-app-excavator2 Rscript app_CNV_tsv.R
To create the .sif file it is necessary to build the Docker image first (see above). The Docker image should be saved locally as a .tar file using the command below:
sudo docker save shiny-app-excavator2 > shiny-app-excavator2.tar
singularity build shiny-app-excavator2.sif docker-archive://shiny-app-excavator2.tar (if using singularity)
apptainer build shiny-app-excavator2.sif docker-archive://shiny-app-excavator2.tar (if using apptainer)
singularity run shiny-app-excavator2.sif Rscript app_Excavator2.R (if using singularity)
apptainer run shiny-app-excavator2.sif Rscript app_Excavator2.R (if using apptainer)
singularity run shiny-app-excavator2.sif Rscript app_CNV_tsv.R (if using singularity)
apptainer run shiny-app-excavator2.sif Rscript app_CNV_tsv.R (if using apptainer)
The animated gifs below illustrate how the app works. The first one shows how to upload the input files in the app_CNV_tsv.R. The other gifs show the app functionalities in app_Excavator2.R, they are almost the same in app_CNV_tsv.R.
Do you have any question or suggestion? Please let us know, we look forward to your feedback!