scDiffEq#

class scdiffeq.core._scdiffeq.scDiffEq(adata: ~anndata._core.anndata.AnnData | None = None, latent_dim: int = 50, name: str | None = None, use_key: str = 'X_pca', weight_key: str = 'W', obs_keys: ~typing.List[str] = [], seed: int = 0, backend: str = 'auto', gradient_clip_val: float = 0.5, velocity_ratio_params: ~typing.Dict[str, float | bool] = {'enforce': 100, 'method': 'square', 'target': 2.5}, build_kNN: bool | None = False, kNN_key: str | None = 'X_pca', kNN_fit_subset: str | None = 'train', pretrain_epochs: int = 500, pretrain_lr: float = 0.0001, pretrain_optimizer=<class 'torch.optim.adam.Adam'>, pretrain_step_size: int | None = None, pretrain_scheduler=<class 'torch.optim.lr_scheduler.StepLR'>, train_epochs: int = 2500, train_lr: float = 0.0001, train_optimizer=<class 'torch.optim.rmsprop.RMSprop'>, train_scheduler=<class 'torch.optim.lr_scheduler.StepLR'>, train_step_size: int | None = None, train_val_split: ~typing.List[float] = [0.9, 0.1], batch_size: int = 2048, train_key: str = 'train', val_key: str = 'val', test_key: str = 'test', predict_key: str = 'predict', logger: lightning.logger | None = None, num_workers: int = 0, silent: bool = True, scale_input_counts: bool = False, reduce_dimensions: bool = False, fate_bias_csv_path: ~pathlib.Path | str | None = None, fate_bias_multiplier: float = 1, viz_frequency: int = 1, working_dir: ~pathlib.Path | str = '/home/runner/work/scDiffEq/scDiffEq/docs/source', time_key: str | None = None, t0_idx: ~pandas.core.indexes.base.Index | None = None, t_min: float = 0, t_max: float = 1, dt: float = 0.1, time_cluster_key: str | None = None, t0_cluster: str | None = None, shuffle_time_labels: bool = False, mu_hidden: ~typing.List[int] | int = [512, 512], mu_activation: str | ~typing.List[str] = 'LeakyReLU', mu_dropout: float | ~typing.List[float] = 0.1, mu_bias: bool = True, mu_output_bias: bool = True, mu_n_augment: int = 0, sigma_hidden: ~typing.List[int] | int = [32, 32], sigma_activation: str | ~typing.List[str] = 'LeakyReLU', sigma_dropout: float | ~typing.List[float] = 0.1, sigma_bias: ~typing.List[bool] = True, sigma_output_bias: bool = True, sigma_n_augment: int = 0, adjoint: bool = False, sde_type: str = 'ito', noise_type: str = 'general', brownian_dim: int = 1, coef_drift: float = 1.0, coef_diffusion: float = 1.0, coef_prior_drift: float = 1.0, DiffEq_type: str = 'SDE', potential_type: ~typing.Literal['fixed', 'prior'] = 'fixed', encoder_n_hidden: int = 4, encoder_power: float = 2, encoder_activation: str | ~typing.List[str] = 'LeakyReLU', encoder_dropout: float | ~typing.List[float] = 0.2, encoder_bias: bool = True, encoder_output_bias: bool = True, decoder_n_hidden: int = 4, decoder_power: float = 2, decoder_activation: str | ~typing.List[str] = 'LeakyReLU', decoder_dropout: float | ~typing.List[float] = 0.2, decoder_bias: bool = True, decoder_output_bias: bool = True, ckpt_path: ~pathlib.Path | str | None = None, monitor_hardware: bool = False, version: str = <module 'scdiffeq.__version__' from '/home/runner/work/scDiffEq/scDiffEq/src/scdiffeq/__version__.py'>, *args, **kwargs)[source]#

Bases: ModelConfigMixIn, kNNMixIn, StateCharacterizationMixIn, UtilityIOMixIn, LoggingMixIn, PreTrainMixIn, TrainMixIn, ABCParse

scDiffeq model class

Parameters:#

adataOptional[anndata.AnnData], optional

Annotated data matrix, by default None

latent_dimint, optional

Number of latent dimensions, by default 50

nameOptional[str], optional

Model name, by default None

use_keystr, optional

Key to use for data, by default “X_pca”

weight_keystr, optional

Key to use for weights, by default “W”

obs_keysList[str], optional

List of observation keys, by default []

seedint, optional

Random seed, by default 0

backendstr, optional

Backend to use, by default “auto”

gradient_clip_valfloat, optional

Gradient clipping value, by default 0.5

velocity_ratio_paramsDict[str, Union[float, bool]], optional

Parameters for velocity ratio, by default {“target”: 2, “enforce”: 100, “method”: “square”}

build_kNNOptional[bool], optional

Whether to build kNN, by default False

kNN_keyOptional[str], optional

Key to use for kNN, by default “X_pca”

kNN_fit_subsetOptional[str], optional

Subset to fit kNN, by default “train”

pretrain_epochsint, optional

Number of pretrain epochs, by default 500

pretrain_lrfloat, optional

Learning rate for pretraining, by default 1e-3

pretrain_optimizertorch.optim.Optimizer, optional

Optimizer for pretraining, by default torch.optim.Adam

pretrain_step_sizeint, optional

Step size for pretraining scheduler, by default 100

pretrain_schedulertorch.optim.lr_scheduler._LRScheduler, optional

Scheduler for pretraining, by default torch.optim.lr_scheduler.StepLR

train_epochsint, optional

Number of training epochs, by default 1500

train_lrfloat, optional

Learning rate for training, by default 1e-5

train_optimizertorch.optim.Optimizer, optional

Optimizer for training, by default torch.optim.RMSprop

train_schedulertorch.optim.lr_scheduler._LRScheduler, optional

Scheduler for training, by default torch.optim.lr_scheduler.StepLR

train_step_sizeint, optional

Step size for training scheduler, by default 10

train_val_splitList[float], optional

Train-validation split, by default [0.9, 0.1]

batch_sizeint, optional

Batch size, by default 2000

train_keystr, optional

Key for training data, by default “train”

val_keystr, optional

Key for validation data, by default “val”

test_keystr, optional

Key for test data, by default “test”

predict_keystr, optional

Key for prediction data, by default “predict”

loggerOptional[“lightning.logger”], optional

Logger, by default None

num_workersint, optional

Number of workers, by default os.cpu_count()

silentbool, optional

Whether to silence output, by default True

scale_input_countsbool, optional

Whether to scale input counts, by default False

reduce_dimensionsbool, optional

Whether to reduce dimensions, by default False

fate_bias_csv_pathOptional[Union[pathlib.Path, str]], optional

Path to fate bias CSV, by default None

fate_bias_multiplierfloat, optional

Multiplier for fate bias, by default 1

viz_frequencyint, optional

Frequency of visualization, by default 1

working_dirUnion[pathlib.Path, str], optional

Working directory, by default os.getcwd()

time_keyOptional[str], optional

Key for time data, by default None

t0_idxOptional[pd.Index], optional

Index for initial time, by default None

t_minfloat, optional

Minimum time, by default 0

t_maxfloat, optional

Maximum time, by default 1

dtfloat, optional

Time step, by default 0.1

time_cluster_keyOptional[str], optional

Key for time cluster, by default None

t0_clusterOptional[str], optional

Initial time cluster, by default None

shuffle_time_labelsbool, optional

Whether to shuffle time labels, by default False

mu_hiddenUnion[List[int], int], optional

Hidden layers for drift function, by default [400, 400]

mu_activationUnion[str, List[str]], optional

Activation function for drift, by default “LeakyReLU”

mu_dropoutUnion[float, List[float]], optional

Dropout rate for drift, by default 0.1

mu_biasbool, optional

Whether to use bias in drift, by default True

mu_output_biasbool, optional

Whether to use output bias in drift, by default True

mu_n_augmentint, optional

Number of augmented dimensions for drift, by default 0

sigma_hiddenUnion[List[int], int], optional

Hidden layers for diffusion function, by default [400, 400]

sigma_activationUnion[str, List[str]], optional

Activation function for diffusion, by default “LeakyReLU”

sigma_dropoutUnion[float, List[float]], optional

Dropout rate for diffusion, by default 0.1

sigma_biasList[bool], optional

Whether to use bias in diffusion, by default True

sigma_output_biasbool, optional

Whether to use output bias in diffusion, by default True

sigma_n_augmentint, optional

Number of augmented dimensions for diffusion, by default 0

adjointbool, optional

Whether to use adjoint method, by default False

sde_typestr, optional

Type of SDE, by default “ito”

noise_typestr, optional

Type of noise, by default “general”

brownian_dimint, optional

Dimension of Brownian motion, by default 1

coef_driftfloat, optional

Coefficient for drift, by default 1.0

coef_diffusionfloat, optional

Coefficient for diffusion, by default 1.0

coef_prior_driftfloat, optional

Coefficient for prior drift, by default 1.0

DiffEq_typestr, optional

Type of differential equation, by default “SDE”

potential_typeUnion[None, str], optional

Type of potential, by default None

encoder_n_hiddenint, optional

Number of hidden layers for encoder, by default 4

encoder_powerfloat, optional

Power for encoder, by default 2

encoder_activationUnion[str, List[str]], optional

Activation function for encoder, by default “LeakyReLU”

encoder_dropoutUnion[float, List[float]], optional

Dropout rate for encoder, by default 0.2

encoder_biasbool, optional

Whether to use bias in encoder, by default True

encoder_output_biasbool, optional

Whether to use output bias in encoder, by default True

decoder_n_hiddenint, optional

Number of hidden layers for decoder, by default 4

decoder_powerfloat, optional

Power for decoder, by default 2

decoder_activationUnion[str, List[str]], optional

Activation function for decoder, by default “LeakyReLU”

decoder_dropoutUnion[float, List[float]], optional

Dropout rate for decoder, by default 0.2

decoder_biasbool, optional

Whether to use bias in decoder, by default True

decoder_output_biasbool, optional

Whether to use output bias in decoder, by default True

ckpt_pathOptional[Union[pathlib.Path, str]], optional

Path to checkpoint, by default None

versionstr, optional

Version of the model, by default __version__

Initialize the scDiffEq model.

This class is responsible for bringing together three critical components: the lightning model, the lightning trainer, and the lightning data. All else is superfluous to model operation.

param adata:

Annotated data matrix. Default is None.

type adata:

Optional[anndata.AnnData], optional

param latent_dim:

Number of latent dimensions. Default is 50.

type latent_dim:

int, optional

param name:

Model name. Default is None.

type name:

Optional[str], optional

param use_key:

Key to use for data. Default is “X_pca”.

type use_key:

str, optional

param weight_key:

Key to use for weights. Default is “W”.

type weight_key:

str, optional

param obs_keys:

List of observation keys. Default is [].

type obs_keys:

List[str], optional

param seed:

Random seed. Default is 0.

type seed:

int, optional

param backend:

Backend to use. Default is “auto”.

type backend:

str, optional

param gradient_clip_val:

Gradient clipping value. Default is 0.5.

type gradient_clip_val:

float, optional

param velocity_ratio_params:

Parameters for velocity ratio. Default is {“target”: 2, “enforce”: 100, “method”: “square”}.

type velocity_ratio_params:

Dict[str, Union[float, bool]], optional

param build_kNN:

Whether to build kNN. Default is False.

type build_kNN:

Optional[bool], optional

param kNN_key:

Key to use for kNN. Default is “X_pca”.

type kNN_key:

Optional[str], optional

param kNN_fit_subset:

Subset to fit kNN. Default is “train”.

type kNN_fit_subset:

Optional[str], optional

param pretrain_epochs:

Number of pretrain epochs. Default is 500.

type pretrain_epochs:

int, optional

param pretrain_lr:

Learning rate for pretraining. Default is 1e-3.

type pretrain_lr:

float, optional

param pretrain_optimizer:

Optimizer for pretraining. Default is torch.optim.Adam.

type pretrain_optimizer:

torch.optim.Optimizer, optional

param pretrain_step_size:

Step size for pretraining scheduler. Default is 100.

type pretrain_step_size:

int, optional

param pretrain_scheduler:

Scheduler for pretraining. Default is torch.optim.lr_scheduler.StepLR.

type pretrain_scheduler:

torch.optim.lr_scheduler._LRScheduler, optional

param train_epochs:

Number of training epochs. Default is 1500.

type train_epochs:

int, optional

param train_lr:

Learning rate for training. Default is 1e-5.

type train_lr:

float, optional

param train_optimizer:

Optimizer for training. Default is torch.optim.RMSprop.

type train_optimizer:

torch.optim.Optimizer, optional

param train_scheduler:

Scheduler for training. Default is torch.optim.lr_scheduler.StepLR.

type train_scheduler:

torch.optim.lr_scheduler._LRScheduler, optional

param train_step_size:

Step size for training scheduler. Default is 10.

type train_step_size:

int, optional

param train_val_split:

Train-validation split. Default is [0.9, 0.1].

type train_val_split:

List[float], optional

param batch_size:

Batch size. Default is 2000.

type batch_size:

int, optional

param train_key:

Key for training data. Default is “train”.

type train_key:

str, optional

param val_key:

Key for validation data. Default is “val”.

type val_key:

str, optional

param test_key:

Key for test data. Default is “test”.

type test_key:

str, optional

param predict_key:

Key for prediction data. Default is “predict”.

type predict_key:

str, optional

param logger:

Logger. Default is None.

type logger:

Optional[“lightning.logger”], optional

param num_workers:

Number of workers. Default is 0.

type num_workers:

int, optional

param silent:

Whether to silence output. Default is True.

type silent:

bool, optional

param scale_input_counts:

Whether to scale input counts. Default is False.

type scale_input_counts:

bool, optional

param reduce_dimensions:

Whether to reduce dimensions. Default is False.

type reduce_dimensions:

bool, optional

param fate_bias_csv_path:

Path to fate bias CSV. Default is None.

type fate_bias_csv_path:

Optional[Union[pathlib.Path, str]], optional

param fate_bias_multiplier:

Multiplier for fate bias. Default is 1.

type fate_bias_multiplier:

float, optional

param viz_frequency:

Frequency of visualization. Default is 1.

type viz_frequency:

int, optional

param working_dir:

Working directory. Default is os.getcwd().

type working_dir:

Union[pathlib.Path, str], optional

param time_key:

Key for time data. Default is None.

type time_key:

Optional[str], optional

param t0_idx:

Index for initial time. Default is None.

type t0_idx:

Optional[pd.Index], optional

param t_min:

Minimum time. Default is 0.

type t_min:

float, optional

param t_max:

Maximum time. Default is 1.

type t_max:

float, optional

param dt:

Time step. Default is 0.1.

type dt:

float, optional

param time_cluster_key:

Key for time cluster. Default is None.

type time_cluster_key:

Optional[str], optional

param t0_cluster:

Initial time cluster. Default is None.

type t0_cluster:

Optional[str], optional

param shuffle_time_labels:

Whether to shuffle time labels. Default is False.

type shuffle_time_labels:

bool, optional

param mu_hidden:

Hidden layers for drift function. Default is [400, 400].

type mu_hidden:

Union[List[int], int], optional

param mu_activation:

Activation function for drift. Default is “LeakyReLU”.

type mu_activation:

Union[str, List[str]], optional

param mu_dropout:

Dropout rate for drift. Default is 0.1.

type mu_dropout:

Union[float, List[float]], optional

param mu_bias:

Whether to use bias in drift. Default is True.

type mu_bias:

bool, optional

param mu_output_bias:

Whether to use output bias in drift. Default is True.

type mu_output_bias:

bool, optional

param mu_n_augment:

Number of augmented dimensions for drift. Default is 0.

type mu_n_augment:

int, optional

param sigma_hidden:

Hidden layers for diffusion function. Default is [400, 400].

type sigma_hidden:

Union[List[int], int], optional

param sigma_activation:

Activation function for diffusion. Default is “LeakyReLU”.

type sigma_activation:

Union[str, List[str]], optional

param sigma_dropout:

Dropout rate for diffusion. Default is 0.1.

type sigma_dropout:

Union[float, List[float]], optional

param sigma_bias:

Whether to use bias in diffusion. Default is True.

type sigma_bias:

List[bool], optional

param sigma_output_bias:

Whether to use output bias in diffusion. Default is True.

type sigma_output_bias:

bool, optional

param sigma_n_augment:

Number of augmented dimensions for diffusion. Default is 0.

type sigma_n_augment:

int, optional

param adjoint:

Whether to use adjoint method. Default is False.

type adjoint:

bool, optional

param sde_type:

Type of SDE. Default is “ito”.

type sde_type:

str, optional

param noise_type:

Type of noise. Default is “general”.

type noise_type:

str, optional

param brownian_dim:

Dimension of Brownian motion. Default is 1.

type brownian_dim:

int, optional

param coef_drift:

Coefficient for drift. Default is 1.0.

type coef_drift:

float, optional

param coef_diffusion:

Coefficient for diffusion. Default is 1.0.

type coef_diffusion:

float, optional

param coef_prior_drift:

Coefficient for prior drift. Default is 1.0.

type coef_prior_drift:

float, optional

param DiffEq_type:

Type of differential equation. Default is “SDE”.

type DiffEq_type:

str, optional

param potential_type:

Type of potential. Default is “fixed”.

type potential_type:

Literal[“fixed”,”prior”]

param encoder_n_hidden:

Number of hidden layers for encoder. Default is 4.

type encoder_n_hidden:

int, optional

param encoder_power:

Power for encoder. Default is 2.

type encoder_power:

float, optional

param encoder_activation:

