ga4gh / ga4gh/phenopacket-schema

Represent time-bound/fluctuating phenotype status

Open
#454 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
101
Forks
34
PR merge metrics
No merged PRs in 30d

Description

**Problem**: As discussed on the Bridge2AI Phenopacketization call on 8/26/26, the current Phenopacket schema is unable to represent a phenotypic feature as "_not present at this point in time_" vs _permanently excluded_. Marking a feature as excluded currently reads as excluded for the individual's entire life. For symptoms that fluctuate (e.g., sadness/mood symptoms), a person may report "not present" on one survey and "present" on a later one — the schema is unable to capture that time-bound status in it's current state.

This connects directly to a mapping issue Sek Won flagged in his review of the SSSOM file (email, quoted below), which is really the same underlying problem showing up in how we generate phenopackets from questionnaire data.

> I think the following should be removed throughout the table: the rule answer == 0 ("Not at all") asserts the phenotype absent with predicate_modifier: Not.
> An answer of "Not at all" doesn't necessarily mean the phenotype is absent in the individual — it only reflects the instrument's specific time window. For PHQ-9, "Not at all" means the symptom wasn't reported in the past two weeks, not that it's absent generally.
> Risk: computationally, this could be read as an explicit/permanent absence of the phenotype, losing the instrument-specific time window entirely.
>
> I also have two additional comments:
>
> Disease confounders may be better mapped to MONDO rather than HPO.
> Cancer terms should generally map as `broadMatch `to the corresponding HPO neoplasm term. For example, lung cancer is narrower than “neoplasm of lung,” so it should not be an `exactMatch`.
>
> I did not separately highlight the same issue for the pediatric disease confounders, but the same principle should apply.

@monicacecilia @pnrobinson @julesjacobsen

Contributor guide

Open the contributing guide

Research direction

Start by reading the Phenopacket schema definitions and the SSSOM mapping referenced in the issue. Determine how the schema currently represents excluded phenotypes and how questionnaire time windows are retained. Done means the proposed representation distinguishes time-bound non-presence from permanent exclusion without losing the instrument-specific window.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
data
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.