-
Notifications
You must be signed in to change notification settings - Fork 190
Description
Your idea
Came up prominently in discussion of the BEP036 phenotypic data (attn @bids-standard/bep036):
which wants to introduce an aggregated demographics table, bringing together information across subjects/sessions and potentially even runs.
In immediate use case of BEP036 I suggest to formalize allowing for top level participant+sessions.tsv with joint index across participant_id, session_id pairs. Then information
- the same across sessions will go to
participants.tsvlike it does now - the same across participants but different across sessions - into
sessions.tsvat the top level to be "taken" per IP principle.- @effigies noted complication is that for .tsv we actually do not really define how to inherit .tsv records beyond "take .tsv closest in hierarchy"... I am yet to check.
But I think the issue is common and warrants a more generic solution! Related desires came up in
- iEEG in BIDS and microephys (BEP032) to need to disambiguate combination of electrodes on probes. iEEG atm just encodes some location in addition to index within "name", thus making it unique
It is IMHO potentially a general desire to be able to consolidate relevant summary information in the "long form" at higher levels, thus requiring composite indexes. E.g. for an "experimental" composition of OpenNeuro studies I already produced similar studies_derivatives.tsv (to be renamed likely into study+derivatives.tsv).
Pros:
- It would "pair" up with summarization inheritance principle that at higher levels, if desired, we can provide common metadata in .json or .tsv files. So ATM
participants.tsvprovide common metadata per participant andsub-*/sub-*_sessions.tsvare the ones to provide differing ones across sessions. - It would allow for new type of metadata aggregation/specification, not anyhow limited/specific to phenotype
- would not break any existing tool assuming a single index/unique IDs in
{plural_entity}.tsv} and thus be backward compatible - allow for efficient single-entity index table to still exist (unlike adding composite index into a
{plural_entity}.tsvneeding to duplicate the value for all values of the other entities)
- would not break any existing tool assuming a single index/unique IDs in
Counter precedents (sneaked in):
- microscopy uses top level samples.tsv which at the top level pairs the two: "The combination of
sample_idandparticipant_idMUST be unique."- TODO: rename/auto-migrate into
sample+participants.tsvwhile allowing forsamples.tsvas well
- TODO: rename/auto-migrate into
- any other???
Alternative solutions
Flexible joint indexes
By @effigies to do allow multiple columns to serve an index, and define that at the schema level. Details to be provided by @effigies in some other issue/PR? ;)