spatialvi.module.SpatialVAEModule#
- class spatialvi.module.SpatialVAEModule(n_input, n_batch=0, n_hidden=128, n_latent=10, n_layers=1, dropout_rate=0.1, dispersion='gene', gene_likelihood='zinb', latent_distribution='normal', use_spatial=True, spatial_weight=1.0, library_log_means=None, library_log_vars=None, n_cats_per_cov=None, n_continuous_cov=0, use_batch_norm='both', use_layer_norm='none', **kwargs)[source]#
Bases:
BaseSpatialModuleSpatial VAE module for gene expression modeling.
This module implements a VAE that incorporates spatial context for improved latent representations.
- Parameters:
dispersion¶ (
Literal['gene','gene-batch','gene-cell']) – Dispersion parameter type.gene_likelihood¶ (
Literal['zinb','nb','poisson']) – Distribution for gene expression.latent_distribution¶ (
Literal['normal','ln']) – Distribution for latent space.spatial_weight¶ (
float) – Weight for spatial regularization.library_log_means¶ (
ndarray|None) – Log means of library sizes.library_log_vars¶ (
ndarray|None) – Log variances of library sizes.n_cats_per_cov¶ (
list[int] |None) – Number of categories per categorical covariate.use_batch_norm¶ (
Literal['encoder','decoder','none','both']) – Whether to use batch normalization.use_layer_norm¶ (
Literal['encoder','decoder','none','both']) – Whether to use layer normalization.n_input (int)
n_batch (int)
n_hidden (int)
n_latent (int)
n_layers (int)
dropout_rate (float)
dispersion (Literal['gene', 'gene-batch', 'gene-cell'])
gene_likelihood (Literal['zinb', 'nb', 'poisson'])
latent_distribution (Literal['normal', 'ln'])
use_spatial (bool)
spatial_weight (float)
library_log_means (np.ndarray | None)
library_log_vars (np.ndarray | None)
n_continuous_cov (int)
use_batch_norm (Literal['encoder', 'decoder', 'none', 'both'])
use_layer_norm (Literal['encoder', 'decoder', 'none', 'both'])
- __init__(n_input, n_batch=0, n_hidden=128, n_latent=10, n_layers=1, dropout_rate=0.1, dispersion='gene', gene_likelihood='zinb', latent_distribution='normal', use_spatial=True, spatial_weight=1.0, library_log_means=None, library_log_vars=None, n_cats_per_cov=None, n_continuous_cov=0, use_batch_norm='both', use_layer_norm='none', **kwargs)[source]#
Initialize internal Module state, shared by both nn.Module and ScriptModule.
- Parameters:
n_input (int)
n_batch (int)
n_hidden (int)
n_latent (int)
n_layers (int)
dropout_rate (float)
dispersion (Literal['gene', 'gene-batch', 'gene-cell'])
gene_likelihood (Literal['zinb', 'nb', 'poisson'])
latent_distribution (Literal['normal', 'ln'])
use_spatial (bool)
spatial_weight (float)
library_log_means (ndarray | None)
library_log_vars (ndarray | None)
n_continuous_cov (int)
use_batch_norm (Literal['encoder', 'decoder', 'none', 'both'])
use_layer_norm (Literal['encoder', 'decoder', 'none', 'both'])
Methods
__init__(n_input[, n_batch, n_hidden, ...])Initialize internal Module state, shared by both nn.Module and ScriptModule.
add_module(name, module)Add a child module to the current module.
apply(fn)Apply
fnrecursively to every submodule (as returned by.children()) as well as self.bfloat16()Casts all floating point parameters and buffers to
bfloat16datatype.buffers([recurse])Return an iterator over module buffers.
children()Return an iterator over immediate children modules.
compile(*args, **kwargs)Compile this Module's forward using
torch.compile().cpu()Move all model parameters and buffers to the CPU.
cuda([device])Move all model parameters and buffers to the GPU.
double()Casts all floating point parameters and buffers to
doubledatatype.eval()Set the module in evaluation mode.
extra_repr()Return the extra representation of the module.
float()Casts all floating point parameters and buffers to
floatdatatype.forward(tensors[, ...])Forward pass through the module.
generative(z, library[, batch_index, ...])Run the generative network.
get_buffer(target)Return the buffer given by
targetif it exists, otherwise throw an error.get_extra_state()Return any extra state to include in the module's state_dict.
get_parameter(target)Return the parameter given by
targetif it exists, otherwise throw an error.get_submodule(target)Return the submodule given by
targetif it exists, otherwise throw an error.half()Casts all floating point parameters and buffers to
halfdatatype.inference(x[, batch_index, cont_covs, ...])Run the inference network.
ipu([device])Move all model parameters and buffers to the IPU.
load_state_dict(state_dict[, strict, assign])Copy parameters and buffers from
state_dictinto this module and its descendants.loss(tensors, inference_outputs, ...[, ...])Compute the loss.
modules()Return an iterator over all modules in the network.
mtia([device])Move all model parameters and buffers to the MTIA.
named_buffers([prefix, recurse, ...])Return an iterator over module buffers, yielding both the name of the buffer as well as the buffer itself.
named_children()Return an iterator over immediate children modules, yielding both the name of the module as well as the module itself.
named_modules([memo, prefix, remove_duplicate])Return an iterator over all modules in the network, yielding both the name of the module as well as the module itself.
named_parameters([prefix, recurse, ...])Return an iterator over module parameters, yielding both the name of the parameter as well as the parameter itself.
on_load(model, **kwargs)Callback function run in
load().parameters([recurse])Return an iterator over module parameters.
register_backward_hook(hook)Register a backward hook on the module.
register_buffer(name, tensor[, persistent])Add a buffer to the module.
register_forward_hook(hook, *[, prepend, ...])Register a forward hook on the module.
register_forward_pre_hook(hook, *[, ...])Register a forward pre-hook on the module.
register_full_backward_hook(hook[, prepend])Register a backward hook on the module.
register_full_backward_pre_hook(hook[, prepend])Register a backward pre-hook on the module.
register_load_state_dict_post_hook(hook)Register a post-hook to be run after module's
load_state_dict()is called.register_load_state_dict_pre_hook(hook)Register a pre-hook to be run before module's
load_state_dict()is called.register_module(name, module)Alias for
add_module().register_parameter(name, param)Add a parameter to the module.
register_state_dict_post_hook(hook)Register a post-hook for the
state_dict()method.register_state_dict_pre_hook(hook)Register a pre-hook for the
state_dict()method.requires_grad_([requires_grad])Change if autograd should record operations on parameters in this module.
sample(tensors[, n_samples])Sample from the model.
set_extra_state(state)Set extra state contained in the loaded
state_dict.set_submodule(target, module[, strict])Set the submodule given by
targetif it exists, otherwise throw an error.share_memory()state_dict(*args[, destination, prefix, ...])Return a dictionary containing references to the whole state of the module.
to(*args, **kwargs)Move and/or cast the parameters and buffers.
to_empty(*, device[, recurse])Move the parameters and buffers to the specified device without copying storage.
train([mode])Set the module in training mode.
type(dst_type)Casts all parameters and buffers to
dst_type.xpu([device])Move all model parameters and buffers to the XPU.
zero_grad([set_to_none])Reset gradients of all model parameters.
Attributes
T_destinationcall_super_initdevicedump_patches- inference(x, batch_index=None, cont_covs=None, cat_covs=None, spatial_coords=None, neighbor_indices=None, n_samples=1, **kwargs)[source]#
Run the inference network.
- Parameters:
- Return type:
dict[str,Tensor|Distribution]- Returns:
Dictionary of inference outputs.
- generative(z, library, batch_index=None, cont_covs=None, cat_covs=None, **kwargs)[source]#
Run the generative network.
- loss(tensors, inference_outputs, generative_outputs, kl_weight=1.0)[source]#
Compute the loss.
- Parameters:
inference_outputs¶ (
dict[str,Tensor|Distribution]) – Dictionary of inference outputs.generative_outputs¶ (
dict[str,Tensor|Distribution]) – Dictionary of generative outputs.inference_outputs (dict[str, Tensor | Distribution])
generative_outputs (dict[str, Tensor | Distribution])
kl_weight (float)
- Return type:
- Returns:
LossOutput containing reconstruction loss, KL divergence, etc.