Skip to content

BIDS filtering on session disallowed #3613

@coryshain

Description

@coryshain

What happened?

It seems like there's a (newly-introduced?) constraint that BIDS filters can't filter on session (https://github.com/nipreps/niworkflows/blob/master/niworkflows/utils/bids.py, line 274). This gums up our workflow because we have deeply-scanned subjects with multiple anatomicals and ongoing data collection, so for computational reasons we only want to preprocess new sessions as they are collected. We can't use fMRIprep's session_id argument because we want to process all the anatomicals but not all the functionals, so we need to use BIDS filters to just filter BOLD on session. Can this constraint on filters be relaxed, or is there a different way to achieve our goals?

What command did you use?

fmriprep

What version of the software are you running?

fmriprep 25.2.4

How are you running this software?

Singularity

Is your data BIDS valid?

Yes

Are you reusing any previously computed results?

No

Please copy and paste any relevant log output.

260217-07:39:49,559 nipype.workflow IMPORTANT:
         Running fMRIPrep version 25.2.4

         License NOTICE ##################################################
         fMRIPrep 25.2.4
         Copyright The NiPreps Developers.

         This product includes software developed by
         the NiPreps Community (https://nipreps.org/).

         Portions of this software were developed at the Department of
         Psychology at Stanford University, Stanford, CA, US.

         This software is also distributed as a Docker container image.
         The bootstrapping file for the image ("Dockerfile") is licensed
         under the MIT License.

         This software may be distributed through an add-on package called
         "Docker Wrapper" that is under the BSD 3-clause License.
         #################################################################
260217-07:39:49,574 nipype.workflow IMPORTANT:
         Building fMRIPrep's workflow:
           * BIDS dataset path: /bids.
           * Participants and sessions: sub-c001 (7 sessions).
           * Run identifier: 20260217-073840_dd26fae9-5997-4acb-9576-14296b150793.
           * Output spaces: T1w fsnative.
           * Pre-run FreeSurfer's SUBJECTS_DIR: /out/sourcedata/freesurfer.
Process Process-2:
Traceback (most recent call last):
  File "/app/.pixi/envs/fmriprep/lib/python3.12/multiprocessing/process.py", line 314, in _bootstrap
    self.run()
  File "/app/.pixi/envs/fmriprep/lib/python3.12/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/fmriprep/cli/workflow.py", line 116, in build_workflow
    retval['workflow'] = init_fmriprep_wf()
                         ^^^^^^^^^^^^^^^^^^
  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/fmriprep/workflows/base.py", line 108, in init_fmriprep_wf
    single_subject_wf = init_single_subject_wf(subject_id, sessions, name=wf_name)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/fmriprep/workflows/base.py", line 225, in init_single_subject_wf
    subject_data = collect_data(
                   ^^^^^^^^^^^^^
  File "/app/.pixi/envs/fmriprep/lib/python3.12/site-packages/niworkflows/utils/bids.py", line 279, in collect_data
    raise ValueError(
ValueError: Conflicting entities for "session" found: ['ex32508'] // ['ex31381', 'ex31451', 'ex31524', 'ex31557', 'ex31644', 'ex31671a', 'ex32508']

Additional information / screenshots

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions