-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Quite often projects do not adopt BIDS due to complexity or not perfect fit, and then establish new a file layout and/or metadata convention/standard while saying they are "BIDS-like". The likeness varies greatly. Quite often it is simply the aspect of having folders and file names with some metadata in them. Those are not worth mentioning here. But there is a good number of BIDS-like standards (in my words - formalized descriptions adopted by a considerable number of people) which are worth reviewing and analyzing for what could minimize divergence between them and current BIDS through possibly introducing missing but reasonable and desired features into BIDS 2.0.
This issue would be used to collect pointers and possibly summarize rationale and major features behind them.
DANDI layout
Established by me and @satra for https://dandiarchive.org, primarily due to complete lack of usable standard/layout at that earlier point in time .
- There is no specification, and layout is largely "enforced" via
dandi organizecommand on a set of .nwb files. dandiset.yamlschema is defined within pydantic model in https://github.com/dandi/dandi-schema/blob/master/dandischema/models.py#L1405- see Convergence between DANDI Layout and BIDS dandi/dandi-cli#1498
Notable divergences:
- no
dataset_description.json- metadata is in "in-house"dandiset.yaml - no
ses-*/level subfolder but there isses-entity in the target filenames (convergence possible through Make it possible to specify folders layout to be other than sub-{label}/[ses-{label}/] #54) - no datatype (AKA modality) subfolder (related: Change modality directories to entity format #55, convergence possible through Make it possible to specify folders layout to be other than sub-{label}/[ses-{label}/] #54)
- main file format is
.nwb(convergence through https://bids.neuroimaging.io/bep032 for animal ephys data, discussed/not (yet) accepted in BIDS 1.0 formicr/: Allow for .nwb standard/file format to be used for "micr" bids-specification#1632) - entity labels/values could contain
-and+. (TODO: ref BIDS PR) - Suffix can contain
+(no PR yet I think) - Suffix contains (often multiple) data modalities contained within the single .nwb file, concatenated with
+
PsychDS
https://psych-ds.github.io/ https://github.com/psych-ds/psych-DS (attn @mekline and @bleonar5 - would appreciate details/feedback alike for DANDI here or in a dedicated issue/doc)
- Overall motivation: Re-use BIDS schema formalization to derive a customized subset of the BIDS standard to simplify domain specific use and adoption.
NeuroBlueprint
https://neuroblueprint.neuroinformatics.dev/latest/specification.html .
Request for summarization of rationale/divergences: neuroinformatics-unit/NeuroBlueprint#51
SPARC Data Structure (SDS)
The SPARC platform has a preprint online that describes a BIDS inspired data structure: https://www.biorxiv.org/content/10.1101/2021.02.10.430563v2. Rough details are also on their wiki.
- Example dataset online: https://sparc.science/datasets/382?datasetDetailsTab=files and in https://metacell.github.io/sds-viewer/?doi=10.26275%2Fcheq-otb2
- Document on "population, specimen, subject, sample"
TemplateFlow
https://www.templateflow.org/usage/archive/#acceptable-data-types
- A related discussion "has happened" in BEP Proposal: Atlas specification bids-specification#1281
Brain-Development.org Atlas
https://brain-development.org/brain-atlases/atlases-from-the-dhcp-project/cortical-surface-template/ describes itself as "using BIDS conventions", and proceeds to define custom entities and metadata.
NiPoppy
Study-level description which includes bids dataset and uses some conventions (like derivatives/ subfolder with clearer defined naming convention).
- Add DatasetType="project" and rework existing "layout" example into a proper BIDS dataset bids-specification#1861 attempts to converge NiPoppy and BIDS
CAPS
When the development of Clinica started in 2015, the BIDS specifications did not provide specific rules for the processed data. As a result, the goal of CAPS (designed by the Aramis Lab) was to define a hierarchy for the data processed using Clinica. The idea is to include in a single folder all the results of the different pipelines and organize the data following the main patterns of the BIDS specification.
Several differences exist between the BIDS and CAPS specifications.
- Instead of the BIDS derivatives/ folder, the processed data are stored in the CAPS folder.
- CAPS assumes that the session is always present in a BIDS dataset even though there is a single session. In other words, all datasets are considered longitudinal, even when they have only one session.
- NIfTI files generated by a Clinica pipeline are always compressed. Compression is recommended by the BIDS specification but not mandatory.
b2ai-voice
@satra pointed to https://docs.b2ai-voice.org/ where BIDS-inspired organization was also used and looked like
└── sub-<participant_id>
├── ses-<another_session_id>
│ ├── beh
│ │ ├── sub-<participant_id>_ses-<session_id>_task-<task_name>_run-<index>_metadata.json
│ │ └── sub-<participant_id>_ses-<session_id>_task-<task_name>_run-<index>_response.json
│ └── voice
│ ├── sub-<participant_id>_ses-<session_id>_task-<task_name>_run-<index>_audio.wav
│ ├── sub-<participant_id>_ses-<session_id>_task-<task_name>_run-<index>_features.pt
│ ├── sub-<participant_id>_ses-<session_id>_task-<task_name>_run-<index>_metadata.json
│ └── sub-<participant_id>_ses-<session_id>_task-<task_name>_run-<index>_transcript.txt
much relevant to that particular use-case is the
EBRAINS: Clinical Connectome
No publicly shared (yet) spec. Shared at BIDS meeting: EBRAINS_WP2_New_proposed_Data-Management-Plan_BIDS-like.docx .
TODOs:
- represent/quantify divergences from BIDS in form of a table. Dimensions/features
- need for extra entities
- need for alternative folders hierarchy
- need for new modalities
- need for other file formats (there MINC BIDS?)
Mermaid diagram for above
---
config:
layout: dagre
---
flowchart LR
OpenfMRI --Inspired--> BIDS-project
%% & BIDS-stats-models
subgraph BIDS-project
BIDS
BEP028["<a href=https://bids.neuroimaging.io/bep028>BEP028:Prov</a>"] -.->BIDS
BEP032["<a href=https://bids.neuroimaging.io/bep032>BEP032:Microphys</a>"] -.->BIDS
PR1972["<a href=https://github.com/bids-standard/bids-specification/pull/1972>#1972: DatasetType=project</a>"] -.->BIDS
BIDS-stats-models
BIDS2["<a href=https://github.com/orgs/bids-standard/projects/10>BIDS 2.0</a>"]
BIDS2 -.make more modular,consistent,flexible.-> BIDS
end
BIDS --allowed for--> supplements
BIDS --inspired--> bids-like
BIDS --basis for--> bids-schema-based
%% bids-canna-be -.could converge.-> BIDS
subgraph bids-like["BIDS-like
more at <a href=https://github.com/bids-standard/bids-2-devel/issues/62>bids-2-devel/issues/62</a>"]
DANDI("<a href=https://github.com/dandi/dandi-cli/issues/1498>DANDI</a>")
DANDI -.->BEP032
DANDI -.->BIDS2
NeuroBlueprint("<a href=https://neuroblueprint.neuroinformatics.dev/specification.html>NeuroBlueprint</a>")
SDS("<a href=https://neuroblueprint.neuroinformatics.dev/specification.html>SDS(SPARC)</a>")
TemplateFlow
Brain-Development.org-Atlas
CAPS("<a href=https://aramislab.paris.inria.fr/clinica/docs/public/latest/CAPS/Introduction/>CAPS</a>")
b2ai-voice("<a href=https://docs.b2ai-voice.org>b2ai-voice</a>")
end
subgraph bids-schema-based[Reuse BIDS schema machinery]
PsychDS[<a href=http://psychds-docs.readthedocs.io/>PsychDS</a>]
end
subgraph bids-canna-be
Nipoppy -.could converge on.->PR1972
end
%% TODO: revert arrow back, place
%% bids-canna-be --> BIDS
subgraph supplements["Supplements (BIDS-'valid')
rely on adding extra metadata"
]
subgraph ldbids["Linked BIDS"]
Neurobagel("<a href=https://neurobagel.org>Neurobagel</a>")
NIDM-Terms
end
converters["dcm2niix,heudiconv"] -.->BEP028
end
style OpenfMRI stroke:#000000,fill:#F2F7D2
%% C3EFE0
style BIDS stroke:#000000,fill:#BEF6AC
style BIDS-stats-models stroke:#000000,fill:#BEF6AC
style supplements stroke:#000000,fill:#F6ACD8
style bids-schema-based stroke:#000000,fill:#F6ACD8
style bids-canna-be stroke:#000000,fill:#F6ACD8
style bids-like stroke:#000000,fill:#F6ACD8