This is a package containing unCOVERApp, a shiny graphical application for clinical assessment of sequence coverage. unCOVERApp allows:
to display interactive plots showing sequence gene coverage down to base-pair
resolution and functional/ clinical annotations of sequence
positions within coverage gaps (
Coverage Analysis page).
to calculate the maximum credible population allele frequency
(http://cardiodb.org/allelefrequencyapp/) (AF) to be applied as AF
filtering threshold tailored to the model of the disease-of-interest
instead of a general AF cut-off (e.g. 1 % or 0.1 %)
Calculate AF by allele frequency app page).
to calculate the 95 % probability of the binomial distribution to observe at
least N variant-supporting reads (N is the number of successes) based on a
user-defined allele fraction that is expected for the variant
(which is the probability of success). Especially useful to obtain the
range of variant-supporting reads that is most likely to occur at a given
a depth of coverage (DoC)(which is the number of trials) for somatic variants with low allele fraction
Install the latest version of
install.packages("BiocManager") BiocManager::install("uncoverappLib") library(uncoverappLib)
Alternatively, it can be installed from GitHub using:
library(devtools) install_github("Manuelaio/uncoverappLib") library(uncoverappLib)
When users load
uncoverappLib for the first time, the first thing to do is a
download of annotation files.
getAnnotationFiles() function allows to download the annotation files from Zenodo and parse it using
uncoverappLib package. The function does not return an R object but store the
annotation files in a cache (
sorted.bed.gz.tbi) and show
the cache path. The local cache is managed by the
BiocFileCache Bioconductor package.
It is sufficient run the function
getAnnotationFiles(verbose= TRUE) one time
after installing uncoverappLib package as shown below. The preprocessing time
can take few minutes, therefore during running vignette, users can provide
as a parameter to download an example annotation files, as below.
library(uncoverappLib) #> #> getAnnotationFiles(verbose= TRUE, vignette= TRUE) #> your file already exists in cache #>  "/home/biocbuild/.cache/uncoverappLib/POLG.bed.gz" #>  "/home/biocbuild/.cache/uncoverappLib/POLG.bed.gz.tbi"
The preprocessing time can take few minutes.
All unCOVERApp functionalities are based on the availability of a BED-style formatted input file containing tab-separated specifications of genomic coordinates (chromosome, start position, end position), the coverage value, and the reference:alternate allele counts for each position. In the first page Preprocessing, users can prepare the input file by specifying the genes to be examined and the BAM file(s) to be inspected. Users should be able to provide:
Load a gene(s) filebox. An example file is included in extdata of uncoverappLib packages
gene.list<- system.file("extdata", "mygene.txt", package = "uncoverappLib")
Load bam file(s) listbox. In the output file, sample 1,2,3.., correspond to the sample in the bam file bam.list file listed in row 1,2,3, …. Type the following command to load our example:
bam_example <- system.file("extdata", "example_POLG.bam", package = "uncoverappLib") print(bam_example) #>  "/tmp/RtmpshJOQz/Rinst5d468b06cd4/uncoverappLib/extdata/example_POLG.bam" # "/Library/Frameworks/R.framework/Versions/3.6/Resources/library/uncoverappLib/extdata/example_POLG.bam" write.table(bam_example, file= "./bam.list", quote= FALSE, row.names = FALSE, col.names = FALSE)
run.uncoverapp() command. After running
the shiny app appears in your deafult browser.
In the first page Preprocessing users can load
Load a gene(s) file and
Load bam file(s) list.
Users should also specify the reference genome in
Genome box and the chromosome
notation of their BAM file(s) in
Chromosome Notation box. In the BAM file,
the number option refers to 1, 2, …, X,.M chromosome notation, while the chr
option refers to chr1, chr2, … chrX, chrM chromosome notation.
Users can specify the
minimum mapping quality (MAPQ) value in box and
minimum base quality (QUAL) value in box. Default values for both mapping and
base qualities is 1.
To run the example, choose chr chromosome notation, hg19 genome reference and leave minimum mapping and base qualities to the default settings, as shown in the following screenshot of the Preprocessing page:
unCOVERApp input file generation fails if incorrect gene names are specified. An unrecognized gene name(s) table is displayed if such a case occurs. Below is a snippet of a the unCOVERApp input file generated as a result of the preprocessing step performed for the example
chr15 89859516 89859516 68 A:68 chr15 89859517 89859517 70 T:70 chr15 89859518 89859518 73 A:2;G:71 chr15 89859519 89859519 73 A:73 chr15 89859520 89859520 74 C:74 chr15 89859521 89859521 75 C:1;T:74
The preprocessing time depends on the size of the BAM file(s) and on the number
of genes to investigate. In general, if many (e.g. > 50) genes are to be analyzed,
we would recommend to use
buildInput function and run it in R console
before launching the app as shown in following example.
library(dplyr) #> #> Attaching package: 'dplyr' #> The following objects are masked from 'package:stats': #> #> filter, lag #> The following objects are masked from 'package:base': #> #> intersect, setdiff, setequal, union gene.list<- system.file("extdata", "mygene.txt", package = "uncoverappLib") bam_example <- system.file("extdata", "example_POLG.bam", package = "uncoverappLib") cat(bam_example, file = "bam.list", sep = "\n") temp_dir=tempdir() buildInput(geneList= gene.list, genome= "hg19", type_bam= "chr", bamList= "bam.list", outDir= temp_dir) #> Reading gene name started at: #> 2020-10-28 00:08:55 #> 'select()' returned 1:1 mapping between keys and columns #> Control HGNC gene name started at: #> 2020-10-28 00:08:55 #> 'select()' returned 1:many mapping between keys and columns #> Write output file in directory /tmp/RtmpM9jhT4/outputWed_Oct_28_2020.bed #> 2020-10-28 00:09:00
Alternatively, other tools do a similar job and can be used to generate the
unCOVERApp input file ( for instance:
In this case, users can load the file directly on
Coverage Analysis page in
Select input file box.
Once pre-processing is done, users can move to the Coverage Analysis page
and push the
load prepared input file button.
To assess sequence coverage of the example, the following input parameters must be specified in the sidebar of the Coverage Analysis section
Reference Genome : reference genome (hg19 or hg38); choose hg19
Gene name and push
Apply button: write the HGNC official gene name POLG
Coverage threshold : specify coverage threshold (e.g. 20x)
Sample : sample to be analyzed, choose 1
Transcript number : transcript number. Choose 1
exon number: to zoom in a specific exon. Choose 10
Other input sections, as
START genomic position,
END genomic position and
Region coordinate, are dynamically filled.
unCOVERApp generates the following outputs :
unfiltered BED file in
bed file and the corresponding filtered dataset in
information about POLG gene in
UCSC gene table