Dear experts,
I’m getting the following error on fMRIPrep ver 20.2.1:
/usr/local/miniconda/lib/python3.7/site-packages/bids/layout/validation.py:46: UserWarning: The ability to pass arguments to BIDSLayout that control indexing is likely to be removed in future; possibly as early as PyBIDS 0.14. This includes the `config_filename`, `ignore`, `force_index`, and `index_metadata` arguments. The recommended usage pattern is to initialize a new BIDSLayoutIndexer with these arguments, and pass it to the BIDSLayout via the `indexer` argument.
warnings.warn("The ability to pass arguments to BIDSLayout that control "
Traceback (most recent call last):
File "/usr/local/miniconda/bin/fmriprep", line 10, in <module>
sys.exit(main())
File "/usr/local/miniconda/lib/python3.7/site-packages/fmriprep/cli/run.py", line 17, in main
parse_args()
File "/usr/local/miniconda/lib/python3.7/site-packages/fmriprep/cli/parser.py", line 602, in parse_args
config.from_dict(vars(opts))
File "/usr/local/miniconda/lib/python3.7/site-packages/fmriprep/config.py", line 617, in from_dict
execution.load(settings)
File "/usr/local/miniconda/lib/python3.7/site-packages/fmriprep/config.py", line 218, in load
cls.init()
File "/usr/local/miniconda/lib/python3.7/site-packages/fmriprep/config.py", line 453, in init
re.compile(r"^\."),
File "/usr/local/miniconda/lib/python3.7/site-packages/bids/layout/layout.py", line 136, in __init__
root, description = validate_root(root, validate)
File "/usr/local/miniconda/lib/python3.7/site-packages/bids/layout/validation.py", line 83, in validate_root
description = json.load(desc_fd)
File "/usr/local/miniconda/lib/python3.7/json/__init__.py", line 296, in load
parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
File "/usr/local/miniconda/lib/python3.7/json/__init__.py", line 348, in loads
return _default_decoder.decode(s)
File "/usr/local/miniconda/lib/python3.7/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/local/miniconda/lib/python3.7/json/decoder.py", line 353, in raw_decode
obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting ',' delimiter: line 3 column 2 (char 20)
My .json file looks like this:
{
"Modality": "MR",
"MagneticFieldStrength": 3,
"ImagingFrequency": 123.219,
"Manufacturer": "Siemens",
"ManufacturersModelName": "Verio",
"InstitutionName": "REDACTED",
"InstitutionalDepartmentName": "Department",
"InstitutionAddress": "REDACTED",
"DeviceSerialNumber": "REDACTED",
"StationName": "REDACTED",
"PatientPosition": "HFS",
"ProcedureStepDescription": "Neuro_Brain_Research",
"SoftwareVersions": "syngo_MR_B19",
"MRAcquisitionType": "3D",
"SeriesDescription": "T1_MPR_SAG_EM",
"ProtocolName": "T1_MPR_SAG_EM",
"ScanningSequence": "GR_IR",
"SequenceVariant": "SP_MP",
"ScanOptions": "IR",
"SequenceName": "_tfl3d1_ns",
"ImageType": ["ORIGINAL", "PRIMARY", "M", "ND", "NORM"],
"SeriesNumber": 2,
"AcquisitionTime": "16:29:4.455000",
"AcquisitionNumber": 1,
"SliceThickness": 1,
"SAR": 0.039084,
"EchoTime": 0.0035,
"RepetitionTime": 2.53,
"InversionTime": 1.1,
"FlipAngle": 7,
"PartialFourier": 1,
"BaseResolution": 256,
"ShimSetting": [
-7175,
4960,
-9437,
153,
127,
-555,
800,
-112 ],
"TxRefAmp": 516.209,
"PhaseResolution": 1,
"ReceiveCoilName": "HeadMatrix",
"CoilString": "T:HEA;HEP",
"PulseSequenceDetails": "%SiemensSeq%_tfl",
"RefLinesPE": 32,
"PercentPhaseFOV": 100,
"PercentSampling": 100,
"PhaseEncodingSteps": 255,
"AcquisitionMatrixPE": 256,
"ReconMatrixPE": 256,
"ParallelReductionFactorInPlane": 2,
"PixelBandwidth": 190,
"DwellTime": 1.03e-05,
"ImageOrientationPatientDICOM": [
0,
0.999998,
-0.00174528,
0,
-0.00174528,
-0.999998 ],
"InPlanePhaseEncodingDirectionDICOM": "ROW",
"ConversionSoftware": "dcm2niix",
"ConversionSoftwareVersion": "v1.0.20200331"
}
Everything passes BIDS Validation, and I’ve gotten other data sets to run with identical-looking JSON files, so I’m a little stumped. Has anyone encountered this error?