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

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(
omics=[ToyExample().omic1, 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="omic", width=15, height=6, path="", omic_number=1)
res.heatmap(obj_to_viz="omic", width=15, height=6, path="", omic_number=2)

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="H", width=15, height=6, path="", omic_number=1)
res.heatmap(obj_to_viz="H", width=15, height=6, path="", omic_number=2)

# 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).
Citation
If you are using NMFProfiler, please cite:
Mercadié, A., Gravier, É., Josse, G., Fournier, I., Viodé, C., Vialaneix, N., & Brouard, C. (2025). NMFProfiler: A multi-omics integration method for samples stratified in groups. Bioinformatics, 41(2), btaf066.
License
GPL-3
Project status
Active
See Changelog