scvelo: scv.pl.scatter cannot generate plot to show transcriptional switches
scv.pl.scatter cannot generate plot to show transcriptional switches. I convert seurat object to anndata, and then perform rna velocity (dynamical model) through scVelo. I can generate the heatmap of top likelihood genes.
var_names = ['TNFRSF4']
scv.pl.scatter(WT_WT, var_names, frameon=False)
scv.pl.scatter(WT_WT, x='latent_time', y='IL1RN', frameon=False)
Error
KeyError Traceback (most recent call last)
~/.conda/envs/py_seq/lib/python3.8/site-packages/pandas/core/computation/scope.py in resolve(self, key, is_local)
200 if self.has_resolvers:
--> 201 return self.resolvers[key]
202
~/.conda/envs/py_seq/lib/python3.8/collections/__init__.py in __getitem__(self, key)
897 pass
--> 898 return self.__missing__(key) # support subclasses that define __missing__
899
~/.conda/envs/py_seq/lib/python3.8/collections/__init__.py in __missing__(self, key)
889 def __missing__(self, key):
--> 890 raise KeyError(key)
891
KeyError: 'IL1RN'
During handling of the above exception, another exception occurred:
KeyError Traceback (most recent call last)
~/.conda/envs/py_seq/lib/python3.8/site-packages/pandas/core/computation/scope.py in resolve(self, key, is_local)
211 # e.g., df[df > 0]
--> 212 return self.temps[key]
213 except KeyError as err:
KeyError: 'IL1RN'
The above exception was the direct cause of the following exception:
UndefinedVariableError Traceback (most recent call last)
<ipython-input-74-2764e73f8fda> in <module>
1 var_names = ['TNFRSF4']
2 scv.pl.scatter(WT_WT, var_names, frameon=False)
----> 3 scv.pl.scatter(WT_WT, x='latent_time', y='IL1RN', frameon=False)
~/.local/lib/python3.8/site-packages/scvelo/plotting/scatter.py in scatter(adata, basis, x, y, vkey, color, use_raw, layer, color_map, colorbar, palette, size, alpha, linewidth, linecolor, perc, groups, sort_order, components, projection, legend_loc, legend_loc_lines, legend_fontsize, legend_fontweight, legend_fontoutline, xlabel, ylabel, title, fontsize, figsize, xlim, ylim, add_density, add_assignments, add_linfit, add_polyfit, add_rug, add_text, add_text_pos, add_outline, outline_width, outline_color, n_convolve, smooth, rescale_color, color_gradients, dpi, frameon, zorder, ncols, nrows, wspace, hspace, show, save, ax, **kwargs)
431 obs = adata.obs[obs_keys]
432 x = obs.astype(np.float32).eval(x)
--> 433 y = obs.astype(np.float32).eval(y)
434 else:
435 raise ValueError(
~/.conda/envs/py_seq/lib/python3.8/site-packages/pandas/core/frame.py in eval(self, expr, inplace, **kwargs)
3597 kwargs["resolvers"] = kwargs.get("resolvers", ()) + tuple(resolvers)
3598
-> 3599 return _eval(expr, inplace=inplace, **kwargs)
3600
3601 def select_dtypes(self, include=None, exclude=None) -> DataFrame:
~/.conda/envs/py_seq/lib/python3.8/site-packages/pandas/core/computation/eval.py in eval(expr, parser, engine, truediv, local_dict, global_dict, resolvers, level, target, inplace)
340 )
341
--> 342 parsed_expr = Expr(expr, engine=engine, parser=parser, env=env)
343
344 # construct the engine and evaluate the parsed expression
~/.conda/envs/py_seq/lib/python3.8/site-packages/pandas/core/computation/expr.py in __init__(self, expr, engine, parser, env, level)
796 self.parser = parser
797 self._visitor = PARSERS[parser](self.env, self.engine, self.parser)
--> 798 self.terms = self.parse()
799
800 @property
~/.conda/envs/py_seq/lib/python3.8/site-packages/pandas/core/computation/expr.py in parse(self)
815 Parse an expression.
816 """
--> 817 return self._visitor.visit(self.expr)
818
819 @property
~/.conda/envs/py_seq/lib/python3.8/site-packages/pandas/core/computation/expr.py in visit(self, node, **kwargs)
399 method = "visit_" + type(node).__name__
400 visitor = getattr(self, method)
--> 401 return visitor(node, **kwargs)
402
403 def visit_Module(self, node, **kwargs):
~/.conda/envs/py_seq/lib/python3.8/site-packages/pandas/core/computation/expr.py in visit_Module(self, node, **kwargs)
405 raise SyntaxError("only a single expression is allowed")
406 expr = node.body[0]
--> 407 return self.visit(expr, **kwargs)
408
409 def visit_Expr(self, node, **kwargs):
~/.conda/envs/py_seq/lib/python3.8/site-packages/pandas/core/computation/expr.py in visit(self, node, **kwargs)
399 method = "visit_" + type(node).__name__
400 visitor = getattr(self, method)
--> 401 return visitor(node, **kwargs)
402
403 def visit_Module(self, node, **kwargs):
~/.conda/envs/py_seq/lib/python3.8/site-packages/pandas/core/computation/expr.py in visit_Expr(self, node, **kwargs)
408
409 def visit_Expr(self, node, **kwargs):
--> 410 return self.visit(node.value, **kwargs)
411
412 def _rewrite_membership_op(self, node, left, right):
~/.conda/envs/py_seq/lib/python3.8/site-packages/pandas/core/computation/expr.py in visit(self, node, **kwargs)
399 method = "visit_" + type(node).__name__
400 visitor = getattr(self, method)
--> 401 return visitor(node, **kwargs)
402
403 def visit_Module(self, node, **kwargs):
~/.conda/envs/py_seq/lib/python3.8/site-packages/pandas/core/computation/expr.py in visit_Name(self, node, **kwargs)
533
534 def visit_Name(self, node, **kwargs):
--> 535 return self.term_type(node.id, self.env, **kwargs)
536
537 def visit_NameConstant(self, node, **kwargs):
~/.conda/envs/py_seq/lib/python3.8/site-packages/pandas/core/computation/ops.py in __init__(self, name, env, side, encoding)
84 tname = str(name)
85 self.is_local = tname.startswith(LOCAL_TAG) or tname in DEFAULT_GLOBALS
---> 86 self._value = self._resolve_name()
87 self.encoding = encoding
88
~/.conda/envs/py_seq/lib/python3.8/site-packages/pandas/core/computation/ops.py in _resolve_name(self)
101
102 def _resolve_name(self):
--> 103 res = self.env.resolve(self.local_name, is_local=self.is_local)
104 self.update(res)
105
~/.conda/envs/py_seq/lib/python3.8/site-packages/pandas/core/computation/scope.py in resolve(self, key, is_local)
215 from pandas.core.computation.ops import UndefinedVariableError
216
--> 217 raise UndefinedVariableError(key, is_local) from err
218
219 def swapkey(self, old_key: str, new_key: str, new_value=None):
UndefinedVariableError: name 'IL1RN' is not defined
Versions:
scvelo==0.2.3 scanpy==1.7.2 anndata==0.7.5
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Comments: 25 (12 by maintainers)
@Lobbii, the problem are the variable names in
adata.raw:Everything works with
use_raw=False, i.e.,