SliceTiming question

Summary of what happened:

Hi,

I’m running ASLPrep v25.1.0 on 2D multi-band (MB=6) multi-PLD pCASL data. My ASL JSON includes both the multiband factor and the slice timing field:

"MultibandAccelerationFactor": 6,
"SliceTiming": [
    0, 0.06, 0.12, 0.1775, 0.2375, 0.2975, 0.355, 0.415, 0.4725, 0.5325,
    0, 0.06, 0.12, 0.1775, 0.2375, 0.2975, 0.355, 0.415, 0.4725, 0.5325,
    0, 0.06, 0.12, 0.1775, 0.2375, 0.2975, 0.355, 0.415, 0.4725, 0.5325,
    0, 0.06, 0.12, 0.1775, 0.2375, 0.2975, 0.355, 0.415, 0.4725, 0.5325,
    0, 0.06, 0.12, 0.1775, 0.2375, 0.2975, 0.355, 0.415, 0.4725, 0.5325,
    0, 0.06, 0.12, 0.1775, 0.2375, 0.2975, 0.355, 0.415, 0.4725, 0.5325
]

However, I can see in the log file:

Slice times are not ascending. They will be ignored in the BASIL call.

I am wondering if the SliceTiming array for multi-band data should include only one pattern (one band’s worth of values)? And if ASLPrep automatically replicates the pattern internally using the MultibandAccelerationFactor?

Command used (and if a helper script was used, a link to the helper script or the command generated):

# Environment variables
export FS_LICENSE= /FreeSurferLicense/license.txt
export TEMPLATEFLOW_HOME=/analysis/templateflow
export APPTAINERENV_FS_LICENSE=/freesurfer_license/license.txt
export APPTAINERENV_TEMPLATEFLOW_HOME=/templateflow

#  Paths
ASLPREP_IMG=/analysis/ASLprep/aslprep-25.1.0.sif
BIDS_DIR=/analysis/ASLprep/test
OUT_DIR=${BIDS_DIR}/output
WORK_DIR=${BIDS_DIR}/work

# Run ASLPrep
apptainer run --cleanenv \
  --env TEMPLATEFLOW_HOME=/templateflow \
  --bind ${BIDS_DIR}:/data:ro \
  --bind ${OUT_DIR}:/out \
  --bind ${WORK_DIR}:/work \
  --bind /analysis/ASLprep/FreeSurferLicense:/freesurfer_license \
  --bind /analysis/templateflow:/templateflow \
  ${ASLPREP_IMG} \
  /data /out participant \
  --participant-label XX \
  --skip_bids_validation \
  --output-spaces T1w \
  --basil \
  --n_cpus 16 \
  --fs-license-file /freesurfer_license/license.txt \
  --work-dir /work \
  --clean-workdir

Version:

ASLPrep (v25.1.0)

Environment (Docker, Singularity / Apptainer, custom installation):

Apptainer

Data formatted according to a validatable standard? Please provide the output of the validator:

PASTE VALIDATOR OUTPUT HERE

Relevant log outputs (up to 20 lines):

251109-17:42:03,309 nipype.utils WARNING:
	 Slice times are not ascending. They will be ignored in the BASIL call.

Screenshots / relevant information:


The differences in the slice times vary between 0.0575 and 0.06, so ASLPrep is flagging them as not linearly increasing within each slice group.

Oh, I see.

Thank you for your time,

-Cindy

@cindylucerog it looks like you have 60 slices with a MB=6. To paraphrase Ben Inglis: To get symmetric excitation and relaxation across the slice dimension, the number of slices divided by MB factor should be odd, and you’ve got 60/6 = 10. For future acquisitions, if you can set these to 54 or 66, you’ll reduce the amount of striping in the event of significant head movement along the slice direction (It’s a similar argument to using contiguous versus interleaved slices for regular multislice EPI). See Fig 3 of this review from Barth et al.

From your description and your reported slice times, it seems like you are using a Siemens scanner. Note that recent GE software uses unintuitive slice times in these situations (see Figure 6 of GEHC_fMRI_Slice_Timing_Info.pdf)

1 Like