mirror of
https://github.com/chanzuckerberg/cellxgene.git
synced 2026-10-06 07:08:11 +08:00
initial support for corpora schema conventions (#1676)
* initial support for corpora schema conventions * remove debugging print * add corpora util module * tests * lint * PR review edits * PR changes * more PR changes * more PR chnages * PR fixes * formatting * PR updates * lint * PR review
This commit is contained in:
@@ -74,6 +74,9 @@ class CxgAdaptor(DataAdaptor):
|
||||
def get_title(self):
|
||||
return self.title if self.title else super().get_title()
|
||||
|
||||
def get_corpora_props(self):
|
||||
return self.corpora_props if self.corpora_props else super().get_corpora_props()
|
||||
|
||||
def get_name(self):
|
||||
return "cellxgene cxg adaptor version"
|
||||
|
||||
@@ -144,26 +147,31 @@ class CxgAdaptor(DataAdaptor):
|
||||
* version 0.1 -- metadata attache to cxg_group_metadata array.
|
||||
Same as 0, except it adds group metadata.
|
||||
"""
|
||||
title = None
|
||||
about = None
|
||||
corpora_props = None
|
||||
if self.has_array("cxg_group_metadata"):
|
||||
# version >0
|
||||
gmd = self.open_array("cxg_group_metadata")
|
||||
cxg_version = gmd.meta["cxg_version"]
|
||||
if cxg_version == "0.1":
|
||||
# version 0.1 used a malformed/shorthand semver string.
|
||||
if cxg_version == "0.1" or cxg_version == "0.2.0":
|
||||
cxg_properties = json.loads(gmd.meta["cxg_properties"])
|
||||
title = cxg_properties.get("title", None)
|
||||
about = cxg_properties.get("about", None)
|
||||
if cxg_version == "0.2.0":
|
||||
corpora_props = json.loads(gmd.meta["corpora"]) if "corpora" in gmd.meta else None
|
||||
else:
|
||||
# version 0
|
||||
cxg_version = "0.0"
|
||||
title = None
|
||||
about = None
|
||||
|
||||
if cxg_version not in ["0.0", "0.1"]:
|
||||
if cxg_version not in ["0.0", "0.1", "0.2.0"]:
|
||||
raise DatasetAccessError(f"cxg matrix is not valid: {self.url}")
|
||||
|
||||
self.title = title
|
||||
self.about = about
|
||||
self.cxg_version = cxg_version
|
||||
self.corpora_props = corpora_props
|
||||
|
||||
@staticmethod
|
||||
def _open_array(uri, tiledb_ctx):
|
||||
|
||||
Reference in New Issue
Block a user