This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Help with error scanpy

Hi all,

I try to do annotation for single cell using scanpy and got this error that I didn't found on the internet:
Would you please have a suggestion? Code is adapt from https://github.com/bnsreenu/python_for_microscopists/blob/master/326_Cell_type_annotation_for_single_cell_RNA_seq_data%E2%80%8B.ipynb Thank you so much!

sc.pl.umap(adata)

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Input In [34], in <cell line: 1>()
----> 1 sc.pl.umap(adata)

File ~/.local/lib/python3.9/site-packages/scanpy/plotting/_tools/scatterplots.py:668, in umap(adata, **kwargs)
    609 @_wraps_plot_scatter
    610 @_doc_params(
    611     adata_color_etc=doc_adata_color_etc,
   (...)
    615 )
    616 def umap(adata, **kwargs) -> Union[Axes, List[Axes], None]:
    617     """\
    618     Scatter plot in UMAP basis.
    619 
   (...)
    666     tl.umap
    667     """
--> 668     return embedding(adata, 'umap', **kwargs)

File ~/.local/lib/python3.9/site-packages/scanpy/plotting/_tools/scatterplots.py:162, in embedding(adata, basis, color, gene_symbols, use_raw, sort_order, edges, edges_width, edges_color, neighbors_key, arrows, arrows_kwds, groups, components, dimensions, layer, projection, scale_factor, color_map, cmap, palette, na_color, na_in_legend, size, frameon, legend_fontsize, legend_fontweight, legend_loc, legend_fontoutline, colorbar_loc, vmax, vmin, vcenter, norm, add_outline, outline_width, outline_color, ncols, hspace, wspace, title, show, save, ax, return_fig, **kwargs)
    160     else:
    161         cmap = color_map
--> 162 cmap = copy(colormaps.get_cmap(cmap))
    163 cmap.set_bad(na_color)
    164 kwargs["cmap"] = cmap

AttributeError: 'ColormapRegistry' object has no attribute 'get_cmap'
scanpy

Seem this installation precess takes a long time. Still waiting. Thank you so much!

Switch to mamba. It's orders of magnitude faster.

1 answer

Hi,

I had the same issue, and I resolved it as follows:

  1. I replaced the problematic line in the ~/.local/lib/python3.8/site-packages/scanpy/plotting/_tools/scatterplots.py file (line 162) with the following code:

     cmap = copy(plt.cm.get_cmap(cmap))
    

    Since 'plt' was not loaded in the file, I added the following import statement at the top of the same file to import Matplotlib as 'plt':

     import matplotlib.pyplot as plt
    
  2. After making these changes, I saved the file.

  3. To apply the fix, I restarted my Jupyter Notebook or the Python environment where I was using Scanpy.

After following these steps, the issue was resolved, and my process executed correctly.

It worked! Thank you so much!

Thank you for these steps!

Log in to answer this question.