Skip to main content

Informative Dimensionality Reduction via Shannon Component Analysis

Project description

SCA (Shannon Components Analysis)

Shannon Component Analysis (SCA) is a dimensionality reduction technique for single-cell data which leverages mathematical information theory to identify biologically informative axes of variation in single-cell transcriptomic data, enabling recovery of rare and common cell types at superior resolution. It is written in Python. The pre-print can be found here.

For full documentation of shannonca's API, see our Readthedocs page.

Installation

SCA is available via pip: pip install shannonca

Dependencies

SCA requires the following packages:

  • sklearn
  • scipy
  • numpy
  • matplotlib
  • pandas
  • seaborn
  • scanpy
  • fbpca

Usage

Dimensionality Reduction

SCA generates information score matrices, which are used to generate linear combinations of genes (metagenes) that are biologically informative. The package includes workflows both with and without Scanpy under sca.dimred.

Without Scanpy

The reduce function accepts a (num genes) x (num cells) matrix X, and outputs a dimensionality-reduced version with fewer features. The input matrix may be normalized or otherwise processed, but a zero in the input matrix must indicate zero recorded transcripts.

from shannonca.dimred import reduce

X = mmread('mydata.mtx').transpose() # read some dataset

reduction = reduce(X, n_comps=50, n_pcs=50, iters=1, nbhd_size=15, metric='euclidean', model='wilcoxon', chunk_size=1000, n_tests='auto')

reduction is an (num cells) x (n_comps)-dimensional matrix. The function optionally returns SCA's score matrix (if keep_scores=True), metagene loadings (if keep_loadings=True), or intermediate results (if iters>1 and keep_all_iters=True). If at least one of these is returned, the return type is a dictionary with keys for 'reduction', 'scores', and 'loadings'. If keep_all_iters=True, the reductions after each iteration will be keyed by 'reduction_i' for each iteration number i.

Starting neighborhoods are computed by default using Euclidean distance (controlled by metric) in n_comps-dimensional PCA space. See the docstring for more detailed and comprehensive parameter descriptions.

With Scanpy

Scanpy (https://github.com/theislab/scanpy) is a commonly-used single-cell workflow. To compute a reduction in place on a scanpy AnnData object, use reduce_scanpy:

import scanpy as sc
from shannonca.dimred import reduce_scanpy

adata = sc.AnnData(X)
reduce_scanpy(adata, keep_scores=True, keep_loadings=True, keep_all_iters=True, layer=None, key_added='sca', iters=1, n_comps=50)

This function shares all parameters with reduce, but instead of returning the reduction, it updates the input AnnData object. Dimensionality reductions are stored in adata.obsm[key_added], or, if keep_all_iters=True, in adata.obsm['key_added_i'] for each iteration number i. If keep_scores=True in the reducer constructor, the information scores of each gene in each cell are stored in adata.layers[key_added_score]. If layer=None, the algorithm is run on adata.X; otherwise, it is run on adata.layers[layer].

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

shannonca-0.0.7.tar.gz (25.8 kB view details)

Uploaded Source

Built Distribution

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

shannonca-0.0.7-py3-none-any.whl (26.1 kB view details)

Uploaded Python 3

File details

Details for the file shannonca-0.0.7.tar.gz.

File metadata

  • Download URL: shannonca-0.0.7.tar.gz
  • Upload date:
  • Size: 25.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for shannonca-0.0.7.tar.gz
Algorithm Hash digest
SHA256 0f07094ec85d9e0eb5ea04dca41ff753c35a7edd3144c50001f314f339bb79ca
MD5 634ee5ce48364b7eed785d872e9bc9e3
BLAKE2b-256 fa406a8428d0b8c81ac098389f7827400c85e884b5e9f49538fd74cd7f5b5ae9

See more details on using hashes here.

File details

Details for the file shannonca-0.0.7-py3-none-any.whl.

File metadata

  • Download URL: shannonca-0.0.7-py3-none-any.whl
  • Upload date:
  • Size: 26.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for shannonca-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 ef4150a1247fb676a9e0c3cd6da9375251ec75dc5b957c8e59e40b52e290da7f
MD5 225498bac64dfbe2c5faec0555c96dc6
BLAKE2b-256 cf93f186bb12c929220e1db4b7a6d4ae991b4dbedb7895a4096b420bbacb173d

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