BIDS validator: error code 90 with physio files

Hi,
I got an inconsistant error from the docker bids validator, while the online version of the bids validator does not give any error nor warning for the the same dataset.
Output of the docker BIDS-validator (pulled today, December 18th 2018):

1: [ERR] A json sidecar file was found without a corresponding data file (code: 90 - SIDECAR_WITHOUT_DATAFILE)
	./sub-11/func/sub-11_task-random_run-01_recording-cardiac_physio.json
		A json sidecar file was found without a corresponding data file
	./sub-11/func/sub-11_task-random_run-01_recording-respiratory_physio.json
		A json sidecar file was found without a corresponding data file

1: [WARN] Tabular file contains custom columns not described in a data dictionary (code: 82 - CUSTOM_COLUMN_WITHOUT_DESCRIPTION)
	./sub-11/func/sub-11_task-random_run-01_events.tsv
		Tabular file contains custom columns not described in a data dictionary not defined, please define in: /sub-11/func/sub-11_events.json, /sub-11/func/sub-11_task-random_events.json,/sub-11/sub-11_events.json,/sub-11/sub-11_task-random_events.json,/events.json,/task-random_events.json,/sub-11/func/sub-11_task-random_run-01_events.json

    Summary:                  Available Tasks:        Available Modalities: 
    16 Files, 284.73MB        random                  bold                  
    1 - Subject                                       sbref                                                        

Here is a screenshot of the output of the online validator (same dataset)

Not a big deal, I am used to use the online validator for my datasets, just to let you know…

thanks for reporting. Does your dataset include ./sub-11/func/sub-11_task-random_run-01_recording-cardiac_physio.tsv.gz file?

Yes it does contain both:
./sub-11/func/sub-11_task-random_run-01_recording-cardiac_physio.tsv.gz
and
./sub-11/func/sub-11_task-random_run-01_recording-respiratory_physio.tsv.gz

Hi there,

I still have the same error as of today with BIDS validator1.5.6.
This is now an error code 1.
Can any one can tell me what is wrong there?
Thank you!

sub-01_task-ecriture_run-01_recording-cardiac_physio.json 0.09 KB | application/json

Location:

EcriPark/sub-01/func/sub-01_task-ecriture_run-01_recording-cardiac_physio.json

Reason:

Files with such naming scheme are not part of BIDS specification. This error is most commonly caused by typos in file names that make them not BIDS compatible. Please consult the specification and make sure your files are named correctly. If this is not a file naming issue (for example when including files not yet covered by the BIDS specification) you should include a β€œ.bidsignore” file in your dataset (see https://github.com/bids-standard/bids-validator#bidsignore for details). Please note that derived (processed) data should be placed in /derivatives folder and source data (such as DICOMS or behavioural logs in proprietary formats) should be placed in the /sourcedata folder.

Evidence:

sub-01_task-ecriture_run-01_recording-cardiac_physio.json

sub-01_task-ecriture_run-01_recording-cardiac_physio.tsv.gz 137.513 KB | application/x-gzip

Location:

EcriPark/sub-01/func/sub-01_task-ecriture_run-01_recording-cardiac_physio.tsv.gz

Reason:

Files with such naming scheme are not part of BIDS specification. This error is most commonly caused by typos in file names that make them not BIDS compatible. Please consult the specification and make sure your files are named correctly. If this is not a file naming issue (for example when including files not yet covered by the BIDS specification) you should include a β€œ.bidsignore” file in your dataset (see https://github.com/bids-standard/bids-validator#bidsignore for details). Please note that derived (processed) data should be placed in /derivatives folder and source data (such as DICOMS or behavioural logs in proprietary formats) should be placed in the /sourcedata folder.

Evidence:

sub-01_task-ecriture_run-01_recording-cardiac_physio.tsv.gz

Hi @jsein

Thank you for your message! The naming looks good (I presume your bold file is named: sub-01_task-ecriture_run-01_bold.nii.gz?) - perhaps @rwblair may see something?

Thank you,
Franklin

I was able to replicate. Doesn’t look like the recording key word was used in our example datasets. I’ll fix the regex, add a test, and make a new release.

1 Like

Thank you for your answer. Here is an overview of the func directory:
I get an error for each single physio file there. Thank you for your help.

└── func
β”œβ”€β”€ sub-01_task-ecriture_run-01_bold.json
β”œβ”€β”€ sub-01_task-ecriture_run-01_bold.nii.gz
β”œβ”€β”€ sub-01_task-ecriture_run-01_events.tsv
β”œβ”€β”€ sub-01_task-ecriture_run-01_recording-cardiac_physio.json
β”œβ”€β”€ sub-01_task-ecriture_run-01_recording-cardiac_physio.tsv.gz
β”œβ”€β”€ sub-01_task-ecriture_run-01_recording-respiratory_physio.json
β”œβ”€β”€ sub-01_task-ecriture_run-01_recording-respiratory_physio.tsv.gz
β”œβ”€β”€ sub-01_task-ecriture_run-01_sbref.json
β”œβ”€β”€ sub-01_task-ecriture_run-01_sbref.nii.gz
β”œβ”€β”€ sub-01_task-ecriture_run-02_bold.json
β”œβ”€β”€ sub-01_task-ecriture_run-02_bold.nii.gz
β”œβ”€β”€ sub-01_task-ecriture_run-02_events.tsv
β”œβ”€β”€ sub-01_task-ecriture_run-02_recording-cardiac_physio.json
β”œβ”€β”€ sub-01_task-ecriture_run-02_recording-cardiac_physio.tsv.gz
β”œβ”€β”€ sub-01_task-ecriture_run-02_recording-respiratory_physio.json
β”œβ”€β”€ sub-01_task-ecriture_run-02_recording-respiratory_physio.tsv.gz
β”œβ”€β”€ sub-01_task-ecriture_run-02_sbref.json
β”œβ”€β”€ sub-01_task-ecriture_run-02_sbref.nii.gz
β”œβ”€β”€ sub-01_task-ecriture_run-03_bold.json
β”œβ”€β”€ sub-01_task-ecriture_run-03_bold.nii.gz
β”œβ”€β”€ sub-01_task-ecriture_run-03_events.tsv
β”œβ”€β”€ sub-01_task-ecriture_run-03_recording-cardiac_physio.json
β”œβ”€β”€ sub-01_task-ecriture_run-03_recording-cardiac_physio.tsv.gz
β”œβ”€β”€ sub-01_task-ecriture_run-03_recording-respiratory_physio.json
β”œβ”€β”€ sub-01_task-ecriture_run-03_recording-respiratory_physio.tsv.gz
β”œβ”€β”€ sub-01_task-ecriture_run-03_sbref.json
β”œβ”€β”€ sub-01_task-ecriture_run-03_sbref.nii.gz
β”œβ”€β”€ sub-01_task-ecriture_run-04_bold.json
β”œβ”€β”€ sub-01_task-ecriture_run-04_bold.nii.gz
β”œβ”€β”€ sub-01_task-ecriture_run-04_events.tsv
β”œβ”€β”€ sub-01_task-ecriture_run-04_recording-cardiac_physio.json
β”œβ”€β”€ sub-01_task-ecriture_run-04_recording-cardiac_physio.tsv.gz
β”œβ”€β”€ sub-01_task-ecriture_run-04_recording-respiratory_physio.json
β”œβ”€β”€ sub-01_task-ecriture_run-04_recording-respiratory_physio.tsv.gz
β”œβ”€β”€ sub-01_task-ecriture_run-04_sbref.json
β”œβ”€β”€ sub-01_task-ecriture_run-04_sbref.nii.gz
β”œβ”€β”€ sub-01_task-ecriture_run-05_bold.json
β”œβ”€β”€ sub-01_task-ecriture_run-05_bold.nii.gz
β”œβ”€β”€ sub-01_task-ecriture_run-05_events.tsv
β”œβ”€β”€ sub-01_task-ecriture_run-05_recording-cardiac_physio.json
β”œβ”€β”€ sub-01_task-ecriture_run-05_recording-cardiac_physio.tsv.gz
β”œβ”€β”€ sub-01_task-ecriture_run-05_recording-respiratory_physio.json
β”œβ”€β”€ sub-01_task-ecriture_run-05_recording-respiratory_physio.tsv.gz
β”œβ”€β”€ sub-01_task-ecriture_run-05_sbref.json
└── sub-01_task-ecriture_run-05_sbref.nii.gz

Also, using the bids validator singularity and running Bids-validator 1.5.2, on the same directory, this error doesn’t occur and the project passes the BIDS validator!

With the version 1.5.7 of the web browser of the bids validator, I found my answer: the json file related to the physiological files was not correctly formatted: The value for β€œColumns” must be an array:
"Columns" : [
β€œcardiac”
]

and not a single value:

"Columns" : β€œcardiac”

Thanks to a better description of the error message, my problem is solved. Thanks!

1 Like

cool that you caught the issue. We also updated the BIDS spec a couple of weeks ago so that tables include a column on how a field is to be formatted in terms of its datatype.

For example:

You’ll see that Columns needs to be an array of strings. So hopefully this relatively new feature of the BIDS specification will prevent issues like yours in the future.

see: https://bids-specification.readthedocs.io/en/latest/04-modality-specific-files/06-physiological-and-other-continuous-recordings.html