Skip to contents

This function performs MultiModality Fusion Subtyping (MOFS) analysis by utilizing multiple clustering algorithms for multi-modality data integration. The user can flexibly select the desired clustering algorithms and adjust relevant parameters.

Usage

RunMOFS(
  data,
  methods,
  max.clusters = 6,
  optimal.clusters = 3,
  linkage.method = "ward.D2",
  clustering.algorithm = "hc",
  distance.metric = "euclidean",
  resampling.iterations = 10000,
  resample.proportion = 0.7,
  silhouette.cutoff = 0.4,
  ...
)

Arguments

data

A list of matrices where each element represents a different modality (e.g., RNA, protein, methylation). Each matrix should have rows as features and columns as samples.

methods

Character vector. The clustering algorithms to use. Options are: "CPCA", "iClusterBayes", "IntNMF", "LRAcluster", "MCIA", "NEMO", "PINSPlus", "RGCCA", "SGCCA", "SNF", "CIMLR", "BCC". At least two methods must be specified.

max.clusters

Integer. The maximum number of clusters to evaluate during consensus clustering analysis (default: 6).

optimal.clusters

Integer. The optimal number of clusters to select from the consensus clustering analysis (default: 3).

linkage.method

Character. The linkage method to use for hierarchical clustering (default: "ward.D2").

clustering.algorithm

Character. The clustering algorithm to use during consensus clustering (default: 'hc').

distance.metric

Character. The distance metric to use for clustering (default: "euclidean").

resampling.iterations

Integer. The number of resampling iterations for consensus clustering (default: 10000).

resample.proportion

Numeric. The proportion of items to resample in each iteration for consensus clustering (default: 0.7).

silhouette.cutoff

Numeric. Silhouette coefficient cutoff value for selecting core set samples (default: 0.4).

...

Additional parameters specific to the chosen clustering algorithms.

Value

A list containing the results for each specified clustering algorithm, as well as the results of further analysis including consensus clustering, silhouette scores, core set identification, and PCA.

Details

The function performs MultiModality Fusion Subtyping (MOFS) by running multiple clustering algorithms on the input multi-modality data. The results of each clustering algorithm are stored for further analysis, including binary cluster assignments, Jaccard distance calculation, consensus clustering analysis, Calinski-Harabasz index calculation, silhouette analysis, and PCA.

The steps involved are: 1. Running the specified clustering algorithms on the input data. 2. Extracting binary cluster assignments from the clustering results. 3. Calculating Jaccard distance between clusters. 4. Performing consensus clustering analysis to identify stable clusters. 5. Calculating the Calinski-Harabasz index to assess clustering quality. 6. Performing silhouette analysis to evaluate cluster cohesion and separation. 7. Identifying a core set of samples based on the silhouette coefficient cutoff. 8. Performing PCA on the core set for dimensionality reduction and visualization.

Author

Zaoqu Liu; Email: liuzaoqu@163.com

Examples

# Example usage:
data1 <- matrix(rnorm(10000), nrow = 100, ncol = 100)
data2 <- matrix(rnorm(10000), nrow = 100, ncol = 100)
colnames(data1) <- colnames(data2) <- paste0("Sample", 1:100)
data_list <- list(data1, data2)

# Run MultiModality Fusion Subtyping using CPCA and CIMLR
result <- RunMOFS(data = data_list, methods = c("CPCA", "CIMLR"), max.clusters = 6, optimal.clusters = 3, linkage.method = "ward.D2", clustering.algorithm = "hc", distance.metric = "euclidean", resampling.iterations = 10000, resample.proportion = 0.7, silhouette.cutoff = 0.4)