mosbi
Workflows
Standard Workflow
Run multiple biclustering algorithms on a data matrix, construct a similarity network with an error model, extract robust communities, and generate consensus ensemble biclusters.
library(mosbi)
# 1. Prepare data matrix
data(mouse_data)
mouse_data_sub <- mouse_data[c(grep("metabolite_identification", colnames(mouse_data)), grep("^X", colnames(mouse_data)))]
# Simple mock matrix for runnable demonstration
data_matrix <- matrix(rnorm(1000), nrow = 100, ncol = 10)
rownames(data_matrix) <- paste0("M", 1:100)
colnames(data_matrix) <- paste0("S", 1:10)
# 2. Run Biclustering Algorithms
fb <- mosbi::run_fabia(data_matrix)
BCisa <- mosbi::run_isa(data_matrix)
BCplaid <- mosbi::run_plaid(data_matrix)
BCqubic <- mosbi::run_qubic(data_matrix)
all_bics <- c(fb, BCisa, BCplaid, BCqubic)
# 3. Compute Bicluster Similarity Network with Error Model
bic_net <- mosbi::bicluster_network(all_bics, data_matrix, n_randomizations = 5, MARGIN = "both", metric = 4)
# 4. Extract Louvain Communities
coms <- mosbi::get_louvain_communities(bic_net, min_size = 3, bics = all_bics)
# 5. Generate Consensus Ensemble Biclusters
ensemble_bicluster_list <- mosbi::ensemble_biclusters(coms, all_bics, data_matrix, row_threshold = 0.1, col_threshold = 0.1)
Input: A numeric data matrix; Output: A list of robust ensemble biclusters.
When to Use
- When you want to run multiple biclustering algorithms (e.g., Fabia via
run_fabia, ISA via run_isa, Plaid via run_plaid, QUBIC via run_qubic) and combine their results.
- When you need to compute a similarity network of biclusters using metrics like Fowlkes-Mallows index, Jaccard index, Bray-Curtis similarity, or overlap coefficient via
bicluster_network.
- When you want to extract robust bicluster communities using Louvain modularity via
get_louvain_communities and generate consensus ensemble biclusters via ensemble_biclusters.
When NOT to Use
- For standard single-algorithm biclustering without ensemble combination, where direct packages like
biclust or fabia can be used directly.
- When you do not have a numeric data matrix (e.g., categorical or purely qualitative data).
Data Requirements
- A numeric data matrix (e.g.,
data_matrix in the vignette derived from mouse_data using log2 and z-score normalization).
- No missing values are preferred (as noted: "The data has a gaussian-like distribution and no missing values").
Key Parameters
- n_randomizations (5): Number of randomizations for the error model in
bicluster_network.
- MARGIN ("both"): Use datapoints for metric evaluation in
bicluster_network.
- metric (4): Similarity metric index (e.g., 4 for Fowlkes-Mallows index) in
bicluster_network.
- n_steps (1000): Number of steps at which the cut-off is evaluated in
bicluster_network.
- plot_edge_dist (TRUE): Plot the evaluation of cut-off estimation in
bicluster_network.
- min_size (3): Minimum size of communities (number of biclusters) to save in
get_louvain_communities.
- row_threshold (0.1): Minimum occurrence of a row-element in the biclusters of a community to be included in the ensemble bicluster.
- col_threshold (0.1): Minimum occurrence of a column-element in the biclusters of a community to be included in the ensemble bicluster.
Best Practices
- Normalize the input data matrix (e.g., using log2 transformation and z-score scaling) before running biclustering.
- Visualize the size distribution of the generated biclusters using
colhistogram and rowhistogram (or a helper like bicluster_histo).
- Evaluate the cut-off estimation for the similarity network by setting
plot_edge_dist = TRUE in bicluster_network.
- Visualize the bicluster similarity network using
plot or plot_algo_network to inspect how different algorithms contribute to communities.
Common Pitfalls
- Running
get_louvain_communities with a min_size that is too high, resulting in zero saved communities. Fix: Lower min_size (e.g., to 3).
- Biclustering algorithms throwing errors or returning empty lists. Fix: Ensure the input data matrix has a gaussian-like distribution and no missing values.
Alternatives
biclust for running individual biclustering algorithms like Plaid.
fabia for Fabia biclustering.
QUBIC for QUBIC biclustering.
isa2 for ISA biclustering.
Citations
- Rose TD (2025). MoSBi: Molecular signature Identification from Biclustering.
References
1---2name: mosbi3description: mosbi4---56# mosbi78## Workflows910### Standard Workflow1112Run multiple biclustering algorithms on a data matrix, construct a similarity network with an error model, extract robust communities, and generate consensus ensemble biclusters.1314```r15library(mosbi)1617# 1. Prepare data matrix18data(mouse_data)19mouse_data_sub <- mouse_data[c(grep("metabolite_identification", colnames(mouse_data)), grep("^X", colnames(mouse_data)))]20# Simple mock matrix for runnable demonstration21data_matrix <- matrix(rnorm(1000), nrow = 100, ncol = 10)22rownames(data_matrix) <- paste0("M", 1:100)23colnames(data_matrix) <- paste0("S", 1:10)2425# 2. Run Biclustering Algorithms26fb <- mosbi::run_fabia(data_matrix)27BCisa <- mosbi::run_isa(data_matrix)28BCplaid <- mosbi::run_plaid(data_matrix)29BCqubic <- mosbi::run_qubic(data_matrix)30all_bics <- c(fb, BCisa, BCplaid, BCqubic)3132# 3. Compute Bicluster Similarity Network with Error Model33bic_net <- mosbi::bicluster_network(all_bics, data_matrix, n_randomizations = 5, MARGIN = "both", metric = 4)3435# 4. Extract Louvain Communities36coms <- mosbi::get_louvain_communities(bic_net, min_size = 3, bics = all_bics)3738# 5. Generate Consensus Ensemble Biclusters39ensemble_bicluster_list <- mosbi::ensemble_biclusters(coms, all_bics, data_matrix, row_threshold = 0.1, col_threshold = 0.1)40```4142*Input: A numeric data matrix; Output: A list of robust ensemble biclusters.*4344## When to Use45- When you want to run multiple biclustering algorithms (e.g., Fabia via `run_fabia`, ISA via `run_isa`, Plaid via `run_plaid`, QUBIC via `run_qubic`) and combine their results.46- When you need to compute a similarity network of biclusters using metrics like Fowlkes-Mallows index, Jaccard index, Bray-Curtis similarity, or overlap coefficient via `bicluster_network`.47- When you want to extract robust bicluster communities using Louvain modularity via `get_louvain_communities` and generate consensus ensemble biclusters via `ensemble_biclusters`.4849## When NOT to Use50- For standard single-algorithm biclustering without ensemble combination, where direct packages like `biclust` or `fabia` can be used directly.51- When you do not have a numeric data matrix (e.g., categorical or purely qualitative data).5253## Data Requirements54- A numeric data matrix (e.g., `data_matrix` in the vignette derived from `mouse_data` using `log2` and z-score normalization).55- No missing values are preferred (as noted: "The data has a gaussian-like distribution and no missing values").5657## Key Parameters58- **n_randomizations** (5): Number of randomizations for the error model in `bicluster_network`.59- **MARGIN** ("both"): Use datapoints for metric evaluation in `bicluster_network`.60- **metric** (4): Similarity metric index (e.g., 4 for Fowlkes-Mallows index) in `bicluster_network`.61- **n_steps** (1000): Number of steps at which the cut-off is evaluated in `bicluster_network`.62- **plot_edge_dist** (TRUE): Plot the evaluation of cut-off estimation in `bicluster_network`.63- **min_size** (3): Minimum size of communities (number of biclusters) to save in `get_louvain_communities`.64- **row_threshold** (0.1): Minimum occurrence of a row-element in the biclusters of a community to be included in the ensemble bicluster.65- **col_threshold** (0.1): Minimum occurrence of a column-element in the biclusters of a community to be included in the ensemble bicluster.6667## Best Practices68- Normalize the input data matrix (e.g., using log2 transformation and z-score scaling) before running biclustering.69- Visualize the size distribution of the generated biclusters using `colhistogram` and `rowhistogram` (or a helper like `bicluster_histo`).70- Evaluate the cut-off estimation for the similarity network by setting `plot_edge_dist = TRUE` in `bicluster_network`.71- Visualize the bicluster similarity network using `plot` or `plot_algo_network` to inspect how different algorithms contribute to communities.7273## Common Pitfalls74- Running `get_louvain_communities` with a `min_size` that is too high, resulting in zero saved communities. Fix: Lower `min_size` (e.g., to 3).75- Biclustering algorithms throwing errors or returning empty lists. Fix: Ensure the input data matrix has a gaussian-like distribution and no missing values.7677## Alternatives78- `biclust` for running individual biclustering algorithms like Plaid.79- `fabia` for Fabia biclustering.80- `QUBIC` for QUBIC biclustering.81- `isa2` for ISA biclustering.8283## Citations84- Rose TD (2025). MoSBi: Molecular signature Identification from Biclustering.8586## References87- Homepage: bioconductor.org/packages/mosbi88- Vignette: https://bioconductor.org/packages/release/bioc/vignettes/mosbi/inst/doc/example-workflow.html