Add duration column to _scans.tsv - #563
Draft
yarikoptic wants to merge 2 commits into
Draft
yarikoptic wants to merge 2 commits into
yarikoptic wants to merge 2 commits into
Conversation
…ecification#2508) Add the optional `duration` column (wallclock seconds from first to end of last acquired sample) to three existing datasets and one new scans.tsv: - synthetic (MRI, 5 sub × 2 ses): T1w=240s, nback-run-01/02=720s (=288×TR), rest=600s (=240×TR). All durations are multiples of TR=2.5s and fit within the acq_time gap to the next scan (no acquisition overlaps). - ds000117 (MEG+EEG): duration=450s (=7.5 min) for all 6 runs per subject (16 subjects), consistent with the TaskDescription in the sidecar JSON ("six, 7.5 minute runs"). Verified no overlap: minimum start-to-start gap across all 16 subjects is 556s (sub-16 run-01→run-02), leaving a 106s residual. - ds000246 (MEG, CTF): duration=360s for both AEF runs (matching RecordingDuration=360 in each run sidecar); duration=30s for the emptyroom noise run (RecordingDuration=30). - ds000248 (MEG, Elekta/single-subject): duration=277.71s for the audiovisual run (RecordingDuration≈277.71 in sidecar); duration=110.0s for the emptyroom (RecordingDuration≈109.999). - volume_timing (fMRI timing variants, new scans.tsv): durations derived from VolumeTiming + per-frame duration metadata in each sidecar. The acq-deprecated run (VolumeTiming 0–14s, AcquisitionDuration=1.0s per frame) gets duration=15.0s, consistent with the spec rule that the BOLD+VolumeTiming exclusion applies (AcquisitionDuration was used there as a per-frame measure, so the ScansAcquisitionDurationConsistency check is correctly not triggered). - qmri_qsm (MRI with _part-, new scans.tsv): both part-mag and part-phase entries carry identical acq_time and duration (480s), illustrating that split-storage files of the same acquisition share temporal metadata. Co-Authored-By: Claude Code 2.1.263 / Claude Sonnet 4.6 <noreply@anthropic.com>
yarikoptic
commented
Sep 10, 2026
yarikoptic
marked this pull request as draft
September 10, 2026 20:10
6 tasks
Contributor
Author
|
hm , TEMP is there and validator is still happy -- likely need to tune up the "breakage" example |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
To accompany
_scans.tsvbids-specification#2508Add the optional
durationcolumn (wallclock seconds from first to end of last acquired sample) to three existing datasets and one new scans.tsv:synthetic (MRI, 5 sub × 2 ses): T1w=240s, nback-run-01/02=720s (=288×TR), rest=600s (=240×TR). All durations are multiples of TR=2.5s and fit within the acq_time gap to the next scan (no acquisition overlaps).
ds000117 (MEG+EEG): duration=450s (=7.5 min) for all 6 runs per subject (16 subjects), consistent with the TaskDescription in the sidecar JSON ("six, 7.5 minute runs"). Verified no overlap: minimum start-to-start gap across all 16 subjects is 556s (sub-16 run-01→run-02), leaving a 106s residual.
ds000246 (MEG, CTF): duration=360s for both AEF runs (matching RecordingDuration=360 in each run sidecar); duration=30s for the emptyroom noise run (RecordingDuration=30).
ds000248 (MEG, Elekta/single-subject): duration=277.71s for the audiovisual run (RecordingDuration≈277.71 in sidecar); duration=110.0s for the emptyroom (RecordingDuration≈109.999).
volume_timing (fMRI timing variants, new scans.tsv): durations derived from VolumeTiming + per-frame duration metadata in each sidecar. The acq-deprecated run (VolumeTiming 0–14s, AcquisitionDuration=1.0s per frame) gets duration=15.0s, consistent with the spec rule that the BOLD+VolumeTiming exclusion applies (AcquisitionDuration was used there as a per-frame measure, so the ScansAcquisitionDurationConsistency check is correctly not triggered).
qmri_qsm (MRI with _part-, new scans.tsv): both part-mag and part-phase entries carry identical acq_time and duration (480s), illustrating that split-storage files of the same acquisition share temporal metadata.
BIDS Specification PR: [ENH] Add optional 'duration' column to
_scans.tsvbids-specification#2508BIDS Validator PR: feat: Add associations.scans loader bids-validator#449
TODOs:
Co-Authored-By: Claude Code 2.1.263 / Claude Sonnet 4.6 noreply@anthropic.com