Scanpy: AttributeError: 'AnnData' object has no attribute 'obs_vector'

Created on 1 Dec 2019  路  6Comments  路  Source: theislab/scanpy


... AttributeError: 'AnnData' object has no attribute 'obs_vector', when pl.umap, pl.violin

...sc.pl.violin(adata, ['n_genes', 'n_counts', 'percent_mito'],jitter=0.4, multi_panel=True)
...AttributeError                            Traceback (most recent call last)
<ipython-input-41-ed9365d2081e> in <module>
----> 1 sc.pl.violin(adata, ['n_genes', 'n_counts', 'percent_mito'],jitter=0.4, multi_panel=True)

~/anaconda3/envs/myenv/lib/python3.7/site-packages/scanpy/plotting/_anndata.py in violin(adata, keys, groupby, log, use_raw, stripplot, jitter, size, scale, order, multi_panel, show, xlabel, rotation, save, ax, **kwds)
    636         obs_df = get.obs_df(adata, keys=[groupby] + keys, use_raw=use_raw)
    637     else:
--> 638         obs_df = get.obs_df(adata, keys=keys, use_raw=use_raw)
    639     if groupby is None:
    640         obs_tidy = pd.melt(obs_df, value_vars=keys)

~/anaconda3/envs/myenv/lib/python3.7/site-packages/scanpy/get.py in obs_df(adata, keys, obsm_keys, layer, gene_symbols, use_raw)
    160     for k, l in zip(keys, lookup_keys):
    161         if not use_raw or k in adata.obs.columns:
--> 162             df[k] = adata.obs_vector(l, layer=layer)
    163         else:
    164             df[k] = adata.raw.obs_vector(l)

AttributeError: 'AnnData' object has no attribute 'obs_vector'

Versions:

...scanpy==1.4.3 anndata==0.6.20 umap==0.3.9 numpy==1.17.0 scipy==1.3.0 pandas==0.23.4 scikit-learn==0.21.3 statsmodels==0.9.0 python-igraph==0.7.1 louvain==0.6.1

bug

All 6 comments

It looks like your versions aren't up to date.

@ivirshup Thanks for pointing it up. I updated all to newest version, and it worked!

@MichaelPeibo Could you install the version 1.4.5.post1? It is not available in conda and with 1.4.4.post1 I'm getting the same error.

Thanks!

conda search -c bioconda scanpy
Loading channels: done
# Name                       Version           Build  Channel             
scanpy                         1.3.1          py36_0  bioconda            
scanpy                         1.3.2          py36_0  bioconda            
scanpy                         1.3.3          py36_0  bioconda            
scanpy                         1.3.4          py36_0  bioconda            
scanpy                         1.3.5          py36_0  bioconda            
scanpy                         1.3.6          py36_0  bioconda            
scanpy                         1.3.7          py36_0  bioconda            
scanpy                           1.4            py_0  bioconda            
scanpy                         1.4.1            py_0  bioconda            
scanpy                         1.4.2            py_0  bioconda            
scanpy                         1.4.3            py_0  bioconda            
scanpy                         1.4.4            py_0  bioconda            
scanpy                         1.4.4            py_1  bioconda            
scanpy                   1.4.4.post1            py_0  bioconda            
scanpy                   1.4.4.post1            py_1  bioconda            
scanpy                   1.4.4.post1            py_2  bioconda  

@massonix Latest version is available on PyPI, so you can try installing via pip install.

That worked, thank you very much for your help!

I still had the same error with scanpy 1.4.5, in my case updating anndata solved the issue, but now I've hit the slow concatenation problem https://github.com/theislab/anndata/issues/303

Was this page helpful?
0 / 5 - 0 ratings