smoother.models.reduction._spae
Classes
Abstract AutoEncoder class. |
|
Generic spatial auto-encoder. |
Module Contents
- class smoother.models.reduction._spae.AutoEncoderClass(n_feature: int, n_latent: int = 10, spatial_loss: smoother.losses.SpatialLoss | None = None, lambda_spatial_loss=0.1, lambda_orth_loss=0.1)
Bases:
torch.nn.ModuleAbstract AutoEncoder class.
- To mimic the behavior of PCA, the overall objective contains three losses:
Reconstruction loss: reconstruction error of the observed data.
Orthogonality loss: the loss of orthogonality on the hidden embeddings.
Spatial loss: the spatial loss on the hidden embeddings.
- n_latent = 10
- n_feature
- _data = None
- spatial_loss = None
- l_sp_loss = 0.1
- l_orth_loss = 0.1
- dr_configs
- dr_logs
- load_adata(adata: anndata.AnnData, layer: str | None = None)
Load data to project.
- Parameters:
adata (AnnData) – data to project.
layer (str) – layer to project. If None, use adata.X.
- forward(x)
- encode(x)
- decode(x_enc)
- get_latent_representation()
Get the latent representation of the loaded data.
- abstract get_recon_loss()
Get the reconstruction loss.
- abstract get_orth_loss()
Get the orthogonality loss (weighted by lambda_orth_loss).
- abstract get_sp_loss()
Get the spatial loss (weighted by lambda_spatial_loss).
- reduce(lr=0.01, max_epochs=1000, patience=10, tol=1e-05, optimizer='SGD', verbose=True, quite=False, clear_logs=True)
- classmethod _reduce_dim_ae(ae_model, lr=0.01, max_epochs=1000, patience=10, tol=1e-05, optimizer='SGD', verbose=True, quite=False, clear_logs=False, return_model=False)
Dimension reduction using auto-encoders.
- Two additional losses are added in addition to the reconstruction loss:
Orthogonality loss: the loss of the orthogonality of the hidden embedding.
Spatial loss: the spatial loss on the hidden embeddings.
- Parameters:
ae_model (AutoEncoder) – The autoencoder model.
lr (float) – The learning rate.
max_epochs (int) – The maximum number of epochs.
patience (int) – The patience for early stopping.
tol (float) – The tolerated convergence error.
optimizer (str) – The optimizer to be used. Can be ‘SGD’ or ‘Adam’.
verbose (bool) – If True, print out loss while training.
quite (bool) – If True, no output printed.
clear_logs (bool) – If True, clear the logs in the autoencoder model.
return_model (bool) – If True, return the trained autoencoder model.
- Returns:
The trained autoencoder model.
- Return type:
ae_model (AutoEncoder)
- class smoother.models.reduction._spae.SpatialAutoEncoder(adata: anndata.AnnData, layer: str | None = None, spatial_loss: smoother.losses.SpatialLoss | None = None, lambda_spatial_loss=0.1, lambda_orth_loss=0.1, recon_loss_mode: Literal['mse', 'poisson'] = 'poisson', n_layers: int = 1, n_hidden: int = 128, n_latent: int = 10, dropout_rate: float = 0.0, use_batch_norm: bool = True, use_activation: bool = True, activation_fn: torch.nn.Module | None = nn.ReLU, use_bias=True)
Bases:
AutoEncoderClassGeneric spatial auto-encoder.
- setup_args
- lib_size
- encoder
- decoder
- encode(x)
Project the input to the hidden space.
- Parameters:
x (2D tensor) – The input matrix, num_gene x num_spot.
- Returns:
The hidden embedding, num_spot x num_hidden.
- Return type:
x_enc (2D tensor)
- decode(x_enc)
Project the hidden embedding back to the input space.
- Parameters:
x_enc (2D tensor) – The hidden embedding, num_spot x num_hidden.
- Returns:
The decoded matrix, num_gene x num_spot.
- Return type:
x_dec (2D tensor)
- get_recon_loss()
Get the reconstruction loss.
- get_orth_loss()
Get the orthogonality loss (weighted by lambda_orth_loss).
- get_sp_loss()
Get the spatial loss (weighted by lambda_spatial_loss).
- classmethod from_rna_model(rna_model, st_adata: anndata.AnnData, layer: str | None = None, spatial_loss: smoother.losses.SpatialLoss | None = None, lambda_spatial_loss=0.1)
Initialize a spatial model from a pre-trained RNA model.