A machine learning framework for accurate sample clustering and feature discovery from multi-omics data.
MIA is a machine learning framework for accurate sample clustering and feature discovery from multi-omics data.
With the explosive growth of diverse omics data, multi-omics integrative analysis has become a routine and popular approach to cluster samples and identify feature genes. Although many efforts have been made to facilitate multi-omics integrative analysis, it remains challenging in multi-dimensional data integration, feature selection for unlabeled samples, and applicability to small sample sets yet with large-scale features. Most importantly, there still lacks a web service to facilitate such analysis. Towards this end, we developed MIA, which could be used for a wide range of clustering analysis or subtype identification, e.g., disease subtyping, feature gene identification, disease classification, normal and disease sample comparison, tissue/cell clustering, and etc.
Unlike existing algorithms that primarily rely on two-dimensional representations, MIA models multi-omics data as a three-dimensional tensor (samples × genes × omics types), integrating tensor decomposition, fuzzy c-means clustering, and an enhanced random forest model within a unified framework — supporting both supervised and unsupervised learning paradigms. MIA supports gene-centered omics data including transcriptome, copy number variation, DNA methylation, RNA modification, histone modification, and proteomics, but is not applicable to discontinuous data such as gene mutations. The web server supports integrative analysis of up to three datasets of different omics types, as well as analysis of a single dataset.
Collectively, MIA is a generalizable framework enabling systematic molecular stratification and interpretable feature discovery across diverse biological systems.

MIA consists of three modules: multi-omics integration, tensor decomposition & clustering, and feature gene identification.
Module 1 — Multi-omics integration. MIA organizes multi-omics data into a three-dimensional tensor (samples × genes × omics types). Think of it as stacking several data tables — one per omics type — into a single "data cube." This preserves the natural relationships among samples, genes, and omics layers, making it easier to discover patterns that span multiple data types.
Module 2 — Tensor decomposition & clustering. To handle the high dimensionality of multi-omics data, MIA first applies Tucker decomposition to compress the tensor into three smaller factor matrices (sample-feature, gene-feature, and omics-type-feature). It then clusters samples using Fuzzy C-Means (FCM) on the sample-feature matrix. Unlike K-means, which assigns each sample to exactly one cluster, FCM allows a sample to belong to multiple clusters with varying degrees of membership, providing a more nuanced view of ambiguous samples. Two key FCM parameters are automatically determined for each dataset: the fuzzy index m is estimated from the sample and feature counts, and the cluster count K is chosen by maximizing the silhouette coefficient — so users do not need to guess these values.
Module 3 — Feature gene identification. Using the clustering results as sample labels, MIA first performs a quick gene pre-filter with the Gini index to remove genes that show little variation across clusters. It then applies an Enhanced Random Forest Model (ERFM) to score and rank genes. ERFM improves upon the traditional random forest in two ways. First, instead of creating a single tree node per gene, ERFM creates multiple nodes — one for each omics type — so the importance of a gene reflects its overall contribution across all omics layers. Second, ERFM iteratively rebuilds the forest: after each round, genes with negative importance scores are removed, and the process repeats until no negative-score genes remain. This iterative refinement ensures that only the most relevant feature genes are retained.
In addition to the web server, we also provide a local package written in C++ language, which could be run in the form of command line on multiple different operating system platforms and provide customized parameter settings for users' convenience.
Input (labeled samples):
Data matrix file: one to three datasets of different omics types;
columns are samples and rows are genes, e.g.
here; genes and samples should be arranged in consistent order across different datasets;
TXT format and <30 Mb.
Sample label: the first column is sample ID and the second column is label, e.g. here; TXT format and <3
Mb.
Output (labeled samples):
After uploading the input files and clicking on the "run" button, the following result files will be generated:
(1) gene_importance.txt — ranked list of genes with importance scores, significant group comparisons, and specific class annotations across each omics type;
(2) orderByImportance.txt — the data matrix reordered by feature importance;
(3) runtime_log.txt — execution log with input parameters and runtime statistics.
(example here).
Input (unlabeled samples):
Data matrix file: same format as labeled samples.
Cluster number: users can specify the cluster number (2–10), or choose "auto" to let MIA automatically determine the optimal number by maximizing the silhouette coefficient.
Output (unlabeled samples):
After uploading the input files, setting the cluster number, and clicking "run", the following result files will be generated:
(1) gene_importance.txt — ranked list of genes with importance scores, significant group comparisons, and specific class annotations across each omics type;
(2) tensor_sample.txt — Tucker decomposition results for samples (sample × sample-feature matrix);
(3) tensor_gene.txt — Tucker decomposition results for genes (gene × gene-feature matrix);
(4) tensor_type.txt — Tucker decomposition results for omics types (type × type-feature matrix);
(5) cluster_result.txt — sample cluster assignments (sample ID and cluster label);
(6) orderByImportance.txt — the data matrix reordered by feature importance;
(7) runtime_log.txt — execution log with input parameters, FCM clustering settings, and runtime statistics.
(example here).
MIA assigns a unique Task ID to each request, allowing users to retrieve results from the homepage. The web server supports datasets <30 Mb and up to three omics types. For larger files or more omics datasets, please use the command-line package, which also provides additional parameter customization options.