seurat-wrappers
seurat-wrappers copied to clipboard
About Convert Seurat Obj to Anndata for scVelo
I have a question about the conversion .
I followed the tutorial (http://htmlpreview.github.io/?https://github.com/satijalab/seurat-wrappers/blob/master/docs/scvelo.html) and used example mouse bone marrow dataset.
After converting seurat object to Anndata, I ran dynamical model.
scv.tl.recover_dynamics(adata)
scv.tl.latent_time(adata)
But I cannot generate scatter plot for transcriptional switches. Do you how to solve this issue? I can generate the scatter plot for example Anndata object (scv.datasets.pancreas())
top_genes = adata.var['fit_likelihood'].sort_values(ascending=False).index
scv.pl.scatter(adata, x='latent_time', y=top_genes[:4], frameon=False)
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: 'S100a9'
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: 'S100a9'
The above exception was the direct cause of the following exception:
UndefinedVariableError Traceback (most recent call last)
~/.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) 182 ) 183 ax.append( --> 184 scatter( 185 adata, 186 ax=pl.subplot(gs),
~/.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 'S100a9' is not defined