NMFProfiler

Name

NMFProfiler: A multi-omics integration method for samples stratified in groups

Description

NMFProfiler method scheme

Installation

NMFProfiler can be installed from PiPy:

pip install nmfprofiler

In addition, various docker images are provided in the container registry.

Usage

Below is a short illustration of the method on a toy dataset.

from nmfprofiler.nmfprofiler import NMFProfiler
from nmfprofiler.toyexample import ToyExample

# Fix a seed (not mandatory)
seed = 240820

# Run NMFProfiler
model = NMFProfiler(
    omic1=ToyExample().omic1,
    omic2=ToyExample().omic2,
    y=ToyExample().y,
    seed=seed,
    as_sklearn=False,
    backtrack=True)
res = model.fit()

# Get a quick overview of the dataset and model used
print(res)

# Visualize analyzed datasets (samples x features)
ToyExample().y  # 2 groups
res.heatmap(obj_to_viz="omic1", width=15, height=6, path="")
res.heatmap(obj_to_viz="omic2", width=15, height=6, path="")

Note: NMFProfiler produces as many signatures as groups, i.e. levels in \(\mathbf{y}\) vector. Hence in this case we will obtain 2 signatures.

# Visualize contribution matrix W obtained (samples x 2)
res.heatmap(obj_to_viz="W", width=10, height=10, path="")

# Visualize signature matrices H1 and H2 obtained (2 x features)
res.heatmap(obj_to_viz="H1", width=15, height=6, path="")
res.heatmap(obj_to_viz="H2", width=15, height=6, path="")

# Monitor the size of each error term of the loss
res.barplot_error(width=15, height=6, path="")

Support

For questions or additional feature requests, use gitlab issues if possible. Authors can also be contacted by email (check authors’ webpages for email information).

Authors and acknowledgment

This work was supported by the ANRT (CIFRE no. 2022/0051).

License

GPL-3

Project status

Active