Repository navigation
Bep044 examples - #566
Bep044 examples#566VisLab wants to merge 9 commits into
Conversation
Flat /stimuli directory with a stimulus catalog (stimulus_id, type, filename, description), one image and one audio stimulus with media metadata sidecars, and a beh events file that carries both stim_id and the legacy stim_file column. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Root catalog with URL, license, copyright, description and present columns; scoped catalogs in faces/, sounds/ and nsd/ that amend it; dataset-wide annotations.tsv; three NSD images described without redistributing the files. HED appears as a catalog column, as a sidecar dictionary in a scoped catalog, as a placeholder in a time-varying annotation, and on the trial_type column of the events. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The Present (not redistributed, present: false) with three stim-<label>_annot-<label>_events.tsv annotation tables and HED in their sidecars, Big Buck Bunny split into two files with the part-<label> entity and partDescription, and an EEG recording whose events reference the film through stim_id. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Three rows in dataset_listing.tsv, a Stimuli table in tools/print_dataset_listing.py keyed on the stimuli_ prefix, and the regenerated README tables. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
There was a problem hiding this comment.
Copilot review overview
🔵 Needs a closer look
The examples depend on two still-draft external specification and validator changes and contain extensive domain-specific HED metadata.
Review effort: Balanced
Findings: None
What changed in this PR
Adds three datasets demonstrating draft BEP044 stimulus catalogs, hierarchy, annotations, media metadata, and event references.
Changes:
- Adds basic, hierarchical, and time-varying stimulus examples.
- Adds catalog, annotation, HED, media, behavioral, and EEG metadata.
- Extends generated dataset listings with a Stimuli section.
| File | Description |
|---|---|
tools/print_dataset_listing.py |
Generates the Stimuli listing. |
stimuli_timevarying/task-ThePresent_events.json |
Describes recording events. |
stimuli_timevarying/task-ThePresent_eeg.json |
Defines EEG metadata. |
stimuli_timevarying/sub-01/eeg/sub-01_task-ThePresent_events.tsv |
References the film stimulus. |
stimuli_timevarying/sub-01/eeg/sub-01_task-ThePresent_eeg.set |
Provides the EEG placeholder. |
stimuli_timevarying/sub-01/eeg/sub-01_task-ThePresent_channels.tsv |
Lists EEG channels. |
stimuli_timevarying/stimuli/stimuli.tsv |
Catalogs film stimuli. |
stimuli_timevarying/stimuli/stimuli.json |
Describes catalog columns. |
stimuli_timevarying/stimuli/stim-thepresent_annot-LogLumRatio_events.tsv |
Adds luminance annotations. |
stimuli_timevarying/stimuli/stim-thepresent_annot-LogLumRatio_events.json |
Defines luminance annotation metadata. |
stimuli_timevarying/stimuli/stim-thepresent_annot-auditory_events.tsv |
Adds auditory annotations. |
stimuli_timevarying/stimuli/stim-thepresent_annot-auditory_events.json |
Defines auditory HED metadata. |
stimuli_timevarying/stimuli/stim-thepresent_annot-action_events.tsv |
Adds action annotations. |
stimuli_timevarying/stimuli/stim-thepresent_annot-action_events.json |
Defines action HED metadata. |
stimuli_timevarying/stimuli/stim-bbb_part-2_audiovideo.mp4 |
Provides the second media placeholder. |
stimuli_timevarying/stimuli/stim-bbb_part-2_audiovideo.json |
Describes the second media part. |
stimuli_timevarying/stimuli/stim-bbb_part-1_audiovideo.mp4 |
Provides the first media placeholder. |
stimuli_timevarying/stimuli/stim-bbb_part-1_audiovideo.json |
Describes the first media part. |
stimuli_timevarying/stimuli/annotations.tsv |
Catalogs annotation sets. |
stimuli_timevarying/stimuli/annotations.json |
Describes annotation columns. |
stimuli_timevarying/README.md |
Documents the example. |
stimuli_timevarying/participants.tsv |
Lists the participant. |
stimuli_timevarying/dataset_description.json |
Defines dataset metadata. |
stimuli_hierarchical/task-view_events.json |
Describes face and tone events. |
stimuli_hierarchical/task-images_events.json |
Describes image events. |
stimuli_hierarchical/sub-01/beh/sub-01_task-view_events.tsv |
References face and tone stimuli. |
stimuli_hierarchical/sub-01/beh/sub-01_task-images_events.tsv |
References NSD stimuli. |
stimuli_hierarchical/stimuli/stimuli.tsv |
Defines the root catalog. |
stimuli_hierarchical/stimuli/stimuli.json |
Describes root catalog columns. |
stimuli_hierarchical/stimuli/sounds/stim-tone01_audio.json |
Describes the tone stimulus. |
stimuli_hierarchical/stimuli/sounds/stim-tone01_annot-pitch_events.tsv |
Adds pitch annotations. |
stimuli_hierarchical/stimuli/sounds/stim-tone01_annot-pitch_events.json |
Defines pitch HED metadata. |
stimuli_hierarchical/stimuli/nsd/stimuli.tsv |
Adds the scoped NSD catalog. |
stimuli_hierarchical/stimuli/nsd/stimuli.json |
Describes the NSD identifier. |
stimuli_hierarchical/stimuli/faces/stimuli.tsv |
Adds the scoped face catalog. |
stimuli_hierarchical/stimuli/faces/stimuli.json |
Defines emotion metadata and HED. |
stimuli_hierarchical/stimuli/faces/stim-face02_image.json |
Describes the second face image. |
stimuli_hierarchical/stimuli/faces/stim-face01_image.json |
Describes the first face image. |
stimuli_hierarchical/stimuli/annotations.tsv |
Catalogs the pitch annotation. |
stimuli_hierarchical/stimuli/annotations.json |
Describes annotation columns. |
stimuli_hierarchical/README.md |
Documents hierarchy and inheritance. |
stimuli_hierarchical/participants.tsv |
Lists the participant. |
stimuli_hierarchical/dataset_description.json |
Defines dataset metadata. |
stimuli_basic/task-view_events.json |
Describes stimulus references. |
stimuli_basic/sub-01/beh/sub-01_task-view_events.tsv |
Demonstrates both reference columns. |
stimuli_basic/stimuli/stimuli.tsv |
Defines the minimal catalog. |
stimuli_basic/stimuli/stimuli.json |
Describes catalog columns. |
stimuli_basic/stimuli/stim-tone01_audio.json |
Describes the audio placeholder. |
stimuli_basic/stimuli/stim-face01_image.json |
Describes the image placeholder. |
stimuli_basic/README.md |
Documents the minimal example. |
stimuli_basic/participants.tsv |
Lists the participant. |
stimuli_basic/dataset_description.json |
Defines dataset metadata. |
README.md |
Lists the new examples. |
dataset_listing.tsv |
Registers the three datasets. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
This is failing because the dataset ieeg_filtered_speech has stuff under stimuli, but it doesn't have a stimuli/stimuli.tsv. It should not be validated by BEP044. |
so, is that a bug in bids-validator patch then or where? since failing only for |
|
Yes, it is a simple fix in our bids-validator PR. I am waiting for @neuromechanist to add me to his fork and I'll push it. |
The BEP044 draft now requires type, license, and present in stimuli.tsv. Order the catalog columns by requirement level, describe license in stimuli.json, and point the README at the current companion examples. Tested: validates with zero errors using bids-validator PR 445 and the spec PR 2022 schema.
The BEP044 draft dropped /stimuli subdirectories and scoped catalogs, which this dataset existed to demonstrate. Tested: README tables regenerated with tools/print_dataset_listing.py.
Two participants in a dyadic task, each with the partner's speech as a sub-<label>_task-dyad_stim-partner_audio.wav stimulus that has no counterpart in /stimuli, and a screen capture of a shared clip (sub-01_task-watch_stim-clip01_video.mp4) whose sidecar points at the presented file with Sources. Events reference both through stim_id. Tested: validates with zero errors using bids-validator PR 445 and the spec PR 2022 schema; README tables regenerated.
Mirror the spec example: required columns first (stimulus_id, type, license, present), then copyright and description, then the optional URL and partDescription. Tested: validates with zero errors using bids-validator PR 445 and the spec PR 2022 schema.
|
Updated to the current BEP044 draft in spec PR 2022, which dropped
So the Tested locally with bids-validator PR 445 (updated today) and the spec Agentic AI tools were used. Workflows follow the Research Skills (doi:10.5281/zenodo.20696515). The author assumes full responsibility for this content and associated changes. |
stimuli_subject uses subject-level stim-<label> files that only the unmerged spec PR 2022 schema and validator PR 445 know, so released validators report them as NOT_INCLUDED. Skip it in the stable, main, and dev jobs and keep validating it in dev-prs, following the existing skip steps used for earlier BEP examples. Tested: the dataset validates with zero errors using bids-validator PR 445 and the spec PR 2022 schema; CI's dev-prs jobs passed on the previous push.
BIDS Specification PR: bids-standard/bids-specification#2022
BIDS Validator PR: bids-standard/bids-validator#445
Supersedes #433. The three datasets there were replaced by three small ones
(56 files, largest file 2.4 KB) that together exercise each feature of the
BEP044 text as of spec PR 2022 and validate with zero errors under the
validator from PR 445.
Datasets
stimuli_basic: the smallest catalog-organized/stimulidirectory. Flatlayout,
stimuli.tsvwithstimulus_id,type,filename,description,one image and one audio stimulus with media sidecars, and a
beheventsfile that carries both
stim_idand the legacystim_filecolumn.stimuli_hierarchical: subdirectories with scoped catalogs that amend theroot catalog (
faces/,sounds/,nsd/), the recommendedlicense,copyright,descriptionand optionalURLcolumns,present: falseforthe three NSD images that are not redistributed, HED annotations of image
content in a scoped catalog, a time-varying annotation for the tone, and the
dataset-wide
annotations.tsv.stimuli_timevarying: film stimuli referenced from an EEG recording. ThePresent (not redistributed,
present: false) with threestim-<label>_annot-<label>_events.tsvannotation tables (action, auditory,LogLumRatio) carrying HED in their sidecars, and Big Buck Bunny (CC-BY-3.0)
split into two files with the
part-<label>entity andpartDescription.Datasets were created in collaboration with Claude Fable 5.1.