scverse / scanpy

Single-cell analysis in Python. Scales to >1M cells.
https://scanpy.readthedocs.io
BSD 3-Clause "New" or "Revised" License
1.9k stars 597 forks source link

NameError: name 'NeighborsView' is not defined when export spring project #1260

Closed mariusmessemaker closed 4 years ago

mariusmessemaker commented 4 years ago

First of all, thank you for your great platform!

When I try to export a SPRING project I get the following error (it seems that the class NeighborsView is not defined; I have a 'neighbors' key in .uns):

sc.external.exporting.spring_project(adata, '/Users/mariusmessemaker/Documents/Project/mempel/SPRING', 'X_umap', subplot_name='Mempel', cell_groupings=['State', 'ImmGen', 'Biological replicate'], 
                                     custom_color_tracks=None, total_counts_key='nCount_RNA', neighbors_key='neighbors', overwrite=False)

AnnData object with n_obs × n_vars = 8757 × 20679 
    obs: 'SeqRun', 'Biological replicate', 'nCount_RNA', 'nCount_SCT', 'nFeature_RNA', 'nFeature_SCT', 'novelty', 'orig_ident', 'percent_mt', 'sc_leiden_res_48.75', 'State', 'ImmGen'
    var: 'Selected', 'sct_detection_rate', 'sct_gmean', 'sct_residual_mean', 'sct_residual_variance', 'sct_variable', 'sct_variance'
    uns: 'Biological replicate_colors', 'ImmGen_colors', 'State_colors', 'leiden', 'neighbors', 'state'
    obsm: 'X_pca', 'X_umap'
    varm: 'pca_feature_loadings'
    layers: 'norm_data', 'scale_data'
    obsp: 'connectivities', 'distances'
NameError                                 Traceback (most recent call last)
<ipython-input-208-9f15be957dd9> in <module>
      1 sc.external.exporting.spring_project(adata, '/Users/mariusmessemaker/Documents/Project/mempel/SPRING', 'X_umap', subplot_name='Mempel', cell_groupings=['State', 'ImmGen', 'Biological replicate'], 
----> 2                                      custom_color_tracks=None, total_counts_key='nCount_RNA', neighbors_key='neighbors', overwrite=False)

~/miniconda3/envs/py36-sc/lib/python3.6/site-packages/scanpy/external/exporting.py in spring_project(adata, project_dir, embedding_method, subplot_name, cell_groupings, custom_color_tracks, total_counts_key, neighbors_key, overwrite)
    179 
    180     # Write graph in two formats for backwards compatibility
--> 181     edges = _get_edges(adata, neighbors_key)
    182     _write_graph(subplot_dir / 'graph_data.json', E.shape[0], edges)
    183     _write_edges(subplot_dir / 'edges.csv', edges)

~/miniconda3/envs/py36-sc/lib/python3.6/site-packages/scanpy/external/exporting.py in _get_edges(adata, neighbors_key)
    217 
    218 def _get_edges(adata, neighbors_key=None):
--> 219     neighbors = NeighborsView(adata, neighbors_key)
    220     if 'distances' in neighbors:  # these are sparse matrices
    221         matrix = neighbors['distances']

NameError: name 'NeighborsView' is not defined

Versions:

scanpy==1.5.0 anndata==0.7.1 umap==0.4.1 numpy==1.18.1 scipy==1.4.1 pandas==1.0.3 scikit-learn==0.22.2.post1 statsmodels==0.11.1 python-igraph==0.8.2 louvain==0.7.0 leidenalg==0.8.0

Koncopd commented 4 years ago

Thanks for finding this, fixed on master.

mariusmessemaker commented 4 years ago

Great thanks!

AlejandraRodelaRo commented 4 years ago

Hello, I am running into exactly the same bug when using both scanpy-1.5.1 or scanpy-1.5.0.

Versions: scanpy==1.5.1 anndata==0.7.3 umap==0.4.3 numpy==1.18.4 scipy==1.3.2 pandas==1.0.4 scikit-learn==0.23.1 statsmodels==0.11.1 python-igraph==0.8.2 leidenalg==0.8.0

Input: import time t0 = time.time() sc.external.exporting.spring_project(adata, './SPRING', 'umap', subplot_name='all', overwrite=True, cell_groupings=['leiden'], custom_color_tracks=['total_counts']) print(time.time() - t0)

Output: `WARNING: root:Overwriting the files in SPRING. Writing subplot to SPRING\all

NameError Traceback (most recent call last)

in 1 import time 2 t0 = time.time() ----> 3 sc.external.exporting.spring_project(adata, './SPRING', 4 'umap', subplot_name='all', overwrite=True, cell_groupings=['leiden'], 5 custom_color_tracks=['total_counts']) ~\Anaconda3\envs\sfn-workshop\lib\site-packages\scanpy\external\exporting.py in spring_project(adata, project_dir, embedding_method, subplot_name, cell_groupings, custom_color_tracks, total_counts_key, neighbors_key, overwrite) 179 180 # Write graph in two formats for backwards compatibility --> 181 edges = _get_edges(adata, neighbors_key) 182 _write_graph(subplot_dir / 'graph_data.json', E.shape[0], edges) 183 _write_edges(subplot_dir / 'edges.csv', edges) ~\Anaconda3\envs\sfn-workshop\lib\site-packages\scanpy\external\exporting.py in _get_edges(adata, neighbors_key) 217 218 def _get_edges(adata, neighbors_key=None): --> 219 neighbors = NeighborsView(adata, neighbors_key) 220 if 'distances' in neighbors: # these are sparse matrices 221 matrix = neighbors['distances'] NameError: name 'NeighborsView' is not defined`