Activation function for encoder. Default is “LeakyReLU”.

type encoder_activation:

Union[str, List[str]], optional

param encoder_dropout:

Dropout rate for encoder. Default is 0.2.

type encoder_dropout:

Union[float, List[float]], optional

param encoder_bias:

Whether to use bias in encoder. Default is True.

type encoder_bias:

bool, optional

param encoder_output_bias:

Whether to use output bias in encoder. Default is True.

type encoder_output_bias:

bool, optional

param decoder_n_hidden:

Number of hidden layers for decoder. Default is 4.

type decoder_n_hidden:

int, optional

param decoder_power:

Power for decoder. Default is 2.

type decoder_power:

float, optional

param decoder_activation:

Activation function for decoder. Default is “LeakyReLU”.

type decoder_activation:

Union[str, List[str]], optional

param decoder_dropout:

Dropout rate for decoder. Default is 0.2.

type decoder_dropout:

Union[float, List[float]], optional

param decoder_bias:

Whether to use bias in decoder. Default is True.

type decoder_bias:

bool, optional

param decoder_output_bias:

Whether to use output bias in decoder. Default is True.

type decoder_output_bias:

bool, optional

param ckpt_path:

Path to checkpoint. Default is None.

type ckpt_path:

Optional[Union[pathlib.Path, str]], optional

param version:

Version of the model. Default is __version__.

type version:

str, optional

Returns: None

__init__(adata: ~anndata._core.anndata.AnnData | None = None, latent_dim: int = 50, name: str | None = None, use_key: str = 'X_pca', weight_key: str = 'W', obs_keys: ~typing.List[str] = [], seed: int = 0, backend: str = 'auto', gradient_clip_val: float = 0.5, velocity_ratio_params: ~typing.Dict[str, float | bool] = {'enforce': 100, 'method': 'square', 'target': 2.5}, build_kNN: bool | None = False, kNN_key: str | None = 'X_pca', kNN_fit_subset: str | None = 'train', pretrain_epochs: int = 500, pretrain_lr: float = 0.0001, pretrain_optimizer=<class 'torch.optim.adam.Adam'>, pretrain_step_size: int | None = None, pretrain_scheduler=<class 'torch.optim.lr_scheduler.StepLR'>, train_epochs: int = 2500, train_lr: float = 0.0001, train_optimizer=<class 'torch.optim.rmsprop.RMSprop'>, train_scheduler=<class 'torch.optim.lr_scheduler.StepLR'>, train_step_size: int | None = None, train_val_split: ~typing.List[float] = [0.9, 0.1], batch_size: int = 2048, train_key: str = 'train', val_key: str = 'val', test_key: str = 'test', predict_key: str = 'predict', logger: lightning.logger | None = None, num_workers: int = 0, silent: bool = True, scale_input_counts: bool = False, reduce_dimensions: bool = False, fate_bias_csv_path: ~pathlib.Path | str | None = None, fate_bias_multiplier: float = 1, viz_frequency: int = 1, working_dir: ~pathlib.Path | str = '/home/runner/work/scDiffEq/scDiffEq/docs/source', time_key: str | None = None, t0_idx: ~pandas.core.indexes.base.Index | None = None, t_min: float = 0, t_max: float = 1, dt: float = 0.1, time_cluster_key: str | None = None, t0_cluster: str | None = None, shuffle_time_labels: bool = False, mu_hidden: ~typing.List[int] | int = [512, 512], mu_activation: str | ~typing.List[str] = 'LeakyReLU', mu_dropout: float | ~typing.List[float] = 0.1, mu_bias: bool = True, mu_output_bias: bool = True, mu_n_augment: int = 0, sigma_hidden: ~typing.List[int] | int = [32, 32], sigma_activation: str | ~typing.List[str] = 'LeakyReLU', sigma_dropout: float | ~typing.List[float] = 0.1, sigma_bias: ~typing.List[bool] = True, sigma_output_bias: bool = True, sigma_n_augment: int = 0, adjoint: bool = False, sde_type: str = 'ito', noise_type: str = 'general', brownian_dim: int = 1, coef_drift: float = 1.0, coef_diffusion: float = 1.0, coef_prior_drift: float = 1.0, DiffEq_type: str = 'SDE', potential_type: ~typing.Literal['fixed', 'prior'] = 'fixed', encoder_n_hidden: int = 4, encoder_power: float = 2, encoder_activation: str | ~typing.List[str] = 'LeakyReLU', encoder_dropout: float | ~typing.List[float] = 0.2, encoder_bias: bool = True, encoder_output_bias: bool = True, decoder_n_hidden: int = 4, decoder_power: float = 2, decoder_activation: str | ~typing.List[str] = 'LeakyReLU', decoder_dropout: float | ~typing.List[float] = 0.2, decoder_bias: bool = True, decoder_output_bias: bool = True, ckpt_path: ~pathlib.Path | str | None = None, monitor_hardware: bool = False, version: str = <module 'scdiffeq.__version__' from '/home/runner/work/scDiffEq/scDiffEq/src/scdiffeq/__version__.py'>, *args, **kwargs) None[source]#

Initialize the scDiffEq model.

This class is responsible for bringing together three critical components: the lightning model, the lightning trainer, and the lightning data. All else is superfluous to model operation.

Parameters:
  • adata (Optional[AnnData], optional) – Annotated data matrix. Default is None.

  • latent_dim (int, optional) – Number of latent dimensions. Default is 50.

  • name (Optional[str], optional) – Model name. Default is None.

  • use_key (str, optional) – Key to use for data. Default is “X_pca”.

  • weight_key (str, optional) – Key to use for weights. Default is “W”.

  • obs_keys (List[str], optional) – List of observation keys. Default is [].

  • seed (int, optional) – Random seed. Default is 0.

  • backend (str, optional) – Backend to use. Default is “auto”.

  • gradient_clip_val (float, optional) – Gradient clipping value. Default is 0.5.

  • velocity_ratio_params (Dict[str, Union[float, bool]], optional) – Parameters for velocity ratio. Default is {“target”: 2, “enforce”: 100, “method”: “square”}.

  • build_kNN (Optional[bool], optional) – Whether to build kNN. Default is False.

  • kNN_key (Optional[str], optional) – Key to use for kNN. Default is “X_pca”.

  • kNN_fit_subset (Optional[str], optional) – Subset to fit kNN. Default is “train”.

  • pretrain_epochs (int, optional) – Number of pretrain epochs. Default is 500.

  • pretrain_lr (float, optional) – Learning rate for pretraining. Default is 1e-3.

  • pretrain_optimizer (Optimizer, optional) – Optimizer for pretraining. Default is torch.optim.Adam.

  • pretrain_step_size (int, optional) – Step size for pretraining scheduler. Default is 100.

  • pretrain_scheduler (torch.optim.lr_scheduler._LRScheduler, optional) – Scheduler for pretraining. Default is torch.optim.lr_scheduler.StepLR.

  • train_epochs (int, optional) – Number of training epochs. Default is 1500.

  • train_lr (float, optional) – Learning rate for training. Default is 1e-5.

  • train_optimizer (Optimizer, optional) – Optimizer for training. Default is torch.optim.RMSprop.

  • train_scheduler (torch.optim.lr_scheduler._LRScheduler, optional) – Scheduler for training. Default is torch.optim.lr_scheduler.StepLR.

  • train_step_size (int, optional) – Step size for training scheduler. Default is 10.

  • train_val_split (List[float], optional) – Train-validation split. Default is [0.9, 0.1].

  • batch_size (int, optional) – Batch size. Default is 2000.

  • train_key (str, optional) – Key for training data. Default is “train”.

  • val_key (str, optional) – Key for validation data. Default is “val”.

  • test_key (str, optional) – Key for test data. Default is “test”.

  • predict_key (str, optional) – Key for prediction data. Default is “predict”.

  • logger (Optional["lightning.logger"], optional) – Logger. Default is None.

  • num_workers (int, optional) – Number of workers. Default is 0.

  • silent (bool, optional) – Whether to silence output. Default is True.

  • scale_input_counts (bool, optional) – Whether to scale input counts. Default is False.

  • reduce_dimensions (bool, optional) – Whether to reduce dimensions. Default is False.

  • fate_bias_csv_path (Optional[Union[Path, str]], optional) – Path to fate bias CSV. Default is None.

  • fate_bias_multiplier (float, optional) – Multiplier for fate bias. Default is 1.

  • viz_frequency (int, optional) – Frequency of visualization. Default is 1.

  • working_dir (Union[Path, str], optional) – Working directory. Default is os.getcwd().

  • time_key (Optional[str], optional) – Key for time data. Default is None.

  • t0_idx (Optional[pd.Index], optional) – Index for initial time. Default is None.

  • t_min (float, optional) – Minimum time. Default is 0.

  • t_max (float, optional) – Maximum time. Default is 1.

  • dt (float, optional) – Time step. Default is 0.1.

  • time_cluster_key (Optional[str], optional) – Key for time cluster. Default is None.

  • t0_cluster (Optional[str], optional) – Initial time cluster. Default is None.

  • shuffle_time_labels (bool, optional) – Whether to shuffle time labels. Default is False.

  • mu_hidden (Union[List[int], int], optional) – Hidden layers for drift function. Default is [400, 400].

  • mu_activation (Union[str, List[str]], optional) – Activation function for drift. Default is “LeakyReLU”.

  • mu_dropout (Union[float, List[float]], optional) – Dropout rate for drift. Default is 0.1.

  • mu_bias (bool, optional) – Whether to use bias in drift. Default is True.

  • mu_output_bias (bool, optional) – Whether to use output bias in drift. Default is True.

  • mu_n_augment (int, optional) – Number of augmented dimensions for drift. Default is 0.

  • sigma_hidden (Union[List[int], int], optional) – Hidden layers for diffusion function. Default is [400, 400].

  • sigma_activation (Union[str, List[str]], optional) – Activation function for diffusion. Default is “LeakyReLU”.

  • sigma_dropout (Union[float, List[float]], optional) – Dropout rate for diffusion. Default is 0.1.

  • sigma_bias (List[bool], optional) – Whether to use bias in diffusion. Default is True.

  • sigma_output_bias (bool, optional) – Whether to use output bias in diffusion. Default is True.

  • sigma_n_augment (int, optional) – Number of augmented dimensions for diffusion. Default is 0.

  • adjoint (bool, optional) – Whether to use adjoint method. Default is False.

  • sde_type (str, optional) – Type of SDE. Default is “ito”.

  • noise_type (str, optional) – Type of noise. Default is “general”.

  • brownian_dim (int, optional) – Dimension of Brownian motion. Default is 1.

  • coef_drift (float, optional) – Coefficient for drift. Default is 1.0.

  • coef_diffusion (float, optional) – Coefficient for diffusion. Default is 1.0.

  • coef_prior_drift (float, optional) – Coefficient for prior drift. Default is 1.0.

  • DiffEq_type (str, optional) – Type of differential equation. Default is “SDE”.

  • potential_type (Literal["fixed","prior"]) – Type of potential. Default is “fixed”.

  • encoder_n_hidden (int, optional) – Number of hidden layers for encoder. Default is 4.

  • encoder_power (float, optional) – Power for encoder. Default is 2.

  • encoder_activation (Union[str, List[str]], optional) – Activation function for encoder. Default is “LeakyReLU”.

  • encoder_dropout (Union[float, List[float]], optional) – Dropout rate for encoder. Default is 0.2.

  • encoder_bias (bool, optional) – Whether to use bias in encoder. Default is True.

  • encoder_output_bias (bool, optional) – Whether to use output bias in encoder. Default is True.

  • decoder_n_hidden (int, optional) – Number of hidden layers for decoder. Default is 4.

  • decoder_power (float, optional) – Power for decoder. Default is 2.

  • decoder_activation (Union[str, List[str]], optional) – Activation function for decoder. Default is “LeakyReLU”.

  • decoder_dropout (Union[float, List[float]], optional) – Dropout rate for decoder. Default is 0.2.

  • decoder_bias (bool, optional) – Whether to use bias in decoder. Default is True.

  • decoder_output_bias (bool, optional) – Whether to use output bias in decoder. Default is True.

  • ckpt_path (Optional[Union[Path, str]], optional) – Path to checkpoint. Default is None.

  • version (str, optional) – Version of the model. Default is __version__.

Returns: None

fit(train_epochs: int = 2500, pretrain_epochs: int = 0, train_lr: float | None = None, pretrain_callbacks: List = [], train_callbacks: List = [], ckpt_frequency: int = 25, save_last_ckpt: bool = True, keep_ckpts: int = -1, monitor: str | List[str] | None = None, accelerator: str | List[str] | None = None, log_every_n_steps: int = 1, reload_dataloaders_every_n_epochs: int = 1, devices: int = 1, deterministic: bool = False, print_every: int = 10, **kwargs: dict) None[source]#

Fit the scDiffEq model to some data.

Parameters:
  • train_epochs (int, optional) – Number of training epochs, by default 200

  • pretrain_epochs (int, optional) – Number of pretrain epochs, by default 500

  • train_lr (float, optional) – Learning rate for training, by default None

  • pretrain_callbacks (List, optional) – List of pretrain callbacks, by default []

  • train_callbacks (List, optional) – List of train callbacks, by default []

  • ckpt_frequency (int, optional) – Checkpoint frequency, by default 25

  • save_last_ckpt (bool, optional) – Whether to save the last checkpoint, by default True

  • keep_ckpts (int, optional) – Number of checkpoints to keep, by default -1

  • monitor (optional) – Monitor for early stopping, by default None

  • accelerator (optional) – Accelerator to use, by default None

  • log_every_n_steps (int, optional) – Log every n steps, by default 1

  • reload_dataloaders_every_n_epochs (int, optional) – Reload dataloaders every n epochs, by default 1

  • devices (int, optional) – Number of devices to use, by default 1

  • deterministic (bool, optional) – Whether to use deterministic algorithms, by default False

  • print_every (int, optional) – Print every n epochs, by default 10

  • Returns (None)

simulate() AnnData[source]#

Simulate the scDiffEq model.

Returns: anndata.AnnData

Simulated data

__repr__() str[source]#

String representation of the scDiffEq model. Returns: str

__config__(kwargs: Dict)#
__parse__(kwargs: Dict, public: List | None = [None], private: List | None = [], ignore: List | None = []) None#

Made to be called during cls.__init__ of the inherited class. Central function of this autoparsing base class.

Parameters:
  • kwargs (Dict,)

  • public (Optional[List] = [None],)

  • private (Optional[List] = [],)

  • ignore (Optional[List] = [])

Return type:

None

__update__(kwargs: Dict, public: List | None = [None], private: List | None = [], ignore: List | None = []) None#

To be called after __parse__ has already been called (e.g., during cls.__call__) of the inherited class.

Parameters:
  • kwargs (Dict) – Typically, locals()

  • public (Optional[List] = [None])

  • private (Optional[List] = [])

  • ignore (Optional[List] = [])

  • class. (Second-most central function of this autoparsing base)

Return type:

None

_adjust_step_size() None#
_configure_CSVLogger()#
_configure_trainer_generator() None#
_initialize__attrs()#
configure_data(adata: AnnData) None#
configure_kNN(adata: AnnData | None = None, kNN_key: str | None = None, kNN_fit_subset: str | None = None) None#

subset key should point to a col in adata.obs of bool vals

configure_model(DiffEq: LightningModule | None = None, configure_trainer: bool = True, loading_existing: bool = False) None#
diffusion(adata: AnnData | None = None, use_key: str | None = None, obsm_key_added: str = 'X_diffusion', obs_key_added: str = 'diffusion', device=device(type='cpu'), inplace: bool = True, silent: bool = False, *args, **kwargs)#

Diffusion method.

drift(adata: AnnData | None = None, use_key: str | None = None, obsm_key_added: str = 'X_drift', obs_key_added: str = 'drift', device=device(type='cpu'), inplace: bool = True, silent: bool = False, *args, **kwargs)#

Drift method.

freeze() None#

Freeze lightning model

property kNN: kNN#
load(ckpt_path: str | Path, freeze: bool | None = True, device: device | None = device(type='cpu')) None#

Load a model from a path to a checkpoint.

property logger#
property metrics#
potential(use_key: str = 'X_pca', raw_key_added: str = '_psi', norm_key_added: str = 'psi', seed: int = 0, normalize: bool = True, return_raw_array: bool = False, q: float = 0.05, knn_smoothing_iters: int = 5, device: device | None = device(type='cpu'), use_tqdm: bool = True)#

Potential method.

pretrain(pretrain_epochs: int = 500, pretrain_callbacks: List | None = [], ckpt_frequency: int = 25, save_last_ckpt: bool = True, keep_ckpts: int = -1, monitor: str | None = None, accelerator: str | None = None, log_every_n_steps: int = 1, reload_dataloaders_every_n_epochs: int = 1, devices: int | None = None, deterministic: bool | None = False, **kwargs) None#

Pretrain method.

Extended description of the pretrain method.

Parameters:
  • pretrain_epochs (int) – Description. Default: 500

  • pretrain_callbacks (Optional[List]) – Description. Default: []

  • ckpt_frequency (int) – Description. Default: 25

to(device: device) None#

Send model to a specific device

train(train_epochs: int = 500, train_callbacks: List | None = [], ckpt_frequency: int = 25, save_last_ckpt: bool = True, keep_ckpts: int = -1, monitor: str | None = None, accelerator: str | None = None, log_every_n_steps: int = 1, reload_dataloaders_every_n_epochs: int = 1, devices: int | None = 1, deterministic: bool | None = False, **kwargs) None#
property version: int#