Unverified Commit 8a7ca520 authored by Nicola Soranzo's avatar Nicola Soranzo
Browse files

Fix setting metadata for some Loom files

Loom files created by recent versions of LoomExperiment Bioconductor
package encode the Loom version in an binary array, which breaks
metadata setting in Galaxy.
parent 5cc70512
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@ from json import dumps
from typing import Optional

import h5py
import numpy as np
import pysam
import pysam.bcftools
from bx.seq.twobit import TWOBIT_MAGIC_NUMBER, TWOBIT_MAGIC_NUMBER_SWAP
@@ -928,7 +929,12 @@ class Loom(H5):
                dataset.metadata.description = loom_file.attrs.get('description')
                dataset.metadata.url = loom_file.attrs.get('url')
                dataset.metadata.doi = loom_file.attrs.get('doi')
                dataset.metadata.loom_spec_version = loom_file.attrs.get('LOOM_SPEC_VERSION')
                loom_spec_version = loom_file.attrs.get('LOOM_SPEC_VERSION')
                if isinstance(loom_spec_version, np.ndarray):
                    loom_spec_version = loom_spec_version[0]
                    if isinstance(loom_spec_version, bytes):
                        loom_spec_version = loom_spec_version.decode()
                dataset.metadata.loom_spec_version = loom_spec_version
                dataset.creation_date = loom_file.attrs.get('creation_date')
                dataset.metadata.shape = tuple(loom_file['matrix'].shape)