Problems implementing top up scan in fmriprep 21.0.1

Dear all,

Since the new update of fmriprep 21.0.1 we are trying to preprocess our data with the top up scans. We tried it on two separate sessions of one subject first to see whether it works. On one of them, it worked and gave the right output, but on the other it did not work.
Here the trees for the two sessions:
/dbstore/Rijnstate/SYNAPSE/BIDS4/sub-0071 (for this session it works!)
├── anat
│ ├── sub-0071_T1w.json
│ └── sub-0071_T1w.nii.gz
├── fmap
│ ├── sub-0071_dir-AP_epi.json
│ └── sub-0071_dir-AP_epi.nii.gz
└── func
├── sub-0071_task-rest_bold.json
└── sub-0071_task-rest_bold.nii.gz

/dbstore/Rijnstate/SYNAPSE/BIDS4/sub-0073 (for this session it does not work…)
├── anat
│ ├── sub-0073_T1w.json
│ └── sub-0073_T1w.nii.gz
├── fmap
│ ├── sub-0073_dir-AP_epi.json
│ └── sub-0073_dir-AP_epi.nii.gz
└── func
├── sub-0073_task-rest_bold.json
└── sub-0073_task-rest_bold.nii.gz

Both _epi.json files are identical expect from the field ’ IntendedFor ’ .
For the second session (0073), we do not get an error, but the top up scan is simply not taken into account.
The data are conform BIDS structure.

Thanks for your help!

What are in the intended for fields for the working and non-working fmaps?

Hi Steven,
Thanks for the quick reply. Here the json file of the working session:
{
“EstimatedTotalReadoutTime”: 0.0240456,
“TotalReadoutTime”: 0.0240456,
“PhaseEncodingDirection”: “j-”,
“IntendedFor”: “func/sub-0071_task-rest_bold.nii.gz”
}

And here for the non-working session:
{
“EstimatedTotalReadoutTime”: 0.0240198,
“TotalReadoutTime”: 0.0240198,
“PhaseEncodingDirection”: “j-”,
“IntendedFor”: “func/sub-0073_task-rest_bold.nii.gz”
}

Hmm, that looks right. Can you confirm that the phase encoding directions of both BOLD runs are j+?

Dear Steven,

Thanks for thinking along with our problem. We solved it, by deleted the field EstimatedTotalReadoutTime that was still in the json files of our BOLDs. TotalReadoutTime was also a key in the json files, but apparently 2 of these keys were one too many. It works now! So we need to have the exact same fields in both, the top up and the BOLD jsons.

Best, Julia

Hi @Steven and @Julia_Pottkamper, I seem to be having a similar problem to Julia, expect that my .json’s don’t have an ‘EstimatedTotalReadoutTime’ in them. fmriprep is running well but ignoring my fmap’s and not performing susceptibility correction. Any advice?

My directory structure is:

├── anat
│ ├── sub-AUD4_ses-Preop_T1w.json
│ └── sub-AUD4_ses-Preop_T1w.nii.gz
├── fmap
│ ├── sub-AUD4_ses-Preop_acq-eyes_run-1_dir-AP_epi.json
│ └── sub-AUD4_ses-Preop_acq-eyes_run-1_dir-AP_epi.nii.gz
│ ├── sub-AUD4_ses-Preop_acq-eyes_run-1_dir-PA_epi.json
│ └── sub-AUD4_ses-Preop_acq-eyes_run-1_dir-PA_epi.nii.gz
└── func
├── sub-AUD4_ses-Preop_task-eyes_acq-TR1750_run-1_bold.json
└── sub-AUD4_ses-Preop_task-eyes_acq-TR1750_run-1_bold.nii.gz

My .json for the fmap “sub-AUD4_ses-Preop_acq-eyes_run-1_dir-AP_epi.json” is:
{


	"Modality": "MR",
	"MagneticFieldStrength": 3,
	"ImagingFrequency": 123.25,
	"Manufacturer": "Siemens",
	"ManufacturersModelName": "Prisma",
	"InstitutionName": "Sunnybrook_Research_Institute",
	"InstitutionalDepartmentName": "HEALTH_SCIENCE_CENTRE",
	"InstitutionAddress": "Bayview_Avenue_2075_Toronto_Ontario_CA_M4N_3M5",
	"DeviceSerialNumber": "66049",
	"StationName": "AWP66049",
	"BodyPartExamined": "BRAIN",
	"PatientPosition": "HFS",
	"ProcedureStepDescription": "RESEARCH_DBSA1F",
	"SoftwareVersions": "syngo_MR_E11",
	"MRAcquisitionType": "2D",
	"SeriesDescription": "ep2d_bold_p2_s2_iso2.5_eyes_open_resting",
	"ProtocolName": "ep2d_bold_p2_s2_iso2.5_eyes_open_resting",
	"ScanningSequence": "EP",
	"SequenceVariant": "SK",
	"ScanOptions": "FS",
	"SequenceName": "_epfid2d1_80",
	"ImageType": ["ORIGINAL", "PRIMARY", "M", "ND", "MOSAIC"],
	"SeriesNumber": 16,
	"AcquisitionTime": "09:50:19.820000",
	"AcquisitionNumber": 1,
	"SliceThickness": 2.5,
	"SpacingBetweenSlices": 2.5,
	"SAR": 0.0363053,
	"EchoTime": 0.03,
	"RepetitionTime": 1.75,
	"FlipAngle": 40,
	"PartialFourier": 1,
	"BaseResolution": 80,
	"ShimSetting": [
		-254,
			-9666,
		2642,
		377,
		-76,
		18,
		-38,
		-17	],
	"TxRefAmp": 301.512,
	"PhaseResolution": 1,
	"ReceiveCoilName": "HeadNeck_20",
	"ReceiveCoilActiveElements": "HE1-4",
	"PulseSequenceDetails": "%SiemensSeq%_ep2d_bold",
	"RefLinesPE": 32,
	"ConsistencyInfo": "N4_VE11C_LATEST_20160120",
	"MultibandAccelerationFactor": 2,
	"PercentPhaseFOV": 100,
	"PercentSampling": 100,
	"EchoTrainLength": 39,
	"PhaseEncodingSteps": 79,
	"AcquisitionMatrixPE": 80,
	"ReconMatrixPE": 80,
	"BandwidthPerPixelPhaseEncode": 51.02,
	"ParallelReductionFactorInPlane": 2,
	"EffectiveEchoSpacing": 0.000245002,
	"DerivedVendorReportedEchoSpacing": 0.000490004,
	"TotalReadoutTime": 0.0193552,
	"PixelBandwidth": 2500,
	"DwellTime": 2.5e-06,
	"PhaseEncodingDirection": "j-",
	"SliceTiming": [
		1.2675,
		0,
		0.865,
		0.0575,
		0.9225,
		0.115,
		0.98,
		0.1725,
		1.0375,
		0.23,
		1.095,
		0.2875,
		1.1525,
		0.345,
		1.21,
		0.46,
		1.325,
		0.5175,
		1.3825,
		0.575,
		1.44,
		0.6325,
		1.4975,
		0.69,
		1.555,
		0.75,
		1.6125,
		0.8075,
		1.6725,
		0.4025,
		1.2675,
		0,
		0.865,
		0.0575,
		0.9225,
		0.115,
		0.98,
		0.1725,
		1.0375,
		0.23,
		1.095,
		0.2875,
		1.1525,
		0.345,
		1.21,
		0.46,
		1.325,
		0.5175,
		1.3825,
		0.575,
		1.44,
		0.6325,
		1.4975,
		0.69,
		1.555,
		0.75,
		1.6125,
		0.8075,
		1.6725,
		0.4025	],
	"ImageOrientationPatientDICOM": [
		0.996142,
		0.0108095,
		0.0870912,
		-0.00347717,
		0.996467,
		-0.0839073	],
	"InPlanePhaseEncodingDirectionDICOM": "COL",
	"ConversionSoftware": "dcm2niix",
	"ConversionSoftwareVersion": "v1.0.20200331"
, "IntendedFor": "sub-AUD4_ses-Preop_task-eyes_acq-TR1750_crun-1_bold.nii.gz"
}

Hi @Benjamin_Davidson,

Your intended for field is not set correctly. It should contain the path to the file relative to inside the subjects folder (so beginning with the session folder if applicable).

In the future, please format your text as code using the </> button in the text editor. You can see I did that for you this time.

Best,
Steven

Aha! Thank you! I will try that!