def store_reference_metadata(self, reference_path, ref_type, metric_prefix):
""" ref_type - string e.g., 'Transcriptome'
metric_prefix - string e.g., 'vdj' """
if self.metadata is None:
self.metadata = {}
ref_metadata = cr_utils._load_reference_metadata_file(reference_path)
for key in cr_constants.REFERENCE_METADATA_KEYS:
value = ref_metadata.get(key, '')
if value is None:
value = ''
# Backward compatibility with old reference metadata jsons that don't contain the type field
if key == cr_constants.REFERENCE_TYPE_KEY and value == '':
self.metadata['%s%s' % (metric_prefix, cr_constants.REFERENCE_TYPE_KEY)] = ref_type
continue
if np.isscalar(value):
self.metadata['%s%s' % (metric_prefix, key)] = value
elif key == cr_constants.REFERENCE_GENOMES_KEY:
# Special case for genome key
self.metadata['%s%s' % (metric_prefix, key)] = cr_reference.get_ref_name_from_genomes(value)
else:
self.metadata['%s%s' % (metric_prefix, key)] = ', '.join(str(x) for x in value)
评论列表
文章目录