Skip to main content

SCOT is an implementation of a probabilistic tensor decomposition framework for single-cell multi-omics data integration.

Project description

SCOT

SCOT is an implementation of a probabilistic tensor decomposition framework for single-cell multi-omics data integration. SCOT accepts the input of datasets from multiple omics, with missing values allowed.

image

Getting started

Prerequisite

  • numpy
  • pytorch 1.9.0

Install

pip install SCOT-bio

Examples

This is an example of multiple datasets when features have corresponding information.

from scot import sc_multi_omics

data = np.array([expression_data, methylation_data])
sc_model = sc_multi_omics()
predict_data = sc_model.fit(data) # the imputed data
np.savetxt("global_cell_embeddings.csv", sc_model.C, delimiter = ',') # global cell embeddings
np.savetxt("global_gene_embeddings.csv", sc_model.G, delimiter = ',') # global gene embeddings
np.savetxt("local_cell_embeddings.csv", sc_model.C, delimiter = ',') # omics-specific cell embeddings
np.savetxt("local_gene_embeddings.csv", sc_model.G, delimiter = ',') # omics-specific gene embeddings

When the features of different omics do not have corresponding information, please use the fit_list function, which accepts the input as a list of matrices.

from scot import sc_multi_omics

data = [expression_data, protein_data]
sc_model = sc_multi_omics()
predict_data = sc_model.fit_list(data)

If the input does not contain missing values ("NA"), we provide fit_complete and fit_list_complete functions to accelerate the optimization since they take advantage of matrix operations.

from scot import sc_multi_omics

data = np.array([expression_data, methylation_data])
sc_model = sc_multi_omics()
predict_data = sc_model.fit_complete(data) # the imputed data
from scot import sc_multi_omics

data = [expression_data, protein_data]
sc_model = sc_multi_omics()
predict_data = sc_model.fit_list_complete(data)

We put the complete scripts for the analysis described in the manuscript under examples/ directory for detailed usage examples and reproduction. The example data can be downloaded from Google Drive.

Parameters

sc_multi_omics

  • K1: The local element-wise product parameter, see the manuscript for details (default=20).
  • K2: The local element-wise product parameter (default=20).
  • K3: The local element-wise product parameter (default=20).
  • random_seed: The random seed used in optimization (default=111).

fit

  • opt: The optimization algorithm for gradient descent, including SGD, Adam, Adadelta, Adagrad, AdamW, SparseAdam, Adamax, ASGD, LBFGS (default="Adam").
  • dist:The distribution used for modeling, including gaussian, poisson, negative_bionomial (default="gaussian").
  • lr: The learning rate for gradient descent (default=1e-2).
  • n_epochs: The number of optimization epochs (default=1000).
  • lambda_C_regularizer: The coefficient for the penalty term of global cell embeddings (default=0.01).
  • lambda_G_regularizer: The coefficient for the penalty term of global gene embeddings (default=0.01).
  • lambda_O_regularizer: The coefficient list for the penalty term of global omics embeddings; the length of the list should be the same with the number of omics (default=[0.01, 0.01]).
  • lambda_OC_regularizer: The coefficient list for the penalty term of omics-specific cell embeddings; the length of the list should be the same with the number of omics, not avaiable for complete functions (default=[1, 1]).
  • lambda_OG_regularizer: The coefficient list for the penalty term of omics-specific gene embeddings, the length of the list should be the same with the number of omics, not avaiable for list functions (default=[1, 1]).
  • batch_size: The batch size used for gradient descent, not avaiable for complete functions (default=1000).
  • device: CPU or GPU (default='cuda' if torch.cuda.is_available() else 'cpu').
  • verbose: Whether to print loss for each epoch (default=True).

Maintainer

WANG Ruohan ruohawang2-c@my.cityu.edu.hk

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

SCOT-bio-0.0.1.tar.gz (5.9 kB view details)

Uploaded Source

File details

Details for the file SCOT-bio-0.0.1.tar.gz.

File metadata

  • Download URL: SCOT-bio-0.0.1.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.24.0 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.47.0 importlib-metadata/4.11.3 keyring/21.2.1 rfc3986/2.0.0 colorama/0.4.3 CPython/3.8.3

File hashes

Hashes for SCOT-bio-0.0.1.tar.gz
Algorithm Hash digest
SHA256 699b338ce7c8ff1eeb2cb4497c051dc9e8b0fb5c64a3e0033e2d310445b839ae
MD5 984f70d750d16e8031cf5da40d5291aa
BLAKE2b-256 f1b81e580c5db017c98b6e255cb9ad3d4d0ad5e24e2c0388d1b9efd007a31694

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