emdann's picture
Upload folder using huggingface_hub
032c0ea verified
import numpy as np
import scanpy as sc
import scvi
import torch
torch.set_float32_matmul_precision("high")
adata = sc.read_h5ad("/home/ubuntu/data/merged.h5ad")
scvi.model.LinearSCVI.setup_anndata(
adata, layer=None, batch_key="batch"
)
model = scvi.model.LinearSCVI(
adata,
n_latent=50,
latent_distribution="ln",
use_batch_norm=True,
)
model.train(
max_epochs=200,
early_stopping=True,
early_stopping_patience=2,
batch_size=16_834,
load_sparse_tensor=True,
plan_kwargs={
"lr": 1e-3,
"n_epochs_kl_warmup": 2,
},
datasplitter_kwargs={
"pin_memory": False,
},
accelerator="gpu",
)
train_elbo = model.history["elbo_train"][1:]
test_elbo = model.history["elbo_validation"]
np.save('train_elbo.npy', np.array(train_elbo))
np.save('test_elbo.npy', np.array(test_elbo))
z_hat = model.get_latent_representation()
np.save('latent_representation.npy', z_hat.cpu().numpy() if isinstance(z_hat, torch.Tensor) else np.array(z_hat))
loadings = model.get_loadings()
loadings.to_csv("loadings.tsv", sep='\t')