```
AnnData object with n_obs × n_vars = 88862 × 26206
obs: 'group', 'patient_id', 'batch', 'nUMIs', 'mito_perc', 'detected_genes', 'cell_complexity', 'n_genes', 'doublet_score', 'predicted_doublet', 'passing_mt', 'passing_nUMIs', 'passing_ngenes'
var: 'mt', 'n_cells'
uns: 'scrublet', 'layers_counts'
·
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In[36], line 1
----> 1 sc.write(adata=adata_all,filename='./h5ad/adata_all.h5ad',compression=True)
File ~/anaconda3/envs/scanpy/lib/python3.10/site-packages/legacy_api_wrap/__init__.py:80, in legacy_api.<locals>.wrapper.<locals>.fn_compatible(*args_all, **kw)
77 @wraps(fn)
78 def fn_compatible(*args_all: P.args, **kw: P.kwargs) -> R:
79 if len(args_all) <= n_positional:
---> 80 return fn(*args_all, **kw)
82 args_pos: P.args
83 args_pos, args_rest = args_all[:n_positional], args_all[n_positional:]
File ~/anaconda3/envs/scanpy/lib/python3.10/site-packages/scanpy/readwrite.py:665, in write(filename, adata, ext, compression, compression_opts)
663 adata.write_csvs(filename)
664 else:
--> 665 adata.write(
666 filename, compression=compression, compression_opts=compression_opts
667 )
File ~/anaconda3/envs/scanpy/lib/python3.10/site-packages/anndata/_core/anndata.py:1863, in AnnData.write_h5ad(self, filename, compression, compression_opts, as_dense)
1860 if filename is None:
1861 filename = self.filename
-> 1863 write_h5ad(
1864 Path(filename),
1865 self,
1866 compression=compression,
1867 compression_opts=compression_opts,
1868 as_dense=as_dense,
1869 )
1871 if self.isbacked:
1872 self.file.filename = filename
File ~/anaconda3/envs/scanpy/lib/python3.10/site-packages/anndata/_io/h5ad.py:100, in write_h5ad(filepath, adata, as_dense, dataset_kwargs, **kwargs)
96 write_elem(
97 f, "raw/varm", dict(adata.raw.varm), dataset_kwargs=dataset_kwargs
98 )
99 elif adata.raw is not None:
--> 100 write_elem(f, "raw", adata.raw, dataset_kwargs=dataset_kwargs)
101 write_elem(f, "obs", adata.obs, dataset_kwargs=dataset_kwargs)
102 write_elem(f, "var", adata.var, dataset_kwargs=dataset_kwargs)
File ~/anaconda3/envs/scanpy/lib/python3.10/site-packages/anndata/_io/specs/registry.py:378, in write_elem(store, k, elem, dataset_kwargs)
354 def write_elem(
355 store: GroupStorageType,
356 k: str,
(...)
359 dataset_kwargs: Mapping[str, Any] = MappingProxyType({}),
360 ) -> None:
361 """
362 Write an element to a storage group using anndata encoding.
363
(...)
376 E.g. for zarr this would be `chunks`, `compressor`.
377 """
--> 378 Writer(_REGISTRY).write_elem(store, k, elem, dataset_kwargs=dataset_kwargs)
File ~/anaconda3/envs/scanpy/lib/python3.10/site-packages/anndata/_io/utils.py:247, in report_write_key_on_error.<locals>.func_wrapper(*args, **kwargs)
245 raise ValueError("No element found in args.")
246 try:
--> 247 return func(*args, **kwargs)
248 except Exception as e:
249 path = _get_display_path(store)
File ~/anaconda3/envs/scanpy/lib/python3.10/site-packages/anndata/_io/specs/registry.py:328, in Writer.write_elem(self, store, k, elem, dataset_kwargs, modifiers)
325 write_func = self.find_write_func(dest_type, elem, modifiers)
327 if self.callback is None:
--> 328 return write_func(store, k, elem, dataset_kwargs=dataset_kwargs)
329 return self.callback(
330 write_func,
331 store,
(...)
335 iospec=self.registry.get_spec(elem),
336 )
File ~/anaconda3/envs/scanpy/lib/python3.10/site-packages/anndata/_io/specs/registry.py:71, in write_spec.<locals>.decorator.<locals>.wrapper(g, k, *args, **kwargs)
69 @wraps(func)
70 def wrapper(g: GroupStorageType, k: str, *args, **kwargs):
---> 71 result = func(g, k, *args, **kwargs)
72 g[k].attrs.setdefault("encoding-type", spec.encoding_type)
73 g[k].attrs.setdefault("encoding-version", spec.encoding_version)
File ~/anaconda3/envs/scanpy/lib/python3.10/site-packages/anndata/_io/specs/methods.py:323, in write_raw(f, k, raw, _writer, dataset_kwargs)
321 g = f.require_group(k)
322 _writer.write_elem(g, "X", raw.X, dataset_kwargs=dataset_kwargs)
--> 323 _writer.write_elem(g, "var", raw.var, dataset_kwargs=dataset_kwargs)
324 _writer.write_elem(g, "varm", dict(raw.varm), dataset_kwargs=dataset_kwargs)
File ~/anaconda3/envs/scanpy/lib/python3.10/site-packages/anndata/_io/utils.py:247, in report_write_key_on_error.<locals>.func_wrapper(*args, **kwargs)
245 raise ValueError("No element found in args.")
246 try:
--> 247 return func(*args, **kwargs)
248 except Exception as e:
249 path = _get_display_path(store)
File ~/anaconda3/envs/scanpy/lib/python3.10/site-packages/anndata/_io/specs/registry.py:328, in Writer.write_elem(self, store, k, elem, dataset_kwargs, modifiers)
325 write_func = self.find_write_func(dest_type, elem, modifiers)
327 if self.callback is None:
--> 328 return write_func(store, k, elem, dataset_kwargs=dataset_kwargs)
329 return self.callback(
330 write_func,
331 store,
(...)
335 iospec=self.registry.get_spec(elem),
336 )
File ~/anaconda3/envs/scanpy/lib/python3.10/site-packages/anndata/_io/specs/registry.py:71, in write_spec.<locals>.decorator.<locals>.wrapper(g, k, *args, **kwargs)
69 @wraps(func)
70 def wrapper(g: GroupStorageType, k: str, *args, **kwargs):
---> 71 result = func(g, k, *args, **kwargs)
72 g[k].attrs.setdefault("encoding-type", spec.encoding_type)
73 g[k].attrs.setdefault("encoding-version", spec.encoding_version)
File ~/anaconda3/envs/scanpy/lib/python3.10/site-packages/anndata/_io/specs/methods.py:830, in write_dataframe(f, key, df, _writer, dataset_kwargs)
825 _writer.write_elem(
826 group, index_name, df.index._values, dataset_kwargs=dataset_kwargs
827 )
828 for colname, series in df.items():
829 # TODO: this should write the "true" representation of the series (i.e. the underlying array or ndarray depending)
--> 830 _writer.write_elem(
831 group, colname, series._values, dataset_kwargs=dataset_kwargs
832 )
File ~/anaconda3/envs/scanpy/lib/python3.10/site-packages/anndata/_io/utils.py:247, in report_write_key_on_error.<locals>.func_wrapper(*args, **kwargs)
245 raise ValueError("No element found in args.")
246 try:
--> 247 return func(*args, **kwargs)
248 except Exception as e:
249 path = _get_display_path(store)
File ~/anaconda3/envs/scanpy/lib/python3.10/site-packages/anndata/_io/specs/registry.py:318, in Writer.write_elem(self, store, k, elem, dataset_kwargs, modifiers)
316 # Normalize k to absolute path
317 if not PurePosixPath(k).is_absolute():
--> 318 k = str(PurePosixPath(store.name) / k)
320 if k == "/":
321 store.clear()
File ~/anaconda3/envs/scanpy/lib/python3.10/pathlib.py:562, in PurePath.__new__(cls, *args)
560 if cls is PurePath:
561 cls = PureWindowsPath if os.name == 'nt' else PurePosixPath
--> 562 return cls._from_parts(args)
File ~/anaconda3/envs/scanpy/lib/python3.10/pathlib.py:594, in PurePath._from_parts(cls, args)
589 @classmethod
590 def _from_parts(cls, args):
591 # We need to call _parse_args on the instance, so as to get the
592 # right flavour.
593 self = object.__new__(cls)
--> 594 drv, root, parts = self._parse_args(args)
595 self._drv = drv
596 self._root = root
File ~/anaconda3/envs/scanpy/lib/python3.10/pathlib.py:578, in PurePath._parse_args(cls, args)
576 parts += a._parts
577 else:
--> 578 a = os.fspath(a)
579 if isinstance(a, str):
580 # Force-cast str subclasses to str (issue #21127)
581 parts.append(str(a))
TypeError: expected str, bytes or os.PathLike object, not NoneType
Error raised while writing key 'mt' of <class 'h5py._hl.group.Group'> to /??
原因不知为何,找寻了很久仍然存在这个问题
但是adata对象的下游所有分析都能正常进行