@@ -67,7 +67,12 @@ def _write_h5mu(file: h5py.File, mdata: MuData, write_data=True, **kwargs):
6767 if write_data or not adata .isbacked :
6868 write_elem (group , "X" , adata .X , dataset_kwargs = kwargs )
6969 if adata .raw is not None :
70- write_elem (group , "raw" , adata .raw )
70+ if not adata .isbacked :
71+ write_elem (group , "raw" , adata .raw , dataset_kwargs = kwargs )
72+ else :
73+ rawgrp = group .require_group ("raw" )
74+ write_elem (rawgrp , "var" , adata .raw .var , dataset_kwargs = kwargs )
75+ write_elem (rawgrp , "varm" , dict (adata .raw .varm ), dataset_kwargs = kwargs )
7176
7277 write_elem (group , "obs" , adata .obs , dataset_kwargs = kwargs )
7378 write_elem (group , "var" , adata .var , dataset_kwargs = kwargs )
@@ -168,7 +173,12 @@ def write_zarr(
168173 else :
169174 write_elem (group , "X" , adata .X , dataset_kwargs = kwargs )
170175 if adata .raw is not None :
171- write_elem (group , "raw" , adata .raw )
176+ if write_data or not adata .isbacked :
177+ write_elem (group , "raw" , adata .raw , dataset_kwargs = kwargs )
178+ else :
179+ rawgrp = group .require_group ("raw" )
180+ write_elem (rawgrp , "var" , adata .raw .var , dataset_kwargs = kwargs )
181+ write_elem (rawgrp , "varm" , dict (adata .raw .varm ), dataset_kwargs = kwargs )
172182
173183 write_elem (group , "obs" , adata .obs , dataset_kwargs = kwargs )
174184 write_elem (group , "var" , adata .var , dataset_kwargs = kwargs )
0 commit comments