I am trying to run ASL Prep and am having some trouble getting my json files to pass the BIDS validator. Specifically I get the error that the BackgroundSuppression and BolusCutOffFlag should be boolean. When I follow the guidance at this link GitHub - PennLINC/aslbids: New asl bids conversion it says the Background Suppression value should be Yes or No. I have tried entering No, 0, and False, all of which yield the same error as above. Any advice would be greatly appreciated!
I am now encountering another similar BIDS issue. The ArterialSpinLabelingType is PASL, when I include the LabelingDuration in the json file I get the following BIDS validator error:
[ERR] You defined one of the not allowed fields in case of PASL âArterialSpinLabelingTypeâ. Please verify which field among âCASLTypeâ, âPCASLTypeâ âLabelingPulseAverageGradientâ, âLabelingPulseMaximumGradientâ, âLabelingPulseAverageB1â, âLabelingPulseDurationâ, âLabelingPulseFlipAngleâ, âLabelingPulseIntervalâ, âLabelingDurationâ you have filled. (code: 190 - PASL_NOT_ALLOWED_FIELDS)
So I removed Labeling Duration from the json file (it is the only one of the not allowed fields that I had included). However, once I do this I get the below error:
âMetadata term {!r} unavailable for file {}.â.format(key, self._source_file))
KeyError: "Metadata term âLabelingDurationâ unavailable
The second error does not come from the BIDS validator, when I remove the Labeling duration it does pass the BIDS validator. Below is the full traceback:
Running ASLPREP version 0.2.8:
* BIDS dataset path: /data/rawdata.
* Participant list: [â2001â].
* Run identifier: 20230412-144330_cc36e934-3f7e-4755-bb87-dc72bdd5dfc3.
* Output spaces: MNI152NLin2009cAsym:res-native.
230412-14:45:33,688 nipype.workflow INFO:
No single-band-reference found for sub-2001_ses-01_asl.nii.gz.
Process Process-2:
Traceback (most recent call last):
File â/usr/local/miniconda/lib/python3.7/site-packages/bids/layout/utils.pyâ, line 17, in getitem
return super().getitem(key)
KeyError: âLabelingDurationâ
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File â/usr/local/miniconda/lib/python3.7/multiprocessing/process.pyâ, line 297, in _bootstrap
self.run()
File â/usr/local/miniconda/lib/python3.7/multiprocessing/process.pyâ, line 99, in run
self._target(*self._args, **self._kwargs)
File â/usr/local/miniconda/lib/python3.7/site-packages/aslprep/cli/workflow.pyâ, line 80, in build_workflow
retval[âworkflowâ] = init_aslprep_wf()
File â/usr/local/miniconda/lib/python3.7/site-packages/aslprep/workflows/base.pyâ, line 53, in init_aslprep_wf
single_subject_wf = init_single_subject_wf(subject_id)
File â/usr/local/miniconda/lib/python3.7/site-packages/aslprep/workflows/base.pyâ, line 277, in init_single_subject_wf
asl_preproc_wf = init_asl_preproc_wf(asl_file)
File â/usr/local/miniconda/lib/python3.7/site-packages/aslprep/workflows/asl/base.pyâ, line 528, in init_asl_preproc_wf
metadata=metadata)
File â/usr/local/miniconda/lib/python3.7/site-packages/aslprep/workflows/asl/cbf.pyâ, line 114, in init_cbf_compt_wf
basilcbf = pe.Node(BASILCBF(m0scale=M0Scale, bolus=metadata[âLabelingDurationâ],
File â/usr/local/miniconda/lib/python3.7/site-packages/bids/layout/utils.pyâ, line 20, in getitem
âMetadata term {!r} unavailable for file {}.â.format(key, self._source_file))
KeyError: âMetadata term âLabelingDurationâ unavailable for file /data/rawdata/sub-2001/ses-01/perf/sub-2001_ses-01_asl.nii.gz.â
Ah, I see. That was a bug in ASLPrep that should be fixed in the most recent release (0.3.0). However, I have had to temporarily disable multi-PostLabelingDelay support, along with Q2TIPS support. I will hopefully be able to fix issues related to those two paradigms for the next release.
Hello! I am encountering another ASL prep/json related issue â
I have gotten my script to start running and everything passes the BIDS validator, but it runs for about 10-20 minutes, then throws the following error
elif metadata[âBolusCutOffTechniqueâ] == âQUIPSSâ:
KeyError: âBolusCutOffTechniqueâ
I have my BolusCutOffFlag set to false, so I did not include the BolusCutOffTechnique in my json file. Any advice on how to fix this error would be greatly appreciated! Thanks!
@Emily_DeLuca ASLPrep doesnât currently support PASL without a bolus cutoff method. However, Iâm happy to work on implementing that if itâs a priority. Could you open an issue in the repository requesting this?