Skip to main content

Normalisr Offers Robust Modelling of Associations Linearly In Single-cell RNA-seq

Project description

https://img.shields.io/pypi/v/normalisr?color=informational https://zenodo.org/badge/242889849.svg

Normalisr is a parameter-free normalization and statistical association testing framework that unifies single-cell differential expression, co-expression, and pooled single-cell CRISPR screen analyses with linear models. By systematically detecting and removing nonlinear confounders arising from library size at mean and variance levels, Normalisr achieves high sensitivity, specificity, speed, and generalizability across multiple scRNA-seq protocols and experimental conditions with unbiased p-value estimation.

Normalisr first removes confounding technical noises from raw read counts to recover the biological variations. Then, linear association testing provides a unified inferential framework with several advantages: (i) exact P-value estimation without permutation, (ii) native removal of covariates (e.g. batches, house-keeping programs, and untested gRNAs) as fixed effects, (iii) robustness against read count distribution distortions with enough (> 100) cells, and (iv) computational efficiency.

Normalisr is in python and provides a command-line and a python functional interface. Normalisr is published in Nature Communications (2021).

Installation

Normalisr is on PyPI and can be installed with pip: pip install normalisr. You can also install Normalisr from github: pip install git+https://github.com/lingfeiwang/normalisr.git. Make sure you have added Normalisr’s install path into PATH environment before using the command-line interface (See FAQ). Normalisr’s installation should take less than a minute.

There are more advanced installation methods but if you want that, most likely you already know how to do it. If not, give me a shout (See Issues).

Usage

Normalisr provides a command-line and a python functional interface below. You can use the examples provided below to guide yourself through Normalisr’s use. Sphinx-based documentation is underway.

  • Commmand-line interface

    You can run Normalisr by typing normalisr on command-line. Normalisr uses submodules for different analysis steps. Type normalisr or normalisr -h for general help, and for example normalisr de -h for help on submodule ‘de’ of differential expression.

    Normalisr uses tsv (tab separated values) file format for input and output matrices, and text file for row and column names, such as cells and genes, one per line. For initial input, Normalisr also accepts the sparse mtx format (Cell Ranger output) for raw read count matrix. Gzipped input/output files are automatically recognized if file name suffix ‘.gz’ is present.

  • Python functional interface

    Normalisr’s python functional interface is more flexible than command-line, but requires knowledge of python programming. Documentation of any function can be obtained with ? in ipython or jupyter notebook, such as:

    import normalisr.normalisr as norm
    ?norm.de

    The example jupyter notebooks also illustrate the scope of functions Normalisr provides.

Documentation

Documentations are available as html and pdf.

Examples and pipelines

You can find several examples in the ‘examples’ folder, to cover all functions Normalisr currently provides. The example datasets have been scaled down to run on a 16GB-memory personal computer. Although they only serve as demonstrations of work here, the pipelines should be transferable to a full-scale, different dataset. Since Normalisr is non-parametric, the only adjustable parameters are for quality control and final cutoffs of differential or co-expression. You can change down-sampling parameters in the examples to run the full datasets on a larger computer.

You can find more details in the respective examples.

Issues

Pease raise an issue on github.

References

FAQ

  • What does Normalisr stand for?

    Normalisr Offers Robust Modelling of Associations Linearly In Single-cell RNA-seq. Yes, it’s a recursive acronym. See GNU and pip.

  • I installed Normalisr but typing normalisr says ‘command not found’.

    See below.

  • How do I use a specific python version for Normalisr’s command-line interface?

    You can always use the python command to run Normalisr, such as python3 -m normalisr to replace command normalisr. You can also use a specific path or version for python, such as python3.7 -m normalisr or /usr/bin/python3.7 -m normalisr. Make sure you have installed Normalisr for this python version.

  • Why don’t the examples work?

    Please make sure you followed every step in the README.md of the respective example folder with Internet connection, and then submit an issue report detailing at which executed line the error occurred with input and output.

  • Does Normalisr run on Windows?

    I have not tested Normalisr on Windows. However, it is purely in python and should be able to function properly.

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

normalisr-1.0.0.tar.gz (8.7 MB view details)

Uploaded Source

Built Distribution

normalisr-1.0.0-py3-none-any.whl (41.5 kB view details)

Uploaded Python 3

File details

Details for the file normalisr-1.0.0.tar.gz.

File metadata

  • Download URL: normalisr-1.0.0.tar.gz
  • Upload date:
  • Size: 8.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/57.4.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.9.7

File hashes

Hashes for normalisr-1.0.0.tar.gz
Algorithm Hash digest
SHA256 e71b295212adee795d072c2ae5a6b37e64b25fe9535e87368a571a05be4ff87f
MD5 3f6d10ff6a8b736a941998a0c52d2a38
BLAKE2b-256 3bb0e77e340683e34c98887841e97cf8859bb2d1fcebf854b383698778e9e50b

See more details on using hashes here.

File details

Details for the file normalisr-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: normalisr-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 41.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/57.4.0 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.9.7

File hashes

Hashes for normalisr-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fa53e100da3c1ac936f3fe31fc4bf866c2af76f2ed6e24322625184a09f64638
MD5 ed7c667bad1d275ec8a1a5ce36fdd565
BLAKE2b-256 8eac130d2ded2b3a32a72e8dbb01def3d96db8b2f3f15bfe38f09444af6071b5

See more details on using hashes here.

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