From 21c155c6b3b65b1d6fbc986c2f174e6a873947a6 Mon Sep 17 00:00:00 2001 From: mccalluc Date: Thu, 13 Oct 2022 09:47:43 -0400 Subject: [PATCH] stub out a demonstration of how integrative analysis could work --- src/portal_visualization/builder_factory.py | 3 +++ .../builders/integrative_builders.py | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 src/portal_visualization/builders/integrative_builders.py diff --git a/src/portal_visualization/builder_factory.py b/src/portal_visualization/builder_factory.py index 8d38089..8f2897a 100644 --- a/src/portal_visualization/builder_factory.py +++ b/src/portal_visualization/builder_factory.py @@ -25,6 +25,9 @@ def get_view_config_builder(entity, get_assay): hints = [hint for assay in assay_objs for hint in assay.vitessce_hints] dag_names = [dag['name'] for dag in entity['metadata']['dag_provenance_list'] if 'name' in dag] + if 'integrative' in hints: + # TODO: confirm the string to be used in the hint. + return IntegrativeViewConfBuilder if "is_image" in hints: if 'sprm' in hints and 'anndata' in hints: return MultiImageSPRMAnndataViewConfBuilder diff --git a/src/portal_visualization/builders/integrative_builders.py b/src/portal_visualization/builders/integrative_builders.py new file mode 100644 index 0000000..e51de9c --- /dev/null +++ b/src/portal_visualization/builders/integrative_builders.py @@ -0,0 +1,18 @@ +from vitessce import VitessceConfig + +from .base_builders import ViewConfBuilder +from ..utils import get_conf_cells + + +class IntegrativeViewConfBuilder(ViewConfBuilder): + # TODO: Add a test fixture. + # TODO: Determine the name of the property that will hold the viewconfs. + # TODO: If https://github.com/hubmapconsortium/portal-visualization/pull/66 + # arrives first this can be replaced with: + # def get_configs(self): + # return [ + # VitessceConfig.from_dict(conf) + # for conf in self._entity['viewconfs'] + # ] + def get_conf_cells(self): + return get_conf_cells(self._entity['viewconfs'])