scanpy adata保存为h5ad时报错

```

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对象的下游所有分析都能正常进行

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,451评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,172评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,782评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,709评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,733评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,578评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,320评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,241评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,686评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,878评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,992评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,715评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,336评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,912评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,040评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,173评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,947评论 2 355

推荐阅读更多精彩内容