microbiome / miaViz

Microbiome Analysis Plotting and Visualization
https://microbiome.github.io/miaViz
Artistic License 2.0
10 stars 11 forks source link

Biclustering #39

Closed antagomir closed 4 months ago

antagomir commented 2 years ago

Biclustering is a relatively common modeling task in omics data exploration.

Add biclustering as a visualization technique to miaverse. Note that it has at least two uses:

1) taxa x samples matrix biclustering to identify co-occurring elements on the abundance matrix; might benefit from data transformations but this depends on the specific biclustering algorithm

2) correlation matrix biclustering, for instance taxa x metabolites correlations biclustered to reveal co-occurring elements

At the minimum, add some concrete examples in OMA. Can be its own subsection, close to heatmaps.

If it seems feasible, add support to one of the biclustering packages to miaViz. In practice, a wrapper that allows easy calculation of the biclusters, and visualization on heatmap. We may need to consider later if some of the functionality would better go to other packages (mia?) but this is easier once this has been implemented.

This was has been tested, and is a good start to test and to get idea of biclustering:

This is a recent one, and should be specifically tailored to microbiome data. Worth testing as well, and might be nice as a default method if it works well:

It might be worth looking, if these packages have any added value:

If there are clear differences, let us consider carefully which one/s to choose for wrappers and examples.

In principle, there could additionally possibility to obtain simulated biclusters as in e.g. FABIA as was done in e.g. Röttjers & Faust (2020). These can be used to validate methods. Should be moved to its own issue, if it seems worth implementing. Not urgent.

In the wrapper function manpages or in OMA, cite at least these publications related to microbiome-related biclustering tasks:

antagomir commented 2 years ago

The example workflow could also contain

  1. How to filter rows and cols with very low correlations
  2. examples on how to visualize some of the most strongly correlated pairs; for checking purposes
FelixErnst commented 2 years ago

This proposal seams to be heavily method driven and therefore should be split between mia and miaViz, if the method makes sense by itself.

To me it seams to be the same case as for #40

antagomir commented 2 years ago

Support for SE/MAE objects could be provided here for cobiclust package for count assays; and for biclust package for the outputs of getCrossExperimentAssociation i.e. dis/similarity matrices between two distinct assays.

Also possible to start with the examples in OMA, and implement the wrapper later. We can discuss how to prioritize issues.

antagomir commented 4 months ago

biclustering has relatively little general use; closing this for now.