cell2fate benchmark on dyngen data

cell2fate benchmark on dyngen data#

Notebook benchmarks velocity and latent time inference using cell2fate on dyngen-generated data.

Note that cell2fate requires anndata==0.8.0 and scvi-tools==0.16.1.

Library imports#

import contextlib
import io

import numpy as np
import pandas as pd
import scipy
import torch

import anndata as ad
import cell2fate as c2f
import scanpy as sc

from rgv_tools import DATA_DIR
Global seed set to 0

Function definitions#

# Function for train model and get output
def train_c2f_model(adata):
    """cell2fate pipeline."""
    c2f.Cell2fate_DynamicalModel.setup_anndata(adata, spliced_label="spliced_raw", unspliced_label="unspliced_raw")
    n_modules = c2f.utils.get_max_modules(adata)
    mod = c2f.Cell2fate_DynamicalModel(adata, n_modules=n_modules)
    mod.train()

    adata = mod.export_posterior(
        adata, sample_kwargs={"batch_size": None, "num_samples": 30, "return_samples": True, "use_gpu": False}
    )
    adata = mod.compute_module_summary_statistics(adata)
    with contextlib.redirect_stdout(io.StringIO()):
        adata.layers["Spliced Mean"] = mod.samples["post_sample_means"]["mu_expression"][..., 1]
        c2f_velocity = (
            torch.tensor(mod.samples["post_sample_means"]["beta_g"])
            * mod.samples["post_sample_means"]["mu_expression"][..., 0]
            - torch.tensor(mod.samples["post_sample_means"]["gamma_g"])
            * mod.samples["post_sample_means"]["mu_expression"][..., 1]
        )
        adata.layers["velocity"] = c2f_velocity.numpy()

    adata.layers["Ms"] = adata.layers["spliced"].copy()

    return adata
def get_velocity_correlation(ground_truth, estimated, aggregation, axis: int = 0):
    """Compute Pearson correlation between ground truth and estimated values."""
    # Ensure inputs are numpy arrays for easier manipulation
    ground_truth = np.asarray(ground_truth)
    estimated = np.asarray(estimated)

    # Compute correlation along the specified axis
    correlations = []
    for i in range(ground_truth.shape[0]):
        corr, _ = scipy.stats.pearsonr(ground_truth[i], estimated[i])
        correlations.append(corr)

    correlations = np.array(correlations)

    if aggregation is None:
        return correlations
    elif callable(aggregation):
        return aggregation(correlations)
    else:
        raise ValueError("Aggregation must be callable or None.")

Constants#

DATASET = "dyngen"
SAVE_DATA = True
if SAVE_DATA:
    (DATA_DIR / DATASET / "results").mkdir(parents=True, exist_ok=True)

Velocity pipeline#

velocity_correlation = []

for filename in (DATA_DIR / DATASET / "processed").iterdir():
    torch.cuda.empty_cache()
    if filename.suffix != ".zarr":
        continue

    adata = ad.read_zarr(filename)

    ## cell2fate need cluster information
    sc.tl.leiden(adata)

    adata = c2f.utils.get_training_data(
        adata,
        cells_per_cluster=10**5,
        cluster_column="leiden",
        remove_clusters=[],
        min_shared_counts=10,
        n_var_genes=90,
    )

    adata = train_c2f_model(adata)

    velocity_correlation.append(
        get_velocity_correlation(
            ground_truth=adata.layers["true_velocity"], estimated=adata.layers["velocity"], aggregation=np.mean
        )
    )
Keeping at most 100000 cells per cluster
Extracted 90 highly variable genes.
An NVIDIA GPU may be present on this machine, but a CUDA-enabled jaxlib is not installed. Falling back to cpu.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
Number of Leiden Clusters: 9
Maximal Number of Modules: 10
/home/icb/weixu.wang/miniconda3/envs/cell2fate_env2/lib/python3.9/site-packages/pytorch_lightning/core/lightning.py:2054: DeprecationWarning: `torch.distributed._sharded_tensor` will be deprecated, use `torch.distributed._shard.sharded_tensor` instead
  from torch.distributed._sharded_tensor import pre_load_state_dict_hook, state_dict_hook
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Epoch 500/500: 100%|██████████| 500/500 [01:55<00:00,  4.33it/s, v_num=1, elbo_train=1.87e+5]
Sampling local variables, batch: 100%|██████████| 1/1 [00:04<00:00,  4.02s/it]
Sampling global variables, sample: 100%|██████████| 29/29 [00:01<00:00, 21.76it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 4
Maximal Number of Modules: 4
Epoch 500/500: 100%|██████████| 500/500 [01:07<00:00,  7.41it/s, v_num=1, elbo_train=3.71e+5]
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.13it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 35.76it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 3
Maximal Number of Modules: 3
Epoch 500/500: 100%|██████████| 500/500 [01:00<00:00,  8.30it/s, v_num=1, elbo_train=1.44e+5]
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.33it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 40.35it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 3
Maximal Number of Modules: 3
Epoch 500/500: 100%|██████████| 500/500 [01:00<00:00,  8.21it/s, v_num=1, elbo_train=7.21e+4]
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.34it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 41.12it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 7
Maximal Number of Modules: 8
Epoch 500/500: 100%|██████████| 500/500 [01:21<00:00,  6.15it/s, v_num=1, elbo_train=8.39e+4]
Sampling local variables, batch: 100%|██████████| 1/1 [00:01<00:00,  1.05s/it]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 30.07it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Filtered out 2 genes that are detected 10 counts (shared).
Extracted 90 highly variable genes.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 4
Maximal Number of Modules: 4
Epoch 500/500: 100%|██████████| 500/500 [01:08<00:00,  7.30it/s, v_num=1, elbo_train=1.61e+5]
Sampling local variables, batch: 100%|██████████| 1/1 [00:01<00:00,  1.02s/it]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 31.18it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 5
Maximal Number of Modules: 5
Epoch 500/500: 100%|██████████| 500/500 [01:19<00:00,  6.30it/s, v_num=1, elbo_train=2.84e+5]
Sampling local variables, batch: 100%|██████████| 1/1 [00:02<00:00,  2.84s/it]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 34.95it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 5
Maximal Number of Modules: 5
Epoch 500/500: 100%|██████████| 500/500 [01:12<00:00,  6.89it/s, v_num=1, elbo_train=5.74e+4]
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.12it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 35.09it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 3
Maximal Number of Modules: 3
Epoch 500/500: 100%|██████████| 500/500 [01:00<00:00,  8.26it/s, v_num=1, elbo_train=4.71e+5]
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.24it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 38.89it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 5
Maximal Number of Modules: 5
Epoch 500/500: 100%|██████████| 500/500 [01:14<00:00,  6.69it/s, v_num=1, elbo_train=6.45e+5]
Sampling local variables, batch: 100%|██████████| 1/1 [00:01<00:00,  1.07s/it]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 33.39it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 5
Maximal Number of Modules: 5
Epoch 500/500: 100%|██████████| 500/500 [01:11<00:00,  6.95it/s, v_num=1, elbo_train=1.28e+5]
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.09it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 33.89it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Filtered out 1 genes that are detected 10 counts (shared).
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 4
Maximal Number of Modules: 4
Epoch 500/500: 100%|██████████| 500/500 [01:07<00:00,  7.41it/s, v_num=1, elbo_train=6.7e+4] 
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.14it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 35.56it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 7
Maximal Number of Modules: 8
Epoch 500/500: 100%|██████████| 500/500 [01:23<00:00,  6.02it/s, v_num=1, elbo_train=1.25e+5]
Sampling local variables, batch: 100%|██████████| 1/1 [00:01<00:00,  1.06s/it]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 29.47it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 3
Maximal Number of Modules: 3
Epoch 500/500: 100%|██████████| 500/500 [01:02<00:00,  8.06it/s, v_num=1, elbo_train=6.99e+4]
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.26it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 40.55it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 2
Maximal Number of Modules: 2
Epoch 500/500: 100%|██████████| 500/500 [00:57<00:00,  8.68it/s, v_num=1, elbo_train=6.75e+4]
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.47it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 45.46it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 4
Maximal Number of Modules: 4
Epoch 500/500: 100%|██████████| 500/500 [01:09<00:00,  7.20it/s, v_num=1, elbo_train=7.25e+4]
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.17it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 37.11it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 3
Maximal Number of Modules: 3
Epoch 500/500: 100%|██████████| 500/500 [01:01<00:00,  8.17it/s, v_num=1, elbo_train=3.98e+4]
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.46it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 44.43it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 2
Maximal Number of Modules: 2
Epoch 500/500: 100%|██████████| 500/500 [00:56<00:00,  8.78it/s, v_num=1, elbo_train=5.22e+4]
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.48it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 49.70it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 3
Maximal Number of Modules: 3
Epoch 500/500: 100%|██████████| 500/500 [01:02<00:00,  7.95it/s, v_num=1, elbo_train=9.62e+4]
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.16it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 30.12it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 4
Maximal Number of Modules: 4
Epoch 500/500: 100%|██████████| 500/500 [01:20<00:00,  6.19it/s, v_num=1, elbo_train=1.19e+5]
Sampling local variables, batch: 100%|██████████| 1/1 [00:02<00:00,  2.79s/it]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 36.47it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 4
Maximal Number of Modules: 4
Epoch 500/500: 100%|██████████| 500/500 [01:10<00:00,  7.14it/s, v_num=1, elbo_train=5.85e+4]
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.20it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 36.64it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 5
Maximal Number of Modules: 5
Epoch 500/500: 100%|██████████| 500/500 [01:11<00:00,  6.97it/s, v_num=1, elbo_train=7.2e+4] 
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.14it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 34.23it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 3
Maximal Number of Modules: 3
Epoch 500/500: 100%|██████████| 500/500 [01:04<00:00,  7.76it/s, v_num=1, elbo_train=1.09e+5]
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.18it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 43.33it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 4
Maximal Number of Modules: 4
Epoch 500/500: 100%|██████████| 500/500 [01:13<00:00,  6.79it/s, v_num=1, elbo_train=1.8e+5] 
Sampling local variables, batch: 100%|██████████| 1/1 [00:01<00:00,  1.77s/it]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 37.21it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Extracted 90 highly variable genes.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 7
Maximal Number of Modules: 8
Epoch 500/500: 100%|██████████| 500/500 [01:19<00:00,  6.30it/s, v_num=1, elbo_train=3.36e+5]
Sampling local variables, batch: 100%|██████████| 1/1 [00:01<00:00,  1.62s/it]
Sampling global variables, sample: 100%|██████████| 29/29 [00:01<00:00, 22.50it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Filtered out 3 genes that are detected 10 counts (shared).
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 5
Maximal Number of Modules: 5
Epoch 500/500: 100%|██████████| 500/500 [01:11<00:00,  7.00it/s, v_num=1, elbo_train=5.51e+4]
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.12it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:01<00:00, 24.76it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Extracted 90 highly variable genes.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 7
Maximal Number of Modules: 8
Epoch 500/500: 100%|██████████| 500/500 [01:22<00:00,  6.06it/s, v_num=1, elbo_train=1.62e+5]
Sampling local variables, batch: 100%|██████████| 1/1 [00:01<00:00,  1.37s/it]
Sampling global variables, sample: 100%|██████████| 29/29 [00:01<00:00, 19.34it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 5
Maximal Number of Modules: 5
Epoch 500/500: 100%|██████████| 500/500 [01:14<00:00,  6.73it/s, v_num=1, elbo_train=1.04e+5]
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.10it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 34.17it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Extracted 90 highly variable genes.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 3
Maximal Number of Modules: 3
Epoch 500/500: 100%|██████████| 500/500 [01:01<00:00,  8.10it/s, v_num=1, elbo_train=1.39e+5]
Sampling local variables, batch: 100%|██████████| 1/1 [00:01<00:00,  1.18s/it]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 35.04it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Filtered out 1 genes that are detected 10 counts (shared).
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 4
Maximal Number of Modules: 4
Epoch 500/500: 100%|██████████| 500/500 [01:07<00:00,  7.42it/s, v_num=1, elbo_train=5.16e+4]
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.19it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 35.65it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
Number of Leiden Clusters: 4
Maximal Number of Modules: 4
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Epoch 500/500: 100%|██████████| 500/500 [01:09<00:00,  7.16it/s, v_num=1, elbo_train=1.34e+5]
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.13it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 36.00it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 3
Maximal Number of Modules: 3
Epoch 500/500: 100%|██████████| 500/500 [01:05<00:00,  7.60it/s, v_num=1, elbo_train=5.71e+4]
Sampling local variables, batch: 100%|██████████| 1/1 [00:03<00:00,  3.06s/it]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 44.11it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
Number of Leiden Clusters: 4
Maximal Number of Modules: 4
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Epoch 500/500: 100%|██████████| 500/500 [01:07<00:00,  7.39it/s, v_num=1, elbo_train=5.16e+4]
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.23it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 38.31it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 5
Maximal Number of Modules: 5
Epoch 500/500: 100%|██████████| 500/500 [01:11<00:00,  6.98it/s, v_num=1, elbo_train=6.64e+5]
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.07it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 32.96it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 4
Maximal Number of Modules: 4
Epoch 500/500: 100%|██████████| 500/500 [01:08<00:00,  7.33it/s, v_num=1, elbo_train=6.13e+4]
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.14it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 34.66it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 5
Maximal Number of Modules: 5
Epoch 500/500: 100%|██████████| 500/500 [01:12<00:00,  6.89it/s, v_num=1, elbo_train=5.65e+5]
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.08it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 32.96it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Filtered out 1 genes that are detected 10 counts (shared).
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 2
Maximal Number of Modules: 2
Epoch 500/500: 100%|██████████| 500/500 [00:56<00:00,  8.82it/s, v_num=1, elbo_train=6.43e+4]
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.49it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 47.63it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Filtered out 2 genes that are detected 10 counts (shared).
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 4
Maximal Number of Modules: 4
Epoch 500/500: 100%|██████████| 500/500 [01:08<00:00,  7.33it/s, v_num=1, elbo_train=3.61e+4]
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.20it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 36.52it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 4
Maximal Number of Modules: 4
Epoch 500/500: 100%|██████████| 500/500 [01:10<00:00,  7.09it/s, v_num=1, elbo_train=7.22e+4]
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.07it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 34.64it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
Number of Leiden Clusters: 5
Maximal Number of Modules: 5
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Epoch 500/500: 100%|██████████| 500/500 [01:14<00:00,  6.69it/s, v_num=1, elbo_train=5.38e+4]
Sampling local variables, batch: 100%|██████████| 1/1 [00:03<00:00,  3.57s/it]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 33.28it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 4
Maximal Number of Modules: 4
Epoch 500/500: 100%|██████████| 500/500 [01:09<00:00,  7.24it/s, v_num=1, elbo_train=6.97e+4]
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.16it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 35.37it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Filtered out 1 genes that are detected 10 counts (shared).
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 5
Maximal Number of Modules: 5
Epoch 500/500: 100%|██████████| 500/500 [01:14<00:00,  6.71it/s, v_num=1, elbo_train=5.59e+4]
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.12it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 34.76it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 6
Maximal Number of Modules: 6
Epoch 500/500: 100%|██████████| 500/500 [01:17<00:00,  6.49it/s, v_num=1, elbo_train=2.91e+5]
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.05it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 33.22it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Extracted 90 highly variable genes.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 6
Maximal Number of Modules: 6
Epoch 500/500: 100%|██████████| 500/500 [01:17<00:00,  6.47it/s, v_num=1, elbo_train=3.5e+5] 
Sampling local variables, batch: 100%|██████████| 1/1 [00:01<00:00,  1.30s/it]
Sampling global variables, sample: 100%|██████████| 29/29 [00:01<00:00, 26.42it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 6
Maximal Number of Modules: 6
Epoch 500/500: 100%|██████████| 500/500 [01:16<00:00,  6.58it/s, v_num=1, elbo_train=1.28e+5]
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.00it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 31.08it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 4
Maximal Number of Modules: 4
Epoch 500/500: 100%|██████████| 500/500 [01:13<00:00,  6.78it/s, v_num=1, elbo_train=6.14e+4]
Sampling local variables, batch: 100%|██████████| 1/1 [00:01<00:00,  1.02s/it]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 35.26it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 3
Maximal Number of Modules: 3
Epoch 500/500: 100%|██████████| 500/500 [01:00<00:00,  8.24it/s, v_num=1, elbo_train=7.17e+4]
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.30it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 39.84it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Filtered out 1 genes that are detected 10 counts (shared).
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 4
Maximal Number of Modules: 4
Epoch 500/500: 100%|██████████| 500/500 [01:08<00:00,  7.27it/s, v_num=1, elbo_train=5.42e+4]
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.20it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 37.67it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 4
Maximal Number of Modules: 4
Epoch 500/500: 100%|██████████| 500/500 [01:08<00:00,  7.31it/s, v_num=1, elbo_train=6.84e+4]
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.17it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 36.14it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
Keeping at most 100000 cells per cluster
Skip filtering by dispersion since number of variables are less than `n_top_genes`.
Leiden clustering ...
WARNING: adata.X seems to be already log-transformed.
GPU available: True, used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]
Set SLURM handle signals.
Number of Leiden Clusters: 3
Maximal Number of Modules: 3
Epoch 500/500: 100%|██████████| 500/500 [01:01<00:00,  8.18it/s, v_num=1, elbo_train=3.3e+5] 
Sampling local variables, batch: 100%|██████████| 1/1 [00:00<00:00,  1.39it/s]
Sampling global variables, sample: 100%|██████████| 29/29 [00:00<00:00, 42.66it/s]
Warning: Saving ALL posterior samples. Specify "return_samples: False" to save just summary statistics.
if SAVE_DATA:
    pd.DataFrame({"velocity": velocity_correlation}).to_parquet(
        path=DATA_DIR / DATASET / "results" / "cell2fate_correlation.parquet"
    )