Multiband factor incorrect after afni_proc.py

AFNI version info (afni -ver): AFNI_26.0.09 'Pupienus Maximus'

Hi AFNI experts,

I am preprocessing some mulitband, multi-echo fMRI data using afni_proc.py. Everything seems to have gone smoothly and the QC outputs look reasonable. However, at the end of the QC HTML file, in the summary from @ss_review_basic, the key "multiband level" has a value of 0. I know for a fact that in the BIDS sidecar .json files, the "MultibandAccelerationFactor" key has a value of 2.

If it is relevant, I used abids_tool.py to apply the slice times from the .json sidecar to the NIFTI header.

Is something going wrong with how AFNI is reading info from my BIDS sidecar files? And more importantly, will this have any kind of impact on the performance of afni_proc.py?

Thanks!

Ryann

1 Like

Hi Ryann,

To be sure, what is the actual slice timing? If it is not close enough to regular, the estimation can be fooled. Note that this does not affect 3dTshift, which is the only place where the timing is applied.

3dinfo -slice_timing DATASET

Thanks,

-rick

Hey Rick,

This is the slice timing from the .json files. In the same @ss_review_basic, it has "slice timing pattern" as "irregular" :

t"SliceTiming": [
		0,
		1.2,
		0.0923077,
		1.29231,
		0.184615,
		1.38462,
		0.276923,
		1.47692,
		0.369231,
		1.56923,
		0.461538,
		1.66154,
		0.553846,
		1.75385,
		0.646154,
		1.84615,
		0.738462,
		1.93846,
		0.830769,
		2.03077,
		0.923077,
		2.12308,
		1.01538,
		2.30769,
		1.10769,
		2.21538,
		0,
		1.2,
		0.0923077,
		1.29231,
		0.184615,
		1.38462,
		0.276923,
		1.47692,
		0.369231,
		1.56923,
		0.461538,
		1.66154,
		0.553846,
		1.75385,
		0.646154,
		1.84615,
		0.738462,
		1.93846,
		0.830769,
		2.03077,
		0.923077,
		2.12308,
		1.01538,
		2.30769,
		1.10769	]

Thanks!

Ryann

Oh, I have been wondering about this. You have MB 2 but 51 slices. I wasn't sure if that would even be allowed (the number of slices is not a multiple of the MB factor). That might be a waste of a free slice.

So this is on me, I will have to update 1d_tool.py to avoid this assumption. In any case, it should not affect your analysis, just that final report entry.

Thanks for bringing it up.

-rick

Just chiming in to ask the following:

What scanner was this collected on? It would be very unusual to have an odd number of slices with multi-band of 2. I suppose the scanner could have collected an even number and then just thrown one away.

If you could - please share the entire json sidecar.

Hi @pmolfese - it's a GE SIGNA UHP. Fairly new, was installed at our centre in early April 2024.

Thanks!

Ryann

Here is the json sidecar: (some identifying info removed). We also know that the DICOMS are not registering the Manufacturer Model Name correctly already.

{
	"Modality": "MR",
	"MagneticFieldStrength": 3,
	"ImagingFrequency": 127.783666,
	"Manufacturer": "GE",
	"InternalPulseSequenceName": "EPI",
	"ManufacturersModelName": "Discovery MR750",
	"DeviceSerialNumber": "0000000403944MR1",
	"StationName": "MRGESEA1",
	"BodyPart": "BRAIN",
	"PatientPosition": "HFS",
	"ProcedureStepDescription": "DEVELOPMENTGradient Echo",
	"SoftwareVersions": "30\\LX\\SIGNA_LX1.MR30.1_R01_2322.c",
	"MRAcquisitionType": "2D",
	"StudyDescription": "DEVELOPMENT-(DEVELOPMENT_26019)",
	"SeriesDescription": "PARTLY_CLOUDY_HyperMEPI-3MM-4ECHO",
	"ScanningSequence": "EP\\RM",
	"SequenceVariant": "NONE",
	"ScanOptions": "SAT_GEMS\\EDR_GEMS\\MP_GEMS\\EPI_GEMS\\HYPERBAND_GEMS\\ACC_GEMS\\FS",
	"PulseSequenceName": "research/hypermepi",
	"ImageType": ["ORIGINAL", "PRIMARY", "OTHER", "MAGNITUDE"],
	"SeriesNumber": 7,
	"AcquisitionTime": "14:13:22.000000",
	"AcquisitionNumber": 1,
	"TriggerDelayTime": 1.19871e+06,
	"SliceThickness": 3,
	"SpacingBetweenSlices": 3,
	"SAR": 0.224659,
	"TablePosition": [
		0,
		0,
		-24.8552	],
	"EchoNumber": 1,
	"EchoTime": 0.0131,
	"RepetitionTime": 2.4,
	"FlipAngle": 70,
	"PhaseEncodingPolarityGE": "Unflipped",
	"ShimSetting": [
		-4,
		50,
		-181	],
	"PrescanReuseString": "TG/s4,RN/s3,Cal/s4,Coil/s1",
	"CoilString": "48HAP",
	"MultibandAccelerationFactor": 2,
	"PercentPhaseFOV": 100,
	"PercentSampling": 100,
	"AcquisitionMatrixPE": 70,
	"ReconMatrixPE": 70,
	"ParallelReductionFactorInPlane": 2,
	"EffectiveEchoSpacing": 0.000233333,
	"AcquisitionDuration": 300,
	"TotalReadoutTime": 0.0161,
	"PixelBandwidth": 7142.86,
	"PhaseEncodingDirection": "j-",
	"SliceTiming": [
		0,
		1.2,
		0.0923077,
		1.29231,
		0.184615,
		1.38462,
		0.276923,
		1.47692,
		0.369231,
		1.56923,
		0.461538,
		1.66154,
		0.553846,
		1.75385,
		0.646154,
		1.84615,
		0.738462,
		1.93846,
		0.830769,
		2.03077,
		0.923077,
		2.12308,
		1.01538,
		2.30769,
		1.10769,
		2.21538,
		0,
		1.2,
		0.0923077,
		1.29231,
		0.184615,
		1.38462,
		0.276923,
		1.47692,
		0.369231,
		1.56923,
		0.461538,
		1.66154,
		0.553846,
		1.75385,
		0.646154,
		1.84615,
		0.738462,
		1.93846,
		0.830769,
		2.03077,
		0.923077,
		2.12308,
		1.01538,
		2.30769,
		1.10769	],
	"ImageOrientationPatientDICOM": [
		0.99873,
		-0.02968,
		0.04079,
		0.03214,
		0.99762,
		-0.06106	],
	"InPlanePhaseEncodingDirectionDICOM": "COL",
	"BidsGuess": ["func","_acq-MEPIp2m2_dir-AP_run-7_echo-1_bold"],
	"ConversionSoftware": "dcm2niix",
	"ConversionSoftwareVersion": "v1.0.20250505"
}