@@ -194,7 +194,11 @@ def compress_zarr(ts, root, variants_only=False):
194
194
195
195
# Schemas, metadata and units need to be converted to arrays
196
196
for name in columns :
197
- if name .endswith ("metadata_schema" ) or name == "time_units" :
197
+ if name .endswith ("metadata_schema" ) or name in [
198
+ "time_units" ,
199
+ "reference_sequence/data" ,
200
+ "reference_sequence/url" ,
201
+ ]:
198
202
columns [name ] = np .frombuffer (columns [name ].encode ("utf-8" ), np .int8 )
199
203
if name .endswith ("metadata" ):
200
204
columns [name ] = np .frombuffer (columns [name ], np .int8 )
@@ -296,10 +300,15 @@ def decompress_zarr(root):
296
300
for sub_key , sub_value in value .items ():
297
301
if f"{ key } /{ sub_key } " in quantised_arrays :
298
302
dict_repr .setdefault (key , {})[sub_key ] = coordinates [sub_value ]
299
- elif sub_key .endswith ("metadata_schema" ):
303
+ elif sub_key .endswith ("metadata_schema" ) or (key , sub_key ) in [
304
+ ("reference_sequence" , "data" ),
305
+ ("reference_sequence" , "url" ),
306
+ ]:
300
307
dict_repr .setdefault (key , {})[sub_key ] = bytes (sub_value ).decode (
301
308
"utf-8"
302
309
)
310
+ elif (key , sub_key ) == ("reference_sequence" , "metadata" ):
311
+ dict_repr .setdefault (key , {})[sub_key ] = bytes (sub_value )
303
312
else :
304
313
dict_repr .setdefault (key , {})[sub_key ] = sub_value
305
314
elif key .endswith ("metadata_schema" ) or key == "time_units" :
@@ -308,7 +317,6 @@ def decompress_zarr(root):
308
317
dict_repr [key ] = bytes (value )
309
318
else :
310
319
dict_repr [key ] = value
311
-
312
320
return tskit .TableCollection .fromdict (dict_repr ).tree_sequence ()
313
321
314
322
0 commit comments