Skip to contents

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 future framework 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

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

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: - ORCID: 0000-0002-0452-742X - GitHub: https://github.com/Zaoqu-Liu

License

GPL-3.0