Documentation: https://zaoqu-liu.github.io/MOFSR/
Multi-Omics Fusion for Subtype Recognition
MOFSR is a comprehensive R package designed for integrative analysis of multi-omics data to identify disease subtypes and characterize molecular heterogeneity. The package implements 15 state-of-the-art multi-omics clustering algorithms with internal implementations to ensure maximum cross-platform compatibility and reproducibility.
Key Features
- 15 Multi-Omics Integration Algorithms: SNF, wSNF, CPCA, iClusterBayes, IntNMF, LRAcluster, MCIA, MOFA, NEMO, PINSPlus, RGCCA, SGCCA, CIMLR, BCC, and Late Fusion
- 17 Classification Methods: Including SVM, Random Forest, XGBoost, Neural Networks, and ensemble approaches
-
Parallel Computing: Built-in support via the
futureframework for large-scale analyses - Comprehensive Visualization: UMAP, consensus heatmaps, silhouette plots, and survival curves
- Data Preprocessing: Normalization, feature filtering, missing value imputation, and batch correction
- Cluster Quality Assessment: PAC, CHI, silhouette width, and ARI metrics
Methodological Overview
MOFSR provides a unified interface for multi-omics subtyping through three major analytical paradigms:
| Paradigm | Algorithms | Description |
|---|---|---|
| Early Fusion | CPCA, MCIA, RGCCA, SGCCA | Concatenate or jointly decompose data matrices before clustering |
| Late Fusion | BCC, Late Fusion, PINSPlus | Cluster each omics separately, then combine results |
| Intermediate Fusion | SNF, wSNF, CIMLR, NEMO | Construct similarity networks and fuse at the network level |
| Model-Based | MOFA, iClusterBayes, IntNMF, LRAcluster | Probabilistic or matrix factorization approaches |
Installation
From R-Universe (Recommended)
install.packages("MOFSR", repos = "https://zaoqu-liu.r-universe.dev")From GitHub
# install.packages("remotes")
remotes::install_github("Zaoqu-Liu/MOFSR")Quick Start
library(MOFSR)
# Prepare multi-omics data (features × samples)
data_list <- list(
mRNA = mRNA_matrix,
miRNA = miRNA_matrix,
methylation = methylation_matrix
)
# Run SNF clustering
result <- run_snf(data_list, n_clusters = 3)
# Or use the unified interface
result <- run_integration(data_list, algorithm = "SNF", n_clusters = 3)
# Compare multiple algorithms
algorithms <- c("SNF", "RGCCA", "CIMLR", "MOFA")
results <- lapply(algorithms, function(alg) {
run_integration(data_list, algorithm = alg, n_clusters = 3)
})
names(results) <- algorithms
# Evaluate clustering consistency
ari_matrix <- compare_clusterings(results)Supported Algorithms
| Algorithm | Reference | Year |
|---|---|---|
| SNF | Wang et al., Nature Methods | 2014 |
| CIMLR | Ramazzotti et al., Nature Communications | 2018 |
| iClusterBayes | Mo et al., Biostatistics | 2018 |
| IntNMF | Chalise & Fridley, PLoS ONE | 2017 |
| RGCCA/SGCCA | Tenenhaus & Tenenhaus, Psychometrika | 2011 |
| NEMO | Rappoport & Shamir, Bioinformatics | 2019 |
| PINSPlus | Nguyen et al., Genome Research | 2017 |
| MCIA | Meng et al., BMC Bioinformatics | 2014 |
| LRAcluster | Wu et al., Cancer Informatics | 2015 |
| BCC | Lock & Dunson, Bioinformatics | 2013 |
Data Preprocessing
# Normalize data
data_norm <- normalize_omics(data_list, method = "zscore")
# Filter low-variance features
data_filtered <- filter_low_variance(data_list, min_var = 0.01)
# Handle missing values
data_imputed <- handle_missing(data_list, method = "knn", k = 5)
# Batch correction
data_corrected <- correct_batch(data_list, batch = batch_labels)
# Quality control summary
qc_report <- qc_summary(data_list)Visualization
# UMAP visualization
umap_coords <- compute_umap(data_list)
plot_umap(umap_coords, result$Cluster)
# Consensus matrix heatmap
cc_result <- RunCC(data_list[[1]], maxK = 6)
plot_consensus_heatmap(cc_result[[3]]$consensusMatrix)
# Silhouette analysis
plot_silhouette(result$Cluster, dist(t(data_list[[1]])))
# Survival analysis (requires survival data)
plot_survival(time, event, result$Cluster)Parallel Computing
library(future)
plan(multisession, workers = 4)
# Parallel consensus clustering
result <- parallel_consensus_cluster(data, max_k = 6, n_reps = 1000)
# Parallel feature selection
features <- parallel_feature_selection(data, labels, n_bootstrap = 100)System Requirements
- R ≥ 4.0.0
- Operating System: Windows, macOS, Linux
- Core Dependencies: stats, graphics (base R)
- Optional: ggplot2, survival, future (for enhanced functionality)
All 15 clustering algorithms are implemented internally without external dependencies, ensuring reproducibility across different computing environments.
Citation
If you use MOFSR in your research, please cite:
Liu Z (2024). MOFSR: Multi-Omics Fusion for Subtype Recognition.
R package version 2.3.0, https://github.com/Zaoqu-Liu/MOFSR
Related Publications
The algorithms implemented in MOFSR are based on peer-reviewed publications. Please also cite the original algorithm papers when using specific methods.
Author
Zaoqu Liu - Email: liuzaoqu@163.com - ORCID: 0000-0002-0452-742X - GitHub: https://github.com/Zaoqu-Liu