Skip to content

Problems getting normalized expression with sysVI #23

Description

@leandro-ventimiglia

I need to get the normalized expression values after training sysVI. This is the relevant part

`adata_sysvi = adata_base.copy()

sysVI needs normalized data

sc.pp.normalize_total(adata_sysvi, target_sum=1e4)
sc.pp.log1p(adata_sysvi)

SysVI.setup_anndata(
adata_sysvi,
batch_key='batch'
)

datasplitter_kwargs = {}
datasplitter_kwargs["drop_dataset_tail"] = True
datasplitter_kwargs["drop_last"] = False

model_sysvi = SysVI(
adata_sysvi,
n_latent=50
)

model_sysvi.train(
max_epochs=400,
accelerator="gpu",
train_size=0.8,
validation_size=0.2,
check_val_every_n_epoch=1,
early_stopping=True,
early_stopping_patience=15,
)

model_sysvi.save(os.path.join(sysvi_models_folder, "sysvi_model_test"), overwrite=True)

GET REPRESENTATIONS

latent_sysvi = model_sysvi.get_latent_representation()

normalized_sysvi = model_sysvi.get_normalized_expression()`

But I'm getting this message:


TypeError Traceback (most recent call last)
Cell In[75], line 54
51 latent_sysvi = model_sysvi.get_latent_representation()
53 print("Extracting sysVI normalized expression...")
---> 54 normalized_sysvi = model_sysvi.get_normalized_expression()
56 # Save scVI latent representation
57 print("Saving sysVI latent representation...")

File /scratch/users/k2366285/conda/envs/snap-scvi/lib/python3.10/site-packages/torch/utils/_contextlib.py:120, in context_decorator..decorate_context(*args, **kwargs)
117 @functools.wraps(func)
118 def decorate_context(*args, **kwargs):
119 with ctx_factory():
--> 120 return func(*args, **kwargs)

File /scratch/users/k2366285/conda/envs/snap-scvi/lib/python3.10/site-packages/scvi/model/base/rnamixin.py:301, in RNASeqMixin.get_normalized_expression(self, adata, indices, transform_batch, gene_list, library_size, n_samples, n_samples_overall, weights, batch_size, return_mean, return_numpy, silent, dataloader, **importance_weighting_kwargs)
299 else:
300 exp
= px_generative.get_normalized(generative_output_key)
--> 301 exp_ = exp_[..., gene_mask]
302 exp_ *= scaling
303 per_batch_exprs.append(exp_[None].cpu())

TypeError: 'NoneType' object is not subscriptable

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions