From d7d060dfb3973b48213d32d42b6d823844ddc3ee Mon Sep 17 00:00:00 2001 From: Reema Gupta Date: Thu, 5 Feb 2026 07:27:02 +0100 Subject: [PATCH] [ENH] Add age-related columns for participants.tsv to support animal data Add new optional columns to participants.tsv for richer age and life cycle metadata: - birthdate/birthtime: Date and time of birth - deathdate/deathtime: Date and time of death - age_category: Life cycle stage (embryo, neonate, infant, juvenile, adult, etc.) These columns support animal studies and developmental research where precise life cycle information is important. Human subjects should anonymize or omit sensitive fields like birthdate. Life cycle stage enums are inspired by UBERON ontology. Co-Authored-By: Claude Opus 4.5 --- src/schema/objects/columns.yaml | 53 +++++++++++++++ src/schema/objects/enums.yaml | 64 +++++++++++++++++++ .../rules/tabular_data/modality_agnostic.yaml | 5 ++ 3 files changed, 122 insertions(+) diff --git a/src/schema/objects/columns.yaml b/src/schema/objects/columns.yaml index e216094579..c2ca61f302 100644 --- a/src/schema/objects/columns.yaml +++ b/src/schema/objects/columns.yaml @@ -47,6 +47,42 @@ age: "Units": "year", "Maximum": 89, } +age_category: + name: age_category + display_name: Age category + description: | + A non-numeric term for a subject's life cycle stage (for instance, `adult`). + Inspired by the + [UBERON life cycle stage](http://purl.obolibrary.org/obo/UBERON_0000105). + type: string + enum: + - $ref: objects.enums.adolescent.value + - $ref: objects.enums.adult.value + - $ref: objects.enums.embryo.value + - $ref: objects.enums.infant.value + - $ref: objects.enums.juvenile.value + - $ref: objects.enums.late_adult.value + - $ref: objects.enums.neonate.value + - $ref: objects.enums.perinate.value + - $ref: objects.enums.prime_adult.value + - $ref: objects.enums.young_adult.value +birthdate: + name: birthdate + display_name: Birth date + description: | + Date of the start of a subject's neonate stage. Date format (YYYY-MM-DD). + Should not be provided or anonymized for human subjects. + type: string + format: date +birthtime: + name: birthtime + display_name: Birth time + description: | + Time (or estimated time) of birth. Time format (hh:mm:ssZ). + Typically, this field will be combined with birthdate. + Should not be provided or anonymized for human subjects. + type: string + format: time cardiac: name: cardiac display_name: Cardiac measurement @@ -99,6 +135,23 @@ coordinate_system: Name of the coordinate system defined in `coordsystem.json` in which the electrode's `x`, `y`, and (optionally) `z` coordinates are given. type: string +deathdate: + name: deathdate + display_name: Death date + description: | + Date of the end of a subject's life cycle. Date format (YYYY-MM-DD). + Should not be provided or anonymized for human subjects. + type: string + format: date +deathtime: + name: deathtime + display_name: Death time + description: | + Time (or estimated time) of death. Time format (hh:mm:ssZ). + Typically, this field will be combined with deathdate. + Should not be provided or anonymized for human subjects. + type: string + format: time detector__channels: name: detector display_name: Detector Name diff --git a/src/schema/objects/enums.yaml b/src/schema/objects/enums.yaml index be12f2f624..f65bd42131 100644 --- a/src/schema/objects/enums.yaml +++ b/src/schema/objects/enums.yaml @@ -1481,3 +1481,67 @@ PhysioTypeEyetrack: display_name: Eye-tracking recording description: | A specific physiological recording type: eye-tracking. +# Life cycle stages for age_category +adolescent: + value: adolescent + display_name: Adolescent + description: | + Life cycle stage of a subject loosely defined by the transitional growth + and development between childhood and adulthood, often described as puberty. +adult: + value: adult + display_name: Adult + description: | + Life cycle stage of a subject that starts with sexual maturity and ends with + death. Adapted from UBERON - http://purl.obolibrary.org/obo/UBERON_0000113. +embryo: + value: embryo + display_name: Embryo + description: | + Life cycle stage of a subject that starts with fertilization and ends with the + fully formed embryo. If fertilization is unknown the LMP startdate is assumed. + Adapted from UBERON - http://purl.obolibrary.org/obo/UBERON_0000068. +infant: + value: infant + display_name: Infant + description: | + Life cycle stage of subjects (mammals) that follows the neonate stage and ends at + weaning. Adapted from UBERON - http://purl.obolibrary.org/obo/UBERON_0034920. +juvenile: + value: juvenile + display_name: Juvenile + description: | + Life cycle stage of a subject that starts with the independence of the nest + and/or caregivers and ends with sexual maturity. Adapted from + UBERON - http://purl.obolibrary.org/obo/UBERON_0034919. +late_adult: + value: late adult + display_name: Late adult + description: | + Life cycle stage of a subject that follows the prime adult stage and ends with + death. Adapted from UBERON - http://purl.obolibrary.org/obo/UBERON_0007222. +neonate: + value: neonate + display_name: Neonate + description: | + Life cycle stage of a subject that immediately follows birth. + Adapted from UBERON - http://purl.obolibrary.org/obo/UBERON_0007221. +perinate: + value: perinate + display_name: Perinate + description: | + Life cycle stage of a subject that starts right before and ends right after birth. + Adapted from UBERON - http://purl.obolibrary.org/obo/UBERON_0012101. +prime_adult: + value: prime adult + display_name: Prime adult + description: | + Life cycle stage of a subject that starts with sexual maturity or + the cessation of growth, whichever comes last, and ends before senescence. + Adapted from UBERON - http://purl.obolibrary.org/obo/UBERON_0018241. +young_adult: + value: young adult + display_name: Young adult + description: | + Life cycle stage of a subject that starts with sexual maturity and ends with the + cessation of growth (if this is reached after sexual maturity). diff --git a/src/schema/rules/tabular_data/modality_agnostic.yaml b/src/schema/rules/tabular_data/modality_agnostic.yaml index 83fd7e14f4..b25d2bff55 100644 --- a/src/schema/rules/tabular_data/modality_agnostic.yaml +++ b/src/schema/rules/tabular_data/modality_agnostic.yaml @@ -15,6 +15,11 @@ Participants: handedness: recommended strain: recommended strain_rrid: recommended + birthdate: optional + birthtime: optional + deathdate: optional + deathtime: optional + age_category: optional HED: optional index_columns: [participant_id] additional_columns: allowed