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,ABCParsescDiffeq 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)
- __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
- _configure_CSVLogger()#
- _initialize__attrs()#
- 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.
- 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.
- 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#