Rvisdiff
is an R package distributed as part of the
Bioconductor project. To install the package, start R and enter:
if (!requireNamespace("BiocManager", quietly = TRUE)) {
install.packages("BiocManager")
}
BiocManager::install("Rvisdiff")
The GitHub repository for Rvisdiff
is https://github.com/BioinfoUSAL/Rvisdiff. This is the
place to file an issue, report a bug, or provide a pull request.
Once Rvisdiff
is installed, it can be loaded by the
following command.
Differential expression analysis generates a big report which needs a
manual inspection for the optimization and interpretation of results.
Researchers have designed visualization techniques to facilitate these
tasks but their generation with code or statistics packages avoids the
quick and massive exploration of results. We have designed
Rvisdiff
to integrate graphs in an easy to use and
interactive web page.The user can explore the differential expression
results and the source expression data in the same view.
As input data the package receives two tables with the differential expression results and the raw/normalized expression data. It detects the default output of DESeq2, edgeR and limma packages and no data conversion is needed. The user can also generate a custom data frame which integrates a statistical testing output with a fold change and mean calculation for each variable.
As output the package generates a local HTML page that can be seen in a Web browser. It is not necessary the installation of additional software such as application servers or programming languages. This feature ensures portability and ease of use. Moreover, results are stored in the local computer, avoiding any network sharing or data upload to external servers, which ensures the data privacy.
In this example we use as input the airway
data package which contains the read counts in genes for an RNA-Seq
experiment on four human airway smooth muscle cell lines treated with
dexamethasone. The code below shows how to load the package and the data
extraction of main data features that we need for the differential
expression analysis and the posterior visualization with
Rvisdiff
. The countdata
variable contains a
data frame with the number of sequence counts for each gene (rows) and
sample (columns). The coldata
variable contains input
phenotypes for the differential expression analysis and its posterior
representation.
The following code loads the necessary libraries and formats the input sample conditions.
The code below shows how to perform a differential expression
analysis with DESeq2 and
its representation with Rvisdiff
.
The code below shows how to perform a differential expression
analysis with edgeR and
its representation with Rvisdiff
.
library(edgeR)
design <- model.matrix(~ cell + dex, data = coldata)
dl <- DGEList(counts = countdata, group = coldata$dex)
dl <- calcNormFactors(dl)
dl <- estimateDisp(dl, design=design)
de <- exactTest(dl,pair=1:2)
tt <- topTags(de, n = Inf, adjust.method = "BH", sort.by = "none")
DEreport(tt, countdata, coldata$dex)
The code below shows how to perform a differential expression
analysis with limma and
its representation with Rvisdiff
.
library(limma)
design <- model.matrix(~ 0 + dex + cell, data = coldata)
contr <- makeContrasts(dextrt - dexuntrt,levels=colnames(design))
limmaexprs <- voom(countdata, design)
fit <- lmFit(limmaexprs, design)
fit <- contrasts.fit(fit, contrasts=contr)
fit <- eBayes(fit)
limmares <- topTable(fit, coef = 1, number = Inf, sort.by = "none",
adjust.method = "BH")
DEreport(limmares, countdata, coldata$dex)
The code below shows how to perform a Wilcoxon test with expression
data and its representation with Rvisdiff
. This example can
be also followed for the representation of resulting analysis from
differential means tests.
untrt <- countdata[,coldata$dex=="untrt"]
trt <- countdata[,coldata$dex=="trt"]
library(matrixTests)
wilcox <- col_wilcoxon_twosample(t(untrt), t(trt))
stat <- wilcox$statistic
p <- wilcox$pvalue
log2FoldChange <- log2(rowMeans(trt)+1) - log2(rowMeans(untrt)+1)
wilcox <- cbind(stat = stat, pvalue = round(p, 6),
padj = p.adjust(wilcox[,2], method = "BH"),
baseMean = rowMeans(countdata),
log2FoldChange = log2FoldChange)
rownames(wilcox) <- rownames(countdata)
DEreport(wilcox, countdata, coldata$dex)
Figure 1 shows the resulting Web page generated with the
DEreport
function. The user can select which genes appear
in the graphs selecting them in the results table. It contains the
following graphs:
Figure 1 web interface
## R version 4.4.2 (2024-10-31)
## Platform: x86_64-pc-linux-gnu
## Running under: Ubuntu 24.04.1 LTS
##
## Matrix products: default
## BLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
## LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.26.so; LAPACK version 3.12.0
##
## locale:
## [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
## [3] LC_TIME=en_US.UTF-8 LC_COLLATE=C
## [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
## [7] LC_PAPER=en_US.UTF-8 LC_NAME=C
## [9] LC_ADDRESS=C LC_TELEPHONE=C
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
##
## time zone: Etc/UTC
## tzcode source: system (glibc)
##
## attached base packages:
## [1] stats4 stats graphics grDevices utils datasets methods
## [8] base
##
## other attached packages:
## [1] matrixTests_0.2.3 edgeR_4.5.0
## [3] limma_3.63.2 DESeq2_1.47.1
## [5] airway_1.26.0 SummarizedExperiment_1.37.0
## [7] Biobase_2.67.0 GenomicRanges_1.59.0
## [9] GenomeInfoDb_1.43.1 IRanges_2.41.1
## [11] S4Vectors_0.45.2 BiocGenerics_0.53.3
## [13] generics_0.1.3 MatrixGenerics_1.19.0
## [15] matrixStats_1.4.1 Rvisdiff_1.5.0
## [17] BiocStyle_2.35.0
##
## loaded via a namespace (and not attached):
## [1] gtable_0.3.6 xfun_0.49 bslib_0.8.0
## [4] ggplot2_3.5.1 lattice_0.22-6 vctrs_0.6.5
## [7] tools_4.4.2 parallel_4.4.2 tibble_3.2.1
## [10] fansi_1.0.6 pkgconfig_2.0.3 Matrix_1.7-1
## [13] lifecycle_1.0.4 GenomeInfoDbData_1.2.13 compiler_4.4.2
## [16] statmod_1.5.0 munsell_0.5.1 codetools_0.2-20
## [19] htmltools_0.5.8.1 sys_3.4.3 buildtools_1.0.0
## [22] sass_0.4.9 yaml_2.3.10 pillar_1.9.0
## [25] crayon_1.5.3 jquerylib_0.1.4 BiocParallel_1.41.0
## [28] DelayedArray_0.33.2 cachem_1.1.0 abind_1.4-8
## [31] locfit_1.5-9.10 digest_0.6.37 maketools_1.3.1
## [34] fastmap_1.2.0 grid_4.4.2 colorspace_2.1-1
## [37] cli_3.6.3 SparseArray_1.7.2 magrittr_2.0.3
## [40] S4Arrays_1.7.1 utf8_1.2.4 UCSC.utils_1.3.0
## [43] scales_1.3.0 rmarkdown_2.29 XVector_0.47.0
## [46] httr_1.4.7 evaluate_1.0.1 knitr_1.49
## [49] rlang_1.1.4 Rcpp_1.0.13-1 glue_1.8.0
## [52] BiocManager_1.30.25 jsonlite_1.8.9 R6_2.5.1
## [55] zlibbioc_1.52.0