sccoda.model.scCODA_model.CompositionalModel

class sccoda.model.scCODA_model.CompositionalModel(covariate_matrix, data_matrix, cell_types, covariate_names, formula, *args, **kwargs)

Dynamical framework for formulation and inference of Bayesian models for compositional data analysis. This framework is used to implement scCODA’s model as a subclass of this class. Tensorflow probability then allows to run a multitude of inference algorithms on these models without the need to specify them every time.

A CompositionalModel consists of the following parameters:

  • covariate_matrix: Numpy array that specifies the independent variables (X). Generated equivalently to the covariate matrix of a linear regression.

  • data_matrix: Dependent variable (Y). Includes the raw cell type counts for every sample.

  • cell_types, covariate_names: Names of cell types and covariates

  • formula: String that represents which covariates to include and how to transform them. Used analogously to the formula in R’s lm function

A specific compositional model is then implemented as a child class, with the following additional parameters specified in the constructor:

  • target_log_prob_fn: Log-probability function of the model. For more specific information, please refer to (tensorflow probability’s API)[https://www.tensorflow.org/probability/api_docs/python/tfp]

  • param_names: Names of prior and intermediate parameters that are included in the model output. The order has to be the same as in the states_burnin output of self.get_y_hat

  • init_params: Initial values for the inference method

Methods implemented by this class:

  • sampling: General MCMC sampling that uses a transition kernel

  • get_chains_after_burnin: Application of burn-in to MCMC sampling results

  • MCMC sampling methods (sample_hmc, sample_hmc_da, sample_nuts)

Methods implemented by a child class:

  • get_y_hat: Calculation of intermediate parameters for all MCMC chain states and posterior mode of the cell count matrix

Methods

get_chains_after_burnin(samples, …[, is_nuts])

Application of burn-in after MCMC sampling.

make_result(states_burnin, sample_stats, …)

Result object generating function.

sample_hmc([num_results, num_burnin, …])

Hamiltonian Monte Carlo (HMC) sampling in tensorflow 2.

sample_hmc_da([num_results, num_burnin, …])

HMC sampling with dual-averaging step size adaptation (Nesterov, 2009)

sample_nuts([num_results, num_burnin, …])

HMC with No-U-turn (NUTS) sampling.

sampling(num_results, num_burnin, kernel, …)

MCMC sampling process (tensorflow 2)