diff --git a/lib/galaxy/datatypes/text.py b/lib/galaxy/datatypes/text.py index 0fbb0de78de..c2e71444cf1 100644 --- a/lib/galaxy/datatypes/text.py +++ b/lib/galaxy/datatypes/text.py @@ -184,6 +184,7 @@ class Biom1(Json): MetadataElement(name="table_type", default="", desc="table_type", param=MetadataParameter, readonly=True, visible=True, optional=True, no_value="") MetadataElement(name="table_id", default=None, desc="table_id", param=MetadataParameter, readonly=True, visible=True, optional=True, no_value=None) MetadataElement(name="table_columns", default=[], desc="table_columns", param=MetadataParameter, readonly=True, visible=False, optional=True, no_value=[]) + MetadataElement(name="table_column_metadata_headers", default=[], desc="table_column_metadata_headers", param=MetadataParameter, readonly=True, visible=True, optional=True, no_value=[]) def set_peek(self, dataset, is_multi_byte=False): super(Biom1, self).set_peek(dataset) @@ -252,10 +253,19 @@ class Biom1(Json): ('table_columns', 'columns')]: try: metadata_value = json_dict.get(b_name, None) + if b_name == "columns" and metadata_value: + keep_columns = set() + for column in metadata_value: + for k, v in column['metadata'].items(): + if v is not None: + keep_columns.add(k) + final_list = sorted(list(keep_columns)) + dataset.metadata.table_column_metadata_headers = final_list if b_name in b_transform: metadata_value = b_transform[b_name](metadata_value) setattr(dataset.metadata, m_name, metadata_value) except Exception: + log.exception("Something in the metadata detection for biom1 went wrong.") pass