Only store ids for row and column in BIOM1 datatype.

This commit is contained in:
Daniel Blankenberg
2015-12-02 11:53:17 -05:00
parent b20fb71e33
commit 2c6c523632
+9 -1
View File
@@ -188,6 +188,11 @@ class Biom1( Json ):
json_dict = json.load( fh )
except Exception:
return
def _transform_dict_list_ids( dict_list ):
if dict_list:
return [ x.get( 'id', None ) for x in dict_list ]
return []
b_transform = { 'rows': _transform_dict_list_ids, 'columns': _transform_dict_list_ids }
for ( m_name, b_name ) in [ ('table_rows', 'rows'),
('table_matrix_element_type', 'matrix_element_type'),
('table_format', 'format'),
@@ -200,7 +205,10 @@ class Biom1( Json ):
('table_id', 'id'),
('table_columns', 'columns') ]:
try:
setattr( dataset.metadata, m_name, json_dict.get( b_name, None ) )
metadata_value = json_dict.get( b_name, None )
if b_name in b_transform:
metadata_value = b_transform[ b_name ]( metadata_value )
setattr( dataset.metadata, m_name, metadata_value )
except Exception:
pass