Skip to main content

cNMF Solution Network Space

Project description

cNMF-SNS logo


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

version badge PyPI Latest Release Conda Latest Release Documentation status Downloads License

Authors: Ted Verhey, Heewon Seo, Sorana Morrissy

cNMF-SNS (consensus Non-negative Matrix Factorization Solution Network Space) is a Python package enabling mosaic integration of bulk, single-cell, and spatial expression data between and within datasets. Datasets can have partially overlapping features (eg. genes) as well as non-overlapping features. 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, scRNA-Seq, spatial expression) and patient cohorts.

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

⚡Main Features

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

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

🔧 Install

☁️ Public Release

Install the package with conda:

conda install -c conda-forge cnmfsns

✨ Latest version from GitHub

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 pyyaml scikit-learn fastcluster scanpy pyyaml
conda activate cnmfsns
pip install git+https://github.com/MorrissyLab/cNMF-SNS.git

📖 Documentation

🗐 Data requirements

cNMF-SNS can factorize a wide variety of datasets, but will work optimally in these conditions:

  • Use untransformed (raw) data where possible. For (sc)RNA-Seq data, use feature counts, not TPM or other log-transformed values.

📓 Python interface

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

Detailed API reference can be found on ReadTheDocs.

⌨️ Command line interface

See the command line interface documentation.

💭 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.5.0.tar.gz (61.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cnmfsns-1.5.0-py3-none-any.whl (63.9 kB view details)

Uploaded Python 3

File details

Details for the file cnmfsns-1.5.0.tar.gz.

File metadata

  • Download URL: cnmfsns-1.5.0.tar.gz
  • Upload date:
  • Size: 61.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/6.6.0 pkginfo/1.9.6 requests/2.29.0 requests-toolbelt/0.9.1 tqdm/4.65.0 CPython/3.10.10

File hashes

Hashes for cnmfsns-1.5.0.tar.gz
Algorithm Hash digest
SHA256 db0160f423c523352977be3eb73636eb8152f711ddf198497043044af04df34f
MD5 843ddf9d27e78853140e87d539ad8657
BLAKE2b-256 41708bc7550e6293daee91621dabc4ce12b14df4d762ca666a60839099f9e19d

See more details on using hashes here.

File details

Details for the file cnmfsns-1.5.0-py3-none-any.whl.

File metadata

  • Download URL: cnmfsns-1.5.0-py3-none-any.whl
  • Upload date:
  • Size: 63.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/6.6.0 pkginfo/1.9.6 requests/2.29.0 requests-toolbelt/0.9.1 tqdm/4.65.0 CPython/3.10.10

File hashes

Hashes for cnmfsns-1.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0f7dd131e045473fd70963ea38064a36662423df8314da5321093036a07595d0
MD5 cbd6bbea920d06391a76015125177826
BLAKE2b-256 0420e62aaebaf5669aa7651114506616251bb0cc807cf66f3958844fef90ec0a

See more details on using hashes here.

Supported by

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