Bids-database-dir ValueError

Hello,

I am using fmriprep 21.0.0 and its docker wrapper on a linux workstation to process ~200 subjects with multi-echo resting-state data. The data lives on a network server but the processing is done by the workstation not a HPC. I created a separate test bids directory with one subject and successfully processed their data through fmriprep. Using the same command on the path to the actual directory but still only one subject led fmriprep to hang after printing the docker command but no other outputs. I believe it appears to hang because of the pybids indexing. So, I pre-indexed following the FAQ and added the flag + path --bids-database-dir to the wrapper command. Unfortunately, that raises an error about the root directory not existing. I then replicated the error on the test directory. Permissions and memory seem fine and the root path is definitely correct and bids compliant. Any thoughts on what is the issue?

Commands
pybids layout $bids_root_dir $pybids_dir --no-validate --index-metadata

fmriprep-docker $bids_root_dir \
$bids_deriv_dir \
participant \
--participant-label $subj \
--skip-bids-validation \
--bids-database-dir $pybids_dir \
--md-only-boilerplate \
--fs-license-file $FS_LICENSE \
--fs-no-reconall \
--output-spaces T1w \
--ignore slicetiming fieldmaps sbref t2w flair \
--dummy-scans 4 \
--skull-strip-t1w force \
--fs-subjects-dir $fs_dir$subj \
--me-output-echos \
--stop-on-first-crash \
--low-mem \
-u $(id -u):$(id -g)

Output
collhugh@albany:/lbc/lbc1/PREVENT_AD/derivatives/rsFC/rsFC_fmriprep$ ./code/docker_PAD.sh
RUNNING: docker run --rm -e DOCKER_VERSION_8395080871=20.10.7 -it -u 3095:1086 -v /lbc/lbc1/PREVENT_AD/derivatives/rsFC/rsFC_fmriprep/license.txt:/opt/freesurfer/license.txt:ro -v /lbc/lbc1/PREVENT_AD/PREVENT_AD_BIDS:/data:ro -v /lbc/lbc1/PREVENT_AD/derivatives/rsFC/rsFC_fmriprep/derivatives:/out -v /lbc/lbc1/PREVENT_AD/derivatives/freesurfer/sub-0196:/opt/subjects -v /lbc/lbc1/PREVENT_AD/derivatives/rsFC/pybids_db:/tmp/bids_db nipreps/fmriprep:21.0.0 /data /out participant --participant-label 0196 --skip-bids-validation --md-only-boilerplate --fs-no-reconall --ignore slicetiming fieldmaps sbref t2w flair --dummy-scans 4 --skull-strip-t1w force --me-output-echos --stop-on-first-crash --low-mem --fs-subjects-dir /opt/subjects --bids-database-dir /tmp/bids_db --output-spaces T1w
/opt/conda/lib/python3.8/site-packages/bids/config.py:39: FutureWarning: Setting β€˜extension_initial_dot’ will be removed in pybids 0.16.
warnings.warn(β€œSetting β€˜extension_initial_dot’ will be removed in pybids 0.16.”,
Traceback (most recent call last):
File β€œ/opt/conda/bin/fmriprep”, line 8, in
sys.exit(main())
File β€œ/opt/conda/lib/python3.8/site-packages/fmriprep/cli/run.py”, line 38, in main
parse_args()
File β€œ/opt/conda/lib/python3.8/site-packages/fmriprep/cli/parser.py”, line 668, in parse_args
config.from_dict(vars(opts))
File β€œ/opt/conda/lib/python3.8/site-packages/fmriprep/config.py”, line 664, in from_dict
execution.load(settings)
File β€œ/opt/conda/lib/python3.8/site-packages/fmriprep/config.py”, line 238, in load
cls.init()
File β€œ/opt/conda/lib/python3.8/site-packages/fmriprep/config.py”, line 481, in init
cls._layout = BIDSLayout(
File β€œ/opt/conda/lib/python3.8/site-packages/bids/layout/layout.py”, line 126, in init
root, description = validate_root(root, validate)
File β€œ/opt/conda/lib/python3.8/site-packages/bids/layout/validation.py”, line 68, in validate_root
raise ValueError(β€œBIDS root does not exist: %s” % root)
ValueError: BIDS root does not exist: /lbc/lbc1/PREVENT_AD/PREVENT_AD_BIDS
fMRIPrep: Please report errors to https://github.com/nipreps/fmriprep/issues

When you run the fmriprep docker wrapper function as you did, the function does this:
/lbc/lbc1/PREVENT_AD/PREVENT_AD_BIDS:/data:ro. Your BIDS root is mounted as a folder called /data in the docker environment.

So, in the docker container, there is no folder called PREVENT_AD_BIDS, it is simply called /data. When you pass your pybids layout (which you made correctly), it is telling fmriprep to look for the BIDS root in PREVENT_AD_BIDS, which does not exist in the docker environment because it is renamed. So, passing a pybids layout isn’t really compatible with the fmriprep docker wrapper function.

But don’t worry! You can just use a docker run command instead of the fancy wrapper function. Based on the command you passed, maybe the following will work (I mainly use singularity so I apologize in advance if the syntax is off).

  • NOTE IF $bids_deriv_dir is within $bids_root_dir, you should only mount the $bids_root_dir.

docker run -ti --rm \
-v $bids_root_dir \
-v $bids_deriv_dir \
poldracklab/fmriprep:21.0.0 \
$bids_root_dir $bids_deriv_dir \
participant --participant-label $subj \
--skip-bids-validation --bids-database-dir $pybids_dir \
--md-only-boilerplate --fs-license-file $FS_LICENSE \
--fs-no-reconall --output-spaces T1w \
--ignore slicetiming fieldmaps sbref t2w flair \
--dummy-scans 4 \
--skull-strip-t1w force \
--fs-subjects-dir $fs_dir$subj \
--me-output-echos \
--stop-on-first-crash \
--low-mem \
-u $(id -u):$(id -g)

Hi Steven,

Thanks for the quick and very helpful response. This all makes sense to me. I followed your recommendation and edited the command as follows.

#User inputs:
bids_root_dir=/lbc/lbc1/PREVENT_AD/PREVENT_AD_BIDS
bids_deriv_dir=/lbc/lbc1/PREVENT_AD/derivatives/rsFC/rsFC_fmriprep/derivatives
fs_dir=/lbc/lbc1/PREVENT_AD/derivatives/freesurfer
pybids_dir=/lbc/lbc1/PREVENT_AD/derivatives/rsFC/pybids_db
subj=0196

#Begin:

export TEMPLATEFLOW_HOME=/home/bic/collhugh/.cache/templateflow
export FS_LICENSE=/lbc/lbc1/PREVENT_AD/derivatives/rsFC/rsFC_fmriprep/license.txt

#Run fmriprep
docker run -ti --rm \
-v $bids_root_dir:/data:ro \
-v $bids_deriv_dir:/out \
nipreps/fmriprep:21.0.0 \
/data /out \
participant \
--participant-label $subj \
--skip-bids-validation \
--bids-database-dir $pybids_dir \
--md-only-boilerplate \
--fs-no-reconall \
--fs-subjects-dir $fs_dir \
--output-spaces T1w \
--ignore slicetiming fieldmaps sbref t2w flair \
--dummy-scans 4 \
--skull-strip-t1w force \
--me-output-echos \
--stop-on-first-crash \
--low-mem

It’s still appearing to hang on the pybids indexing without giving errors. I think this is probably because the pybids directory does not live in /out and is therefore not seen by Docker. So, I added a -v flag for the pybids directory (like the workdir in the last example here). But, this results in the earlier β€œroot dir does not exist” error. I moved the database to /out in case -v can’t be used for any location, but got the same error. I’ll keep troubleshooting as it’s probably my misunderstanding of how docker works, but would welcome any suggestions.

Just to note, the derivatives folder - including pre-run freesurfer segmentations - lives outside of the BIDS directory. This is on purpose.

By doing this

you are introducing the same error as the wrapper function did. When you mount your BIDS directory to docker, you don’t want to rename it in the docker environment (in your case), since your pybids directory has paths using the original name. Also, yes good catch, you will also want to mount the pybids directory with an additional -v command, forgot to say that earlier.

In short, use the command above, but change

to this:

-v $bids_root_dir \
-v $bids_deriv_dir \
-v $pybids_dir \
nipreps/fmriprep:21.0.0 \
$bids_root_dir $bids_deriv_dir \

Additional suggestion (doesn’t relate to the error):

In this case, I would delete the --fs-no-reconall argument. If the FS outputs are already available, recon-all will not be run, so you wouldn’t have to worry about it being run again and wasting time. But, for example, if you misspecified your fs-dir and kept that no reconall argument in, then fMRIPrep would not have any FS outputs to use which would likely detriment the anatomical workflows.

Oh! I interpreted the mismatch in the -v flag in your first response about the renaming to be a singularity/docker difference not the core issue. Sorry about that! I will follow both suggestions and update how it goes.

Great! Just to explain it a bit further, the -v docker argument mounts a drive to the docker environment, so you can use your own files in there.

-v $bids_root_dir is saying β€œI want to have $bids_root_dir in my docker environment”.
-v $bids_root_dir:/data is saying "I want to have $bids_root_dir in my docker environment renamed to /data"
-v $bids_root_dir:/data:ro is saying β€œI want tot have $bids_root_dir in my docker environment renamed to /data and with read-only permissions”

1 Like

Thanks for the further explanation! Well, I got past the old error to get a new one - command and error pasted below. Looks like it might be similar to some recent posts (here and here and here).

I will double check the BIDS validation done by my colleague, but I think it is likely that there is still some reason why Docker cannot see my BIDS directory. I haven’t seen many cases where the bids-database-dir argument and docker were used together. Perhaps relevant that I am not the owner/creator of the BIDS directory but I do have permissions through the group. And I do not have root access to Docker, which is why I included the -u $(id -u) argument earlier. However, that argument is only accepted by the wrapper. I am also setting all this up through ssh.

Command

#!/bin/bash

#User inputs:
bids_root_dir=/lbc/lbc1/PREVENT_AD/PREVENT_AD_BIDS
bids_deriv_dir=/lbc/lbc1/PREVENT_AD/derivatives/rsFC/rsFC_fmriprep/derivatives
fs_dir=/lbc/lbc1/PREVENT_AD/derivatives/freesurfer
pybids_dir=/lbc/lbc1/PREVENT_AD/derivatives/rsFC/pybids_db
subj=0196

#Begin:

export TEMPLATEFLOW_HOME=/home/bic/collhugh/.cache/templateflow
export FS_LICENSE=/lbc/lbc1/PREVENT_AD/derivatives/rsFC/rsFC_fmriprep/license.txt

#Run fmriprep
docker run -ti --rm -v $bids_root_dir \
-v $bids_deriv_dir \
-v $pybids_dir \
-v $fs_dir \
nipreps/fmriprep:21.0.0 \
$bids_root_dir $bids_deriv_dir \
participant \
--participant-label $subj \
--bids-database-dir $pybids_dir \
--skip-bids-validation \
--md-only-boilerplate \
--fs-subjects-dir $fs_dir/sub-${subj} \
--output-spaces T1w \
--ignore slicetiming fieldmaps sbref t2w flair \
--dummy-scans 4 \
--skull-strip-t1w force \
--me-output-echos \
--stop-on-first-crash \
--low-mem

Output
collhugh@albany:/lbc/lbc1/PREVENT_AD/derivatives/rsFC/rsFC_fmriprep/code$ ./docker_PAD.sh
/opt/conda/lib/python3.8/site-packages/bids/config.py:39: FutureWarning: Setting β€˜extension_initial_dot’ will be removed in pybids 0.16.
warnings.warn(β€œSetting β€˜extension_initial_dot’ will be removed in pybids 0.16.”,
Traceback (most recent call last):
File β€œ/opt/conda/bin/fmriprep”, line 8, in
sys.exit(main())
File β€œ/opt/conda/lib/python3.8/site-packages/fmriprep/cli/run.py”, line 38, in main
parse_args()
File β€œ/opt/conda/lib/python3.8/site-packages/fmriprep/cli/parser.py”, line 668, in parse_args
config.from_dict(vars(opts))
File β€œ/opt/conda/lib/python3.8/site-packages/fmriprep/config.py”, line 664, in from_dict
execution.load(settings)
File β€œ/opt/conda/lib/python3.8/site-packages/fmriprep/config.py”, line 238, in load
cls.init()
File β€œ/opt/conda/lib/python3.8/site-packages/fmriprep/config.py”, line 481, in init
cls._layout = BIDSLayout(
File β€œ/opt/conda/lib/python3.8/site-packages/bids/layout/layout.py”, line 126, in init
root, description = validate_root(root, validate)
File β€œ/opt/conda/lib/python3.8/site-packages/bids/layout/validation.py”, line 73, in validate_root
raise BIDSValidationError(
bids.exceptions.BIDSValidationError: β€˜dataset_description.json’ is missing from project root. Every valid BIDS dataset must have this file.
Example contents of β€˜dataset_description.json’:
{β€œName”: β€œExample dataset”, β€œBIDSVersion”: β€œ1.0.2”}

dataset_description.json
{
β€œAcknowledgements”: β€œData from the PREVENT-AD”,
β€œAuthors”: [
β€œPREVENT-AD group”,
β€œformatted by Giulia Baracchini”
],
β€œBIDSVersion”: β€œ1.6.0”,
β€œDatasetDOI”: β€œβ€,
β€œFunding”: [
β€œβ€
],
β€œHowToAcknowledge”: β€œβ€,
β€œLicense”: β€œβ€,
β€œName”: β€œβ€,
β€œReferencesAndLinks”: [
β€œβ€
],
β€œTaskName”: β€œdescription”
}

A few things:

  1. Sometimes environment variable names do not get passed into the docker/singularity environment properly. So, what I would do is mount the license with -v $FS_LICENSE:/license.txt in the docker syntax, and then include --fs-license-file /license.txt in the fmriprep command, just to remove the ambiguity.
  2. Which version of pybids did you use to create the database dir? You should make sure it is the same version as the one used in the fmriprep container (for fmriprep 21.0.0, pybids is version 0.14.0).
  3. Yes, you should make sure the dataset is BIDS valid.
  4. If the -u argument is wrapper specific, then you should remove it from your command here.
  5. You can always try running a single subject without the database dir and see if it gets past that stage, just as a test. You don’t need a pybids database premade, it just makes startup quicker and saves work directory space, especially for larger datasets.
  1. Done (no change to error)
  2. Just installed 0.14.0 from 0.13.2 and re-created database in my test BIDS directory (one subject), but the β€˜missing dataset_description.json’ error persists. Will run updated pybids on the full BIDS directory (~200 subjects overnight).
  3. Will check.
  4. Already done (no change to error).
  5. Just to clarify, I have the full BIDS directory (~200 subjects) and a test BIDS directory that is valid but only contains one subject for testing purposes. I used the test directory originally to verify my script worked and then set it to run on one subject from the full directory. Just the change in root directory caused the appearance of hanging. I assumed pybids was trying to index all 200 people and so to avoid that each time, I should pre-index. Oddly, if I use the current code minus pybids on my one person test directory, I still get the ’ missing dataset_description.json’. So now it definitely seems that the change from the wrapper to docker itself is the source of that error.

Thanks for your advice, will post if/when I have more information.

Quick update, if I drop pybids for now and follow the renaming format for docker, fmriprep starts successfully on the one person test BIDS directory. So there’s something that isn’t working to have docker look directly for the directory paths with/without pybids.

-v $bids_root_dir:/data is saying "I want to have $bids_root_dir in my docker environment renamed to /data

Here is the command: 
#Run fmriprep
docker run -ti --rm --user $(id -u) \
-v $bids_root_dir:/data \
-v $bids_deriv_dir:/out \
-v $fs_dir:/fssubjects \
-v $FS_LICENSE:/license.txt \
nipreps/fmriprep:21.0.0 \
/data /out \
participant \
--participant-label $subj \
--skip-bids-validation \
--fs-license-file /license.txt \
--md-only-boilerplate \
--fs-subjects-dir /fssubjects/sub-${subj} \
--output-spaces T1w \
--ignore slicetiming \
--dummy-scans 4 \
--skull-strip-t1w force \
--me-output-echos \
--low-mem

This is why it is not working. The pybids database you pass into fmriprep should correspond to the same paths used for the BIDS dir input into fmriprep. Pass the full BIDS datadir root into fmriprep, using the pybids database made from that full BIDS dataset.

Alternatively, you can also make a temporary single-subject database (I do this very often), but in that case, do not pass in a pybids database. A pybids database will be created automatically by fmriprep for that single-subject dataset when fmriprep begins.

Actually…I just added pybids in and it threw the β€˜missing dataset_description.json’ error. Going to come back to this tomorrow.

docker run -ti --rm --user $(id -u) \
-v $bids_root_dir:/data \
-v $bids_deriv_dir:/out \
-v $fs_dir:/fssubjects \
-v $pybids_dir:/pybids_db \
-v $FS_LICENSE:/license.txt \
nipreps/fmriprep:21.0.0 \
/data /out \
participant \
--participant-label $subj \
--skip-bids-validation \
--bids-database-dir /pybids_db \
--fs-license-file /license.txt \
--md-only-boilerplate \
--fs-subjects-dir /fssubjects/sub-${subj} \
--output-spaces T1w \
--ignore slicetiming \
--dummy-scans 4 \
--skull-strip-t1w force \
--me-output-echos \
--low-mem

More things:

  1. fs-subjects-dir should point to the folder where all Freesurfer folders live. That is, it should contain a folder called $SUBJECTNAME that contains that subject’s freesurfer outputs. So in your case, --fs-subjects-dir /fssubjects should be appropriate, leaving out the subject specific part.
  2. Again, if you are using a pybids database, do not rename the mounts in the -v commands.

Make sure $bids_root_dir points to the full BIDS root directory, and the pybids_dir is made using the same pybids version that fMRIPrep uses, and is made on the same full BIDS root directory, then try the following:

docker run -ti --rm --user $(id -u) \
-v $bids_root_dir \
-v $bids_deriv_dir \
-v $fs_dir \
-v $pybids_dir \
-v $FS_LICENSE:/license.txt \
nipreps/fmriprep:21.0.0 \
$bids_root_dir $bids_deriv_dir \
participant \
--participant-label $subj \
--skip-bids-validation \
--bids-database-dir $pybids_dir \
--fs-license-file /license.txt \
--md-only-boilerplate \
--fs-subjects-dir $fs_dir \
--output-spaces T1w \
--ignore slicetiming \
--dummy-scans 4 \
--skull-strip-t1w force \
--me-output-echos \
--low-mem

Okay, I will re-run the full BIDS directory with pybids 0.14.0 (will take a couple hours) then try this solution ensuring that $bids_root_dir and pybids_dir are based on the same full directory. Thank you very much for the quick and helpful replies!

1 Like

Same β€˜missing dataset_description.json’ error if I used the 0.14.0 pybids full database and the direct calls to my paths. The dataset is bids valid, but contains many different types of scans and some that are not yet included in bids (put in bids ignore file). So, if I don’t pre-index it hangs for a very very long time on that stage - I’ve actually not had it start fmriprep when I run just sub-0196 but using the full directory path. I’ll let the not pre-indexed code run for a full 24 hours just to see if it ever gets going. But if that happens each time, it’s not practical. I suppose I can do the temporary single subject dirs as a workaround, if needed.

Can you confirm the dataset description is not in the bidsignore file? Can you also print the outputs of the tree Command run on the bids data directory roof, and then on a single subject?

Yes, the dataset description file is not in bidsignore.

Here is the file tree for sub-0196 (using the -I flag to ignore a directory containing non-BIDS formatted files e.g., QSM dicoms that are in bidsignore).

collhugh@albany:/lbc/lbc1/PREVENT_AD$ tree PREVENT_AD_BIDS/sub-0196 -I 'nonBIDSified'
PREVENT_AD_BIDS/sub-0196
└── ses-01
    β”œβ”€β”€ anat
    β”‚   β”œβ”€β”€ sub-0196_ses-01_acq-MPRAGE_T1w.json
    β”‚   β”œβ”€β”€ sub-0196_ses-01_acq-MPRAGE_T1w.nii
    β”‚   β”œβ”€β”€ sub-0196_ses-01_acq-space_T2w.json
    β”‚   β”œβ”€β”€ sub-0196_ses-01_acq-space_T2w.nii
    β”‚   β”œβ”€β”€ sub-0196_ses-01_FLAIR.json
    β”‚   β”œβ”€β”€ sub-0196_ses-01_FLAIR.nii
    β”‚   β”œβ”€β”€ sub-0196_ses-01_inv-1_MP2RAGE.json
    β”‚   β”œβ”€β”€ sub-0196_ses-01_inv-1_MP2RAGE.nii
    β”‚   β”œβ”€β”€ sub-0196_ses-01_inv-2_MP2RAGE.json
    β”‚   β”œβ”€β”€ sub-0196_ses-01_inv-2_MP2RAGE.nii
    β”‚   β”œβ”€β”€ sub-0196_ses-01_T1map.json
    β”‚   β”œβ”€β”€ sub-0196_ses-01_T1map.nii
    β”‚   β”œβ”€β”€ sub-0196_ses-01_UNIT1.json
    β”‚   └── sub-0196_ses-01_UNIT1.nii
    β”œβ”€β”€ dwi
    β”‚   β”œβ”€β”€ sub-0196_ses-01_dir-PA_dwi.bval
    β”‚   β”œβ”€β”€ sub-0196_ses-01_dir-PA_dwi.bvec
    β”‚   β”œβ”€β”€ sub-0196_ses-01_dir-PA_dwi.json
    β”‚   └── sub-0196_ses-01_dir-PA_dwi.nii
    β”œβ”€β”€ fmap
    β”‚   β”œβ”€β”€ sub-0196_ses-01_dir-AP_epi.json
    β”‚   └── sub-0196_ses-01_dir-AP_epi.nii
    └── func
        β”œβ”€β”€ sub-0196_ses-01_task-rest_run-01_echo-01_bold.json
        β”œβ”€β”€ sub-0196_ses-01_task-rest_run-01_echo-01_bold.nii
        β”œβ”€β”€ sub-0196_ses-01_task-rest_run-01_echo-02_bold.json
        β”œβ”€β”€ sub-0196_ses-01_task-rest_run-01_echo-02_bold.nii
        β”œβ”€β”€ sub-0196_ses-01_task-rest_run-01_echo-03_bold.json
        └── sub-0196_ses-01_task-rest_run-01_echo-03_bold.nii

5 directories, 26 files

And here is the file tree one level deep for the bids data dir:

collhugh@albany:/lbc/lbc1/PREVENT_AD$ tree PREVENT_AD_BIDS -I 'nonBIDSified' -L 1
PREVENT_AD_BIDS
β”œβ”€β”€ allsubs.txt
β”œβ”€β”€ dataset_description.json
β”œβ”€β”€ fsissues
β”œβ”€β”€ ignore_derivatives
β”œβ”€β”€ README.md
β”œβ”€β”€ scripts
β”œβ”€β”€ sub-0002
β”œβ”€β”€ sub-0005
β”œβ”€β”€ sub-0010
β”œβ”€β”€ sub-0015
β”œβ”€β”€ sub-0018
β”œβ”€β”€ sub-0020
β”œβ”€β”€ sub-0026
β”œβ”€β”€ sub-0032
β”œβ”€β”€ sub-0033
β”œβ”€β”€ sub-0037
β”œβ”€β”€ sub-0039
β”œβ”€β”€ sub-0040
β”œβ”€β”€ sub-0041
β”œβ”€β”€ sub-0047
β”œβ”€β”€ sub-0051
β”œβ”€β”€ sub-0054
β”œβ”€β”€ sub-0062
β”œβ”€β”€ sub-0079
β”œβ”€β”€ sub-0080
β”œβ”€β”€ sub-0082
β”œβ”€β”€ sub-0085
β”œβ”€β”€ sub-0086
β”œβ”€β”€ sub-0101
β”œβ”€β”€ sub-0108
β”œβ”€β”€ sub-0112
β”œβ”€β”€ sub-0125
β”œβ”€β”€ sub-0128
β”œβ”€β”€ sub-0139
β”œβ”€β”€ sub-0157
β”œβ”€β”€ sub-0159
β”œβ”€β”€ sub-0160
β”œβ”€β”€ sub-0165
β”œβ”€β”€ sub-0166
β”œβ”€β”€ sub-0172
β”œβ”€β”€ sub-0173
β”œβ”€β”€ sub-0174
β”œβ”€β”€ sub-0177
β”œβ”€β”€ sub-0179
β”œβ”€β”€ sub-0181
β”œβ”€β”€ sub-0184
β”œβ”€β”€ sub-0186
β”œβ”€β”€ sub-0187
β”œβ”€β”€ sub-0190
β”œβ”€β”€ sub-0191
β”œβ”€β”€ sub-0194
β”œβ”€β”€ sub-0196
β”œβ”€β”€ sub-0198
β”œβ”€β”€ sub-0203
β”œβ”€β”€ sub-0212
β”œβ”€β”€ sub-0225
β”œβ”€β”€ sub-0228
β”œβ”€β”€ sub-0230
β”œβ”€β”€ sub-0235
β”œβ”€β”€ sub-0243
β”œβ”€β”€ sub-0249
β”œβ”€β”€ sub-0252
β”œβ”€β”€ sub-0254
β”œβ”€β”€ sub-0263
β”œβ”€β”€ sub-0264
β”œβ”€β”€ sub-0268
β”œβ”€β”€ sub-0271
β”œβ”€β”€ sub-0276
β”œβ”€β”€ sub-0278
β”œβ”€β”€ sub-0279
β”œβ”€β”€ sub-0282
β”œβ”€β”€ sub-0284
β”œβ”€β”€ sub-0287
β”œβ”€β”€ sub-0292
β”œβ”€β”€ sub-0297
β”œβ”€β”€ sub-0304
β”œβ”€β”€ sub-0308
β”œβ”€β”€ sub-0311
β”œβ”€β”€ sub-0317
β”œβ”€β”€ sub-0319
β”œβ”€β”€ sub-0333
β”œβ”€β”€ sub-0336
β”œβ”€β”€ sub-0343
β”œβ”€β”€ sub-0347
β”œβ”€β”€ sub-0348
β”œβ”€β”€ sub-0349
β”œβ”€β”€ sub-0350
β”œβ”€β”€ sub-0353
β”œβ”€β”€ sub-0354
β”œβ”€β”€ sub-0360
β”œβ”€β”€ sub-0363
β”œβ”€β”€ sub-0365
β”œβ”€β”€ sub-0366
β”œβ”€β”€ sub-0371
β”œβ”€β”€ sub-0374
β”œβ”€β”€ sub-0375
β”œβ”€β”€ sub-0376
β”œβ”€β”€ sub-0377
β”œβ”€β”€ sub-0380
β”œβ”€β”€ sub-0381
β”œβ”€β”€ sub-0384
β”œβ”€β”€ sub-0387
β”œβ”€β”€ sub-0390
β”œβ”€β”€ sub-0391
β”œβ”€β”€ sub-0392
β”œβ”€β”€ sub-0393
β”œβ”€β”€ sub-0394
β”œβ”€β”€ sub-0395
β”œβ”€β”€ sub-0403
β”œβ”€β”€ sub-0404
β”œβ”€β”€ sub-0409
β”œβ”€β”€ sub-0414
β”œβ”€β”€ sub-0425
β”œβ”€β”€ sub-0427
β”œβ”€β”€ sub-0431
β”œβ”€β”€ sub-0432
β”œβ”€β”€ sub-0442
β”œβ”€β”€ sub-0448
β”œβ”€β”€ sub-0453
β”œβ”€β”€ sub-0457
β”œβ”€β”€ sub-0458
β”œβ”€β”€ sub-0461
β”œβ”€β”€ sub-0462
β”œβ”€β”€ sub-0469
β”œβ”€β”€ sub-0473
β”œβ”€β”€ sub-0476
β”œβ”€β”€ sub-0488
β”œβ”€β”€ sub-0492
β”œβ”€β”€ sub-0494
β”œβ”€β”€ sub-0501
β”œβ”€β”€ sub-0504
β”œβ”€β”€ sub-0505
β”œβ”€β”€ sub-0509
β”œβ”€β”€ sub-0510
β”œβ”€β”€ sub-0520
β”œβ”€β”€ sub-0521
β”œβ”€β”€ sub-0527
β”œβ”€β”€ sub-0528
β”œβ”€β”€ sub-0529
β”œβ”€β”€ sub-0531
β”œβ”€β”€ sub-0534
β”œβ”€β”€ sub-0537
β”œβ”€β”€ sub-0538
β”œβ”€β”€ sub-0541
β”œβ”€β”€ sub-0544
β”œβ”€β”€ sub-0546
β”œβ”€β”€ sub-0550
β”œβ”€β”€ sub-0552
β”œβ”€β”€ sub-0555
β”œβ”€β”€ sub-0569
β”œβ”€β”€ sub-0572
β”œβ”€β”€ sub-0574
β”œβ”€β”€ sub-0580
β”œβ”€β”€ sub-0587
β”œβ”€β”€ sub-0588
β”œβ”€β”€ sub-0589
β”œβ”€β”€ sub-0595
β”œβ”€β”€ sub-0598
β”œβ”€β”€ sub-0599
β”œβ”€β”€ sub-0602
β”œβ”€β”€ sub-0603
β”œβ”€β”€ sub-0606
β”œβ”€β”€ sub-0607
β”œβ”€β”€ sub-0608
β”œβ”€β”€ sub-0609
β”œβ”€β”€ sub-0611
β”œβ”€β”€ sub-0622
β”œβ”€β”€ sub-0631
β”œβ”€β”€ sub-0632
β”œβ”€β”€ sub-0633
β”œβ”€β”€ sub-0634
β”œβ”€β”€ sub-0648
β”œβ”€β”€ sub-0649
β”œβ”€β”€ sub-0653
β”œβ”€β”€ sub-0663
β”œβ”€β”€ sub-0665
β”œβ”€β”€ sub-0668
β”œβ”€β”€ sub-0669
β”œβ”€β”€ sub-0672
β”œβ”€β”€ sub-0674
β”œβ”€β”€ sub-0681
β”œβ”€β”€ sub-0688
β”œβ”€β”€ sub-0694
β”œβ”€β”€ sub-0696
β”œβ”€β”€ sub-0703
β”œβ”€β”€ sub-0706
β”œβ”€β”€ sub-0709
β”œβ”€β”€ temp
└── weirdsubjs

186 directories, 3 files

And the contents of bidsignore

/sub-*/nonBIDSified/**
/scripts/**
/temp/**
/weirdsubjs/**
/ignore_derivatives/**
/fsissues/**
/allsubs.txt/