Skip to content

Error saving anndata object with cell-type specific expression of every gene in the spatial data (needed for NCEM) #412

@quiquevb23

Description

@quiquevb23

I have followed the tutorial for using cell2location, and in the last part, when estimating the cell-type specific expression of every gene in ST data, when appending the results to the anndata objects, either when appended to 'layers' (as the tutorial explains) or to obsm (shown here), an error arises.
The error only arises when reading the saved adatas later, using scanpy read_h5ad, apparently because the file is corrupted. I don't really know which is the appropriate way to save this results back into an anndata object so that I can use this gene-expression matrices for downstream analysis, without explicitly saving them into different files (per cell-type gene expression matrix file).

Note: Please read this guide detailing how to provide the necessary information for us to reproduce your bug.

Minimal code sample (that we can run without your data, using public data)

    # Compute expected expression per cell type and add to adata

    expected_dict = mod.module.model.compute_expected_per_cell_type(
        mod.samples["post_sample_q05"], mod.adata_manager
    )
    for i, n in enumerate(mod.factor_names_):
        #adata_vis.layers[n] = expected_dict['mu'][i] #this corrupts adata
        adata_vis.obsm[n] = expected_dict['mu'][i]

    adata_vis.write(f"{run_name}/sp{sample}.h5ad") #this will later be read for doing DEA per area
  File "/home/quiquevb/.conda/envs/cell2loc_env/lib/python3.9/site-packages/anndata/utils.py", line 109, in dim_len
    return x.shape[axis]
AttributeError: 'dict' object has no attribute 'shape'
Error raised while reading key '' of <class 'h5py._hl.files.File'> from /

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions