SCP
SCP copied to clipboard
ValueError: '_index' is a reserved name for dataframe columns. Above error raised while writing key 'var' of to /
Hi there,
I was trying to write my adata with write_h5ad
which has my loom objects merged with my Seurat object in Python so that I can then convert it to Seurat object to use SCP
, but it threw an error as below.
Would you mind helping me fix this issue?
Thank you.
My AnnData object:

loomGEX_adata.write_h5ad('...Velocity_scVelo_Objects/loomGEX_adata.h5ad')
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
File [~/.pyenv/versions/3.10.11/envs/RNAVELO_310/lib/python3.10/site-packages/anndata/_io/utils.py:246](https://file+.vscode-resource.vscode-cdn.net/Users/stillhere/Documents/01_DPhil/scRNAseq/T230T240T246_CXCR5Project/Final_Objects_preAzimuth_2023Feb23/RNA_Velocity_scVelo/RNA_Velocity/SCRIPTS/~/.pyenv/versions/3.10.11/envs/RNAVELO_310/lib/python3.10/site-packages/anndata/_io/utils.py:246), in report_write_key_on_error..func_wrapper(*args, **kwargs)
245 try:
--> 246 return func(*args, **kwargs)
247 except Exception as e:
File [~/.pyenv/versions/3.10.11/envs/RNAVELO_310/lib/python3.10/site-packages/anndata/_io/specs/registry.py:311](https://file+.vscode-resource.vscode-cdn.net/Users/stillhere/Documents/01_DPhil/scRNAseq/T230T240T246_CXCR5Project/Final_Objects_preAzimuth_2023Feb23/RNA_Velocity_scVelo/RNA_Velocity/SCRIPTS/~/.pyenv/versions/3.10.11/envs/RNAVELO_310/lib/python3.10/site-packages/anndata/_io/specs/registry.py:311), in Writer.write_elem(self, store, k, elem, dataset_kwargs, modifiers)
310 else:
--> 311 return write_func(store, k, elem, dataset_kwargs=dataset_kwargs)
File [~/.pyenv/versions/3.10.11/envs/RNAVELO_310/lib/python3.10/site-packages/anndata/_io/specs/registry.py:52](https://file+.vscode-resource.vscode-cdn.net/Users/stillhere/Documents/01_DPhil/scRNAseq/T230T240T246_CXCR5Project/Final_Objects_preAzimuth_2023Feb23/RNA_Velocity_scVelo/RNA_Velocity/SCRIPTS/~/.pyenv/versions/3.10.11/envs/RNAVELO_310/lib/python3.10/site-packages/anndata/_io/specs/registry.py:52), in write_spec..decorator..wrapper(g, k, *args, **kwargs)
50 @wraps(func)
51 def wrapper(g, k, *args, **kwargs):
---> 52 result = func(g, k, *args, **kwargs)
53 g[k].attrs.setdefault("encoding-type", spec.encoding_type)
File [~/.pyenv/versions/3.10.11/envs/RNAVELO_310/lib/python3.10/site-packages/anndata/_io/specs/methods.py:560](https://file+.vscode-resource.vscode-cdn.net/Users/stillhere/Documents/01_DPhil/scRNAseq/T230T240T246_CXCR5Project/Final_Objects_preAzimuth_2023Feb23/RNA_Velocity_scVelo/RNA_Velocity/SCRIPTS/~/.pyenv/versions/3.10.11/envs/RNAVELO_310/lib/python3.10/site-packages/anndata/_io/specs/methods.py:560), in write_dataframe(f, key, df, _writer, dataset_kwargs)
559 if reserved in df.columns:
--> 560 raise ValueError(f"{reserved!r} is a reserved name for dataframe columns.")
561 group = f.create_group(key)
ValueError: '_index' is a reserved name for dataframe columns.
The above exception was the direct cause of the following exception:
ValueError Traceback (most recent call last)
Cell In[13], line 2
1 # Save file after running scv.tl.recover_dynamics
----> 2 Tonsil_cd8_loomGEX_adata.write_h5ad('[/Users/stillhere/Documents/01_DPhil/scRNAseq/T230T240T246_CXCR5Project/Final_Objects_preAzimuth_2023Feb23/RNA_Velocity_scVelo/RNA_Velocity/DATA/RNA_Velocity_scVelo_Objects/Tonsil_cd8_loomGEX_adata.h5ad](https://file+.vscode-resource.vscode-cdn.net/Users/stillhere/Documents/01_DPhil/scRNAseq/T230T240T246_CXCR5Project/Final_Objects_preAzimuth_2023Feb23/RNA_Velocity_scVelo/RNA_Velocity/DATA/RNA_Velocity_scVelo_Objects/Tonsil_cd8_loomGEX_adata.h5ad)')
3 #adata = scv.read('data[/pancreas.h5ad](https://file+.vscode-resource.vscode-cdn.net/pancreas.h5ad)')
File [~/.pyenv/versions/3.10.11/envs/RNAVELO_310/lib/python3.10/site-packages/anndata/_core/anndata.py:1951](https://file+.vscode-resource.vscode-cdn.net/Users/stillhere/Documents/01_DPhil/scRNAseq/T230T240T246_CXCR5Project/Final_Objects_preAzimuth_2023Feb23/RNA_Velocity_scVelo/RNA_Velocity/SCRIPTS/~/.pyenv/versions/3.10.11/envs/RNAVELO_310/lib/python3.10/site-packages/anndata/_core/anndata.py:1951), in AnnData.write_h5ad(self, filename, compression, compression_opts, as_dense)
1948 if filename is None:
1949 filename = self.filename
-> 1951 _write_h5ad(
1952 Path(filename),
1953 self,
1954 compression=compression,
1955 compression_opts=compression_opts,
1956 as_dense=as_dense,
1957 )
1959 if self.isbacked:
1960 self.file.filename = filename
File [~/.pyenv/versions/3.10.11/envs/RNAVELO_310/lib/python3.10/site-packages/anndata/_io/h5ad.py:91](https://file+.vscode-resource.vscode-cdn.net/Users/stillhere/Documents/01_DPhil/scRNAseq/T230T240T246_CXCR5Project/Final_Objects_preAzimuth_2023Feb23/RNA_Velocity_scVelo/RNA_Velocity/SCRIPTS/~/.pyenv/versions/3.10.11/envs/RNAVELO_310/lib/python3.10/site-packages/anndata/_io/h5ad.py:91), in write_h5ad(filepath, adata, as_dense, dataset_kwargs, **kwargs)
87 write_elem(
88 f, "raw[/varm](https://file+.vscode-resource.vscode-cdn.net/varm)", dict(adata.raw.varm), dataset_kwargs=dataset_kwargs
89 )
90 elif adata.raw is not None:
---> 91 write_elem(f, "raw", adata.raw, dataset_kwargs=dataset_kwargs)
92 write_elem(f, "obs", adata.obs, dataset_kwargs=dataset_kwargs)
93 write_elem(f, "var", adata.var, dataset_kwargs=dataset_kwargs)
File [~/.pyenv/versions/3.10.11/envs/RNAVELO_310/lib/python3.10/site-packages/anndata/_io/specs/registry.py:353](https://file+.vscode-resource.vscode-cdn.net/Users/stillhere/Documents/01_DPhil/scRNAseq/T230T240T246_CXCR5Project/Final_Objects_preAzimuth_2023Feb23/RNA_Velocity_scVelo/RNA_Velocity/SCRIPTS/~/.pyenv/versions/3.10.11/envs/RNAVELO_310/lib/python3.10/site-packages/anndata/_io/specs/registry.py:353), in write_elem(store, k, elem, dataset_kwargs)
329 def write_elem(
330 store: GroupStorageType,
331 k: str,
(...)
334 dataset_kwargs: Mapping = MappingProxyType({}),
335 ) -> None:
336 """
337 Write an element to a storage group using anndata encoding.
338
(...)
351 E.g. for zarr this would be `chunks`, `compressor`.
352 """
--> 353 Writer(_REGISTRY).write_elem(store, k, elem, dataset_kwargs=dataset_kwargs)
File [~/.pyenv/versions/3.10.11/envs/RNAVELO_310/lib/python3.10/site-packages/anndata/_io/utils.py:248](https://file+.vscode-resource.vscode-cdn.net/Users/stillhere/Documents/01_DPhil/scRNAseq/T230T240T246_CXCR5Project/Final_Objects_preAzimuth_2023Feb23/RNA_Velocity_scVelo/RNA_Velocity/SCRIPTS/~/.pyenv/versions/3.10.11/envs/RNAVELO_310/lib/python3.10/site-packages/anndata/_io/utils.py:248), in report_write_key_on_error..func_wrapper(*args, **kwargs)
246 return func(*args, **kwargs)
247 except Exception as e:
--> 248 re_raise_error(e, elem, key)
File [~/.pyenv/versions/3.10.11/envs/RNAVELO_310/lib/python3.10/site-packages/anndata/_io/utils.py:246](https://file+.vscode-resource.vscode-cdn.net/Users/stillhere/Documents/01_DPhil/scRNAseq/T230T240T246_CXCR5Project/Final_Objects_preAzimuth_2023Feb23/RNA_Velocity_scVelo/RNA_Velocity/SCRIPTS/~/.pyenv/versions/3.10.11/envs/RNAVELO_310/lib/python3.10/site-packages/anndata/_io/utils.py:246), in report_write_key_on_error..func_wrapper(*args, **kwargs)
244 break
245 try:
--> 246 return func(*args, **kwargs)
247 except Exception as e:
248 re_raise_error(e, elem, key)
File [~/.pyenv/versions/3.10.11/envs/RNAVELO_310/lib/python3.10/site-packages/anndata/_io/specs/registry.py:311](https://file+.vscode-resource.vscode-cdn.net/Users/stillhere/Documents/01_DPhil/scRNAseq/T230T240T246_CXCR5Project/Final_Objects_preAzimuth_2023Feb23/RNA_Velocity_scVelo/RNA_Velocity/SCRIPTS/~/.pyenv/versions/3.10.11/envs/RNAVELO_310/lib/python3.10/site-packages/anndata/_io/specs/registry.py:311), in Writer.write_elem(self, store, k, elem, dataset_kwargs, modifiers)
302 return self.callback(
303 write_func,
304 store,
(...)
308 iospec=self.registry.get_spec(elem),
309 )
310 else:
--> 311 return write_func(store, k, elem, dataset_kwargs=dataset_kwargs)
File [~/.pyenv/versions/3.10.11/envs/RNAVELO_310/lib/python3.10/site-packages/anndata/_io/specs/registry.py:52](https://file+.vscode-resource.vscode-cdn.net/Users/stillhere/Documents/01_DPhil/scRNAseq/T230T240T246_CXCR5Project/Final_Objects_preAzimuth_2023Feb23/RNA_Velocity_scVelo/RNA_Velocity/SCRIPTS/~/.pyenv/versions/3.10.11/envs/RNAVELO_310/lib/python3.10/site-packages/anndata/_io/specs/registry.py:52), in write_spec..decorator..wrapper(g, k, *args, **kwargs)
50 @wraps(func)
51 def wrapper(g, k, *args, **kwargs):
---> 52 result = func(g, k, *args, **kwargs)
53 g[k].attrs.setdefault("encoding-type", spec.encoding_type)
54 g[k].attrs.setdefault("encoding-version", spec.encoding_version)
File [~/.pyenv/versions/3.10.11/envs/RNAVELO_310/lib/python3.10/site-packages/anndata/_io/specs/methods.py:261](https://file+.vscode-resource.vscode-cdn.net/Users/stillhere/Documents/01_DPhil/scRNAseq/T230T240T246_CXCR5Project/Final_Objects_preAzimuth_2023Feb23/RNA_Velocity_scVelo/RNA_Velocity/SCRIPTS/~/.pyenv/versions/3.10.11/envs/RNAVELO_310/lib/python3.10/site-packages/anndata/_io/specs/methods.py:261), in write_raw(f, k, raw, _writer, dataset_kwargs)
259 g = f.create_group(k)
260 _writer.write_elem(g, "X", raw.X, dataset_kwargs=dataset_kwargs)
--> 261 _writer.write_elem(g, "var", raw.var, dataset_kwargs=dataset_kwargs)
262 _writer.write_elem(g, "varm", dict(raw.varm), dataset_kwargs=dataset_kwargs)
File [~/.pyenv/versions/3.10.11/envs/RNAVELO_310/lib/python3.10/site-packages/anndata/_io/utils.py:248](https://file+.vscode-resource.vscode-cdn.net/Users/stillhere/Documents/01_DPhil/scRNAseq/T230T240T246_CXCR5Project/Final_Objects_preAzimuth_2023Feb23/RNA_Velocity_scVelo/RNA_Velocity/SCRIPTS/~/.pyenv/versions/3.10.11/envs/RNAVELO_310/lib/python3.10/site-packages/anndata/_io/utils.py:248), in report_write_key_on_error..func_wrapper(*args, **kwargs)
246 return func(*args, **kwargs)
247 except Exception as e:
--> 248 re_raise_error(e, elem, key)
File [~/.pyenv/versions/3.10.11/envs/RNAVELO_310/lib/python3.10/site-packages/anndata/_io/utils.py:229](https://file+.vscode-resource.vscode-cdn.net/Users/stillhere/Documents/01_DPhil/scRNAseq/T230T240T246_CXCR5Project/Final_Objects_preAzimuth_2023Feb23/RNA_Velocity_scVelo/RNA_Velocity/SCRIPTS/~/.pyenv/versions/3.10.11/envs/RNAVELO_310/lib/python3.10/site-packages/anndata/_io/utils.py:229), in report_write_key_on_error..re_raise_error(e, elem, key)
227 else:
228 parent = _get_parent(elem)
--> 229 raise type(e)(
230 f"{e}\n\n"
231 f"Above error raised while writing key {key!r} of {type(elem)} "
232 f"to {parent}"
233 ) from e
ValueError: '_index' is a reserved name for dataframe columns.
Above error raised while writing key 'var' of to /
Posted at https://github.com/scverse/anndata/issues/990
you can use this code to deal with this problem out.raw.var.columns=["Genes"],change the column name directly. it works for me.