Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

velocity_graph fails outside of Jupyter notebook #1128

Closed
josiahbjorgaard opened this issue Sep 28, 2023 · 1 comment
Closed

velocity_graph fails outside of Jupyter notebook #1128

josiahbjorgaard opened this issue Sep 28, 2023 · 1 comment
Labels
bug Something isn't working

Comments

@josiahbjorgaard
Copy link

velocity_graph uses tqdm.notebook via [the parallelize function].(

def parallelize(
).
This causes an issue when running outside of a jupyter notebook, as shown below. I noted that there is a show_progress_bar option in parallelize, but no way of passing kwargs via an execution point of the velocity_graph function.

A fix for this would be to add an option to set show_progress_bar=False in parallelize when calling velocity_graph.

import os
import scvelo as scv
loomfile = 'combined_test1.loom'
ldata = scv.read_loom(loomfile, sparse=True)#cache=True)
scv.settings.verbosity = 0
scv.settings.set_figure_params('scvelo', facecolor='white', dpi=100, frameon=False)
cr.settings.verbosity = 0
barcodes = [bc.split(':')[1] for bc in ldata.obs.index.tolist()]
barcodes = [bc[0:len(bc)-1] + '_10' for bc in barcodes]
ldata.obs.index = barcodes
ldata.var_names_make_unique()
scv.pp.filter_and_normalize(ldata)
scv.pp.moments(ldata)
scv.tl.velocity(ldata, mode='stochastic', use_highly_variable=False)
scv.tl.velocity_graph(ldata, n_jobs=64)
scv.tl.umap(ldata)
scv.tl.louvain(ldata)
scv.pl.velocity_embedding(ldata, basis='umap', frameon=False, save='embedding.pdf')
scv.pl.velocity_embedding_grid(ldata, basis='umap', save='embedding_grid.pdf', title='', scale=0.25)
ldata.write_h5ad('combined_test1_loom_gzip.h5ad', compression="gzip")
Error output
Traceback (most recent call last):
  File "/shared/miniconda3/envs/geneformer/lib/python3.8/site-packages/traitlets/traitlets.py", line 653, in get
    value = obj._trait_values[self.name]
KeyError: 'layout'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "process_velocity_looms.py", line 29, in <module>
    scv.tl.velocity_graph(ldata, n_jobs=64)
  File "/shared/miniconda3/envs/geneformer/lib/python3.8/site-packages/scvelo/tools/velocity_graph.py", line 373, in v
elocity_graph
    vgraph.compute_cosines(n_jobs=n_jobs, backend=backend)
  File "/shared/miniconda3/envs/geneformer/lib/python3.8/site-packages/scvelo/tools/velocity_graph.py", line 185, in c
ompute_cosines
    res = parallelize(
  File "/shared/miniconda3/envs/geneformer/lib/python3.8/site-packages/scvelo/core/_parallelize.py", line 120, in wrap
per
    pbar = None if tqdm is None else tqdm(total=col_len, unit=unit)
  File "/shared/miniconda3/envs/geneformer/lib/python3.8/site-packages/tqdm/notebook.py", line 233, in __init__
    self.container = self.status_printer(self.fp, total, self.desc, self.ncols)
  File "/shared/miniconda3/envs/geneformer/lib/python3.8/site-packages/tqdm/notebook.py", line 110, in status_printer
    pbar = IProgress(min=0, max=total)
  File "/shared/miniconda3/envs/geneformer/lib/python3.8/site-packages/ipywidgets/widgets/widget_float.py", line 26, i
n __init__
    super().__init__(**kwargs)
  File "/shared/miniconda3/envs/geneformer/lib/python3.8/site-packages/ipywidgets/widgets/widget_description.py", line
 35, in __init__
    super().__init__(*args, **kwargs)
  File "/shared/miniconda3/envs/geneformer/lib/python3.8/site-packages/ipywidgets/widgets/widget.py", line 504, in __i
nit__
    self.open()
  File "/shared/miniconda3/envs/geneformer/lib/python3.8/site-packages/ipywidgets/widgets/widget.py", line 517, in ope
n
    state, buffer_paths, buffers = _remove_buffers(self.get_state())
  File "/shared/miniconda3/envs/geneformer/lib/python3.8/site-packages/ipywidgets/widgets/widget.py", line 615, in get
_state
    value = to_json(getattr(self, k), self)
  File "/shared/miniconda3/envs/geneformer/lib/python3.8/site-packages/traitlets/traitlets.py", line 700, in __get__
    return self.get(obj, cls)
  File "/shared/miniconda3/envs/geneformer/lib/python3.8/site-packages/traitlets/traitlets.py", line 656, in get
    default = obj.trait_defaults(self.name)
  File "/shared/miniconda3/envs/geneformer/lib/python3.8/site-packages/traitlets/traitlets.py", line 1868, in trait_defaults
    return self._get_trait_default_generator(names[0])(self)
  File "/shared/miniconda3/envs/geneformer/lib/python3.8/site-packages/traitlets/traitlets.py", line 624, in default
    return self.make_dynamic_default()
  File "/shared/miniconda3/envs/geneformer/lib/python3.8/site-packages/ipywidgets/widgets/trait_types.py", line 365, in make_dynamic_default
    return self.klass(*(self.default_args or ()),
  File "/shared/miniconda3/envs/geneformer/lib/python3.8/site-packages/ipywidgets/widgets/widget_layout.py", line 86, in __init__
    super().__init__(**kwargs)
  File "/shared/miniconda3/envs/geneformer/lib/python3.8/site-packages/ipywidgets/widgets/widget.py", line 504, in __init__
    self.open()
  File "/shared/miniconda3/envs/geneformer/lib/python3.8/site-packages/ipywidgets/widgets/widget.py", line 535, in open
    self.comm = create_comm(**args)
  File "/shared/miniconda3/envs/geneformer/lib/python3.8/site-packages/comm/__init__.py", line 27, in _create_comm
    raise NotImplementedError("Cannot ")
NotImplementedError: Cannot 
Exception ignored in: <function tqdm.__del__ at 0x7f2598201d30>
Traceback (most recent call last):
  File "/shared/miniconda3/envs/geneformer/lib/python3.8/site-packages/tqdm/std.py", line 1149, in __del__
    self.close()
  File "/shared/miniconda3/envs/geneformer/lib/python3.8/site-packages/tqdm/notebook.py", line 278, in close
    self.disp(bar_style='danger', check_delay=False)
Versions
scvelo==0.3.0  scanpy==1.9.3  anndata==0.9.2  loompy==3.0.7  numpy==1.24.3  scipy==1.8.1  matplotlib==3.7.1  sklearn==1.1.3  pandas==1.5.3  
@josiahbjorgaard josiahbjorgaard added the bug Something isn't working label Sep 28, 2023
@WeilerP
Copy link
Member

WeilerP commented Apr 12, 2024

Not a scvelo issue as far as I can tell but an issue in traitlets. I've added arguments to optionally display the progress bar, nonetheless. See #1234.

@WeilerP WeilerP closed this as completed Apr 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants