If I have a functional MRI task where each run is a different condition that is also a different scan length, and they are run in different counterbalanced orders across subjects, what is best practice for implying task condition using the task label and run index.
There are three methods that jump out to me:
Method 1:
Counterbalance 1:
“…task-audio_run-01…”, “…task-audio_run-02…”, “…task-audio_run-03…”, “…task-audio_run-04…”
Counterbalance 2:
“…task-audio_run-01…”, “…task-audio_run-02…”, “…task-audio_run-03…”, “…task-audio_run-04…”
where run numbers are in chronological order for all counterbalance orders, such that run number is chronological but refers to different conditions across subjects based on counterbalance order. Task condition is not implied by scan name, and only available by referencing an external list of subject counterbalance assignments.
Method 2:
Counterbalance 1:
“…task-audio30…”, “…task-audio50…”, “…task-audio70…”, “…task-audio90…”
Counterbalance 2:
“…task-audio50…”, “…task-audio70…”, “…task-audio90…”, “…task-audio30…”
where we refer to each condition by a different task label, and we re-order task names for each counterbalance order so that condition is implied by task name and consistent across subjects.
Method 3:
Counterbalance 1:
“…task-audio_run-01…”, “…task-audio_run-02…”, “…task-audio_run-03…”, “…task-audio_run-04…”
Counterbalance 2:
“…task-audio_run-02…”, “…task-audio_run-03…”, “…task-audio_run-04…”, “…task-audio_run-01…”
where run number always refers to a specific condition, and are out of chronological order for each counterbalance.
The concepts I was unclear on from the BIDS spec were:
-Whether task conditions with different scan lengths should justify separate task names? The Common Principles state that Run should distinguish only between scans with matched parameters, but it’s not obvious to me if scan length should be included in that list.
-Whether run indexes should always be chronological, or if their acquisition order was irrelevant and they could instead be used to reference something like condition order.
For reference I am setting up protocols on a Siemens MRI using the ReproIn naming spec to allow semi-automated BIDS conversion with HeuDiConv. So we’re setting up multiple protocols for each counterbalance order, and I need to decide on the final BIDS organization in advance to map back to a consistent protocol naming and organization scheme on the scanner console.