Merge pull request #6972 from Slugger70/biom_datatype_changes

Added a metadata element to the biom1 datatype
This commit is contained in:
Nicola Soranzo
2018-11-08 11:36:28 +00:00
committed by GitHub
+10
View File
@@ -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