Skip to main content

cNMF Solution Network Space

Project description

cNMF-SNS logo


cNMF-SNS: powerful factorization-based multi-omics integration toolkit

version badge

future badges
[![PyPI Latest Release](https://img.shields.io/pypi/v/cnmfsns.svg)](https://pypi.org/project/cnmfsns/)
[![Conda Latest Release](https://anaconda.org/conda-forge/cnmfsns/badges/version.svg)](https://anaconda.org/anaconda/cnmfsns/)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3509134.svg)](https://doi.org/10.5281/zenodo.3509134)
[![Package Status](https://img.shields.io/pypi/status/cnmfsns.svg)](https://pypi.org/project/cnmfsns/)
[![License](https://img.shields.io/pypi/l/cnmfsns.svg)](https://github.com/morrissylab/cnmfsns/blob/main/LICENSE)
[![Downloads](https://static.pepy.tech/personalized-badge/cnmfsns?period=month&units=international_system&left_color=black&right_color=orange&left_text=PyPI%20downloads%20per%20month)](https://pepy.tech/project/cnmfsns)

cNMF-SNS (consensus Non-negative Matrix Factorization Solution Network Space) is a Python package enabling integration of bulk, single-cell, and spatial expression data between and within datasets. cNMF provides a robust, unsupervised deconvolution of each dataset into gene expression programs (GEPs). Network-based integration of GEPs enables flexible integration of many datasets across assays (eg. Protein, RNA-Seq) and patient cohorts.

Communities with GEPs from multiple datasets can be annotated with dataset-specific annotations to facilitate interpretation.

:zap: Main Features

Here are just a few of the things that cNMF-SNS does well:

  • Integration of expression data does not require subsetting features/genes to a shared subset
  • Ideal for incremental integration (adding datasets one at a time) since deconvolution is performed independently on each dataset generating invariant GEPs
  • Does not assume the same level of sparsity/depth (single-cell, bulk)
  • Identifies interpretable, additive non-negative gene expression programs
  • Two interfaces: command-line interface for rapid data exploration and python interface for extensibility and flexibility

:wrench: Install

:lock: Pre-release (Private GitHub Repository)

Before installing cNMF-SNS using pip, it is recommended to first set up a separate conda environment and have conda manage as many dependencies as possible.

conda create --name cnmfsns -c conda-forge python=3.10 anndata pandas numpy scipy matplotlib upsetplot httplib2 tomli tomli-w click pygraphviz python-igraph semantic_version yaml scikit-learn fastcluster scanpy pyyaml gseapy=1.0.3
conda activate cnmfsns

If you use SSH authentication for GitHub, use the following:

pip install git+ssh://git@github.com/MorrissyLab/cNMF-SNS.git

If you have installed a personal access token from GitHub, you can use:

pip install git+https://<token>@github.com/MorrissyLab/cNMF-SNS.git

:cloud: Public Release

Note: This will work only when cNMF-SNS has been published to PyPI.

pip install cnmfsns

Note: This will work only when cNMF-SNS has been published to conda-forge.

conda install -c conda-forge cnmfsns

:open_book: Documentation

:notebook: Python interface tutorial

To get started, sample proteomics datasets and a Jupyter notebook tutorial is available here.

:computer: Command line interface

See the command line interface documentation.

:thought_balloon: Getting Help

For errors arising during use of cNMF-SNS, create and browse issues in the GitHub "issues" tab.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cnmfsns-1.1.0.tar.gz (56.2 kB view hashes)

Uploaded Source

Built Distribution

cnmfsns-1.1.0-py3-none-any.whl (58.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page