We provide an R implementation of DIVAS (Prothero et al., 2024), a statistical method for multi-modal data integration. Via statistical analysis of subspaces, DIVAS identifies joint, partially shared, and individual variation across multiple data blocks in a completely data-driven way. In addition to translating the original MATLAB implementation into an accessible R package, we also provide visualization tools and worked examples for exploring DIVAS results in practice.
Documentation website: https://byronsyun.github.io/DIVAS/
The DIVAS package requires the current 1.x line of the CVXR package for compatibility with the SCS solver interface. The package has been tested with CVXR 1.0-15. In DESCRIPTION, DIVAS also declares CVXR (>= 1.0-15) as a package dependency.
# Install devtools (if not already installed)
install.packages("devtools")
# Install CVXR 1.x. DIVAS has been tested with CVXR 1.0-15.
install.packages("remotes")
remotes::install_version("CVXR", version = "1.0-15", repos = "https://cloud.r-project.org")
# Alternatively, install the latest CRAN release if it is compatible with your R version.
# install.packages("CVXR")You can install the development version of DIVAS from GitHub using devtools:
# Install DIVAS package from the main branch on GitHub
devtools::install_github("ByronSyun/DIVAS/pkg", ref = "main")
# Or install from a local folder if you have cloned the repository
# devtools::install("path/to/DIVAS-main/pkg")The DIVAS package supports analysis of various data formats. Here is a simple example using the built-in toy MATLAB dataset:
library(R.matlab)
library(DIVAS)
data_path <- system.file("extdata", "toyDataThreeWay.mat", package = "DIVAS")
data <- readMat(data_path)
datablock <- list(
X1 = data$datablock[1,1][[1]][[1]],
X2 = data$datablock[1,2][[1]][[1]],
X3 = data$datablock[1,3][[1]][[1]]
)
result <- DIVASmain(datablock)
dataname <- paste0("DataBlock_", 1:length(datablock))
plots <- DJIVEAngleDiagnosticJP(datablock, dataname, result, 566, "Demo")
print(plots)For more detailed tutorials, see the documentation website and linked case studies below.
We provide the following examples to illustrate the use of DIVAS in different scenarios.
| Dataset | Brief Description | Vignette Link | Format | Primary Reference |
|---|---|---|---|---|
| toyDataThreeWay.mat | Synthetic 3-block data with known joint structures | Toy Dataset Example | .mat | Prothero et al. (2024) |
| gnp_imputed.qs | GNP economic time series data | GNP Dataset Example | .qs | Stock & Watson (2016) |
| COVID-19 Multi-Omics | 6-block integration: scRNA-seq (4 cell types), proteomics, metabolomics from 114 COVID-19 patient samples | COVID Case Study | .rds | Su et al. (2020) |
This project serves as a comprehensive, real-world application of the DIVAS package on a complex multi-omics dataset from a COVID-19 patient cohort. It demonstrates the full data processing and analysis workflow, from raw data cleaning to final DIVAS results, showcasing the practical utility of the package.
➡️ View the full analysis on GitHub
If you use DIVAS, please cite the manuscript:
Sun, Y., Marron, J. S., Lê Cao, K.-A., & Mao, J. (2026). DIVAS: an R package for identifying shared and individual variations of multiomics data. bioRxiv, 2026.01.12.698985. https://doi.org/10.64898/2026.01.12.698985
The package citation is also available in R with citation("DIVAS") and on the Authors and Citation page.
- Jiadong Mao - Lead Developer, Maintainer
- Yinuo Sun - Package Developer, Maintainer
Prothero, J., et al. (2024). Data integration via analysis of subspaces (DIVAS). TEST.
Su, Y., Chen, D., Yuan, D., et al. (2020). Multi-Omics Resolves a Sharp Disease-State Shift between Mild and Moderate COVID-19. Cell, 183(6), 1479-1495. https://doi.org/10.1016/j.cell.2020.10.037
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3) - see the LICENSE file for details.
