Metadata column namespace (REMBI modules)#
PhenoTypic’s metadata columns are self-describing, per-topic headers of the
form Metadata<Topic>_<Label> — for example MetadataGenetic_Strain,
MetadataCulture_Time, MetadataImage_ImageName. Each metadata enum in
phenotypic.schema owns one category prefix:
Enum |
Category prefix |
REMBI module |
|---|---|---|
|
|
ImageData |
|
|
Study |
|
|
Study |
|
|
Biosample |
|
|
Biosample |
|
|
SpecimenPreparation |
|
|
SpecimenPreparation |
|
|
SpecimenPreparation |
|
|
ImageAcquisition |
All prefixes share the Metadata column family. Code recognizes any metadata
column with phenotypic.sdk_.is_metadata_header() (which matches every
Metadata<Topic>_ prefix and the generic Metadata_ fallback) rather than a
bare "Metadata_" string literal. The REMBI module is a separate axis exposed by
MeasurementInfo.rembi_module() and folded into the run’s deliverables/rembi.yaml
manifest; the per-topic category prefix and the REMBI module are independent (the
time straddler MetadataCulture_Time carries rembi_module=Biosample).
This is a recommended vocabulary, not a validator: arbitrary metadata columns
are always accepted. A user-supplied label that is not in the vocabulary keeps a
generic Metadata_<Label> header and routes to the REMBI Uncategorized module.
See also
To attach metadata to a run and emit the deliverables/rembi.yaml manifest, see
the how-to guide Describe a run’s metadata with REMBI — it covers the --metadata
sample CSV, the --study profile, and how columns fold into REMBI modules, with
downloadable example files.
Column order (bio-semantic clusters)#
Measurement sheets order the metadata front-block by a bench-scientist narrative, not by REMBI module:
Identity —
MetadataSample_*,MetadataPlate_*Strain —
MetadataGenetic_*Condition —
MetadataCondition_*,MetadataCulture_*Design & provenance —
MetadataExperiment_*,MetadataStudy_*,MetadataAcquisition_*
Unknown/uncategorized Metadata_* tags trail the four clusters. Within a category,
columns follow the enum’s declaration order. The framework MetadataImage_* block is
per-image provenance and is placed after the measurements, before the per-object
Object_Label / Bbox_* / Grid_* info block. REMBI (by_module, the run manifest)
remains a separate provenance axis and is unaffected by this ordering.
Migration note (namespace rename)#
Metadata columns are now per-REMBI-module prefixed (MetadataGenetic_Strain
instead of the previous shared Metadata_Strain). The ad-hoc Metadata_ImageFile
column was consolidated into MetadataImage_ImageName (plus
MetadataImage_FileSuffix). This is a clean break:
Old output folders still open in the GUI: curation state auto-migrates on load (the legacy
Metadata_ImageFilecuration column is renamed on read), and oldmaster_measurements.parquetarchives still load (the legacyMetadata_ImageNamecolumn is recognized as the image-stem key).Old metadata columns will not auto-map to their REMBI module (they read as
Uncategorized). To refresh a pre-migration run’s measurement parquets to the new namespace, re-run with--mode recompile.