qsiprep icon indicating copy to clipboard operation
qsiprep copied to clipboard

Bad slices in qsiprep processed data

Open WilliamFCB opened this issue 3 years ago • 10 comments

Hi

I successfully ran qsiprep. However, in one particular data set, in contrast with other data sets, I found in many cases bad slices after correction (t1_num_bad_slices) For example, one subject without raw_bad_slices and a fd_mean of .65 with apparent visually nice raw data, had 20 bad slices after correction.

It appears that a stripped pattern has been introduced (see image) image

Any idea what might have caused this? Interpolation error, overcorrection? See qsiprep singularity and eddy parameter settings below.

Thanks William

singularity run --cleanenv --contain
-B ${TOOLS_DIR}
-B ${BIDS_DIR_TMP}:/data_in
-B ${BIDS_DIR}:${BIDS_DIR}
-B ${SCRIPTS_DIR}:${SCRIPTS_DIR}
-B ${OUTPUT_DIR}:/data_out
-B ${WORK_DIR}:/work
-B /tmp:/tmp
/mrhome/wimb/qsiprep/qsiprep-0.12.2_fsl-6.0.4-patch.sif
/data_in
/data_out
participant
-w /work
--participant-label ${sub}${ses/-/}
--skip_bids_validation
--use-plugin ${SCRIPTS_DIR}/tmp/qsiprep_plugin/${sub}_${ses}qsiprep_plugin.yml
--fs-license-file ${TOOLS_DIR}/freesurfer/freesurfer.6.0.0/license.txt
--unringing-method mrdegibbs
--dwi-denoise-window 5
--output-resolution 2
--hmc-model eddy
--eddy_config ${SCRIPTS_DIR}/tmp/eddy_params/${sub}
${ses}_eddy_params.json
--output-space T1w
--nthreads ${SLURM_CPUS_PER_TASK}
-vv

Eddy param:

{ "flm": "quadratic", "slm": "SLM_REPLACE", "fep": false, "interp": "spline", "nvoxhp": 1000, "fudge_factor": 10, "dont_sep_offs_move": false, "dont_peas": false, "niter": 8, "method": "jac", "repol": true, "num_threads": NUM_THREADS_REPLACE, "is_shelled": false, "use_cuda": USE_CUDA_OPTION, "cnr_maps": true, "residuals": false, "output_type": "NIFTI_GZ", "args": "--very_verbose --fwhm=10,6,4,2,0,0,0,0 --ol_type=both --mporder=8 --s2v_niter=8 --slspec=SLSPEC_FILE_REPLACE --estimate_move_by_susceptibility" }

WilliamFCB avatar Feb 04 '22 12:02 WilliamFCB

Hi @WilliamFCB, this is the most advanced eddy setup I've seen! Do you still see the striping artifact without adding the extra args?

mattcieslak avatar Feb 04 '22 14:02 mattcieslak

Hi Matt, Would have to check that ..... However, might be something with the particular data sets. I haven't seen it before in other large data sets I processed with the same settings. I was just wondering if you had encountered this at some point or might have an idea in which direction to look .... I will keep you posted Thanks!

WilliamFCB avatar Feb 06 '22 20:02 WilliamFCB

Hi @WilliamFCB , what is the multi-band acceleration factor for your data? The eddy user guide says mporder should be at most N-1, where N is the multiband excitation factor.

cookpa avatar Feb 17 '22 20:02 cookpa

Thanks @cookpa, I would have to look it up. By the way, I haven't had the time to look more into this issue, but I found out that the image I uploaded was due to issues with fsleyes. Of course, this does not change the fact I have a lot to bad slices after running qsiprep. Hope to have some time to look at it today. Thanks!

WilliamFCB avatar Feb 18 '22 08:02 WilliamFCB

No multiband. In this case the number of excitations equals the number of slices (N = 66). Thus the number of mporder=8 used, is still lower than N/4 ~ 16

WilliamFCB avatar Feb 18 '22 11:02 WilliamFCB

Hi @WilliamFCB ! Is this striped pattern consistent across all gradient directions? Or just a few of them? If inconsistent, you can try using '--denoise_method patch2self'-- it should help get rid of it.

@mattcieslak -- this reminds me, we should at some point add capability to apply P2S at any point of the pipeline!

ShreyasFadnavis avatar Feb 18 '22 13:02 ShreyasFadnavis

Hi @ShreyasFadnavis, many thanks As mentioned previously, the stripped pattern appears to be artificial and due to how fsleyes displayed the image. Unfortunately, I have not found the time to look at other problematic data sets due to other commitments. Of the 979 data set I processed, 369 have bad slices after qsiprep, of these only 45 had bad slices in the raw data...

WilliamFCB avatar Feb 18 '22 16:02 WilliamFCB

Hi @mattcieslak is there some way to identify the slices that represent "t1_num_bad_slices". The "raw_num_bad_slices" generally fit nicely with the heatmap/carpet plot. Cheers

WilliamFCB avatar Feb 22 '22 10:02 WilliamFCB

These are calculated in DSI Studio - I don't believe there's a way to see which slices got flagged, but it would be worth asking Frank just to be sure

mattcieslak avatar Mar 02 '22 03:03 mattcieslak

Is this something you intend to pursue, to get this functionality integrated into qsiprep? Thanks

WilliamFCB avatar Mar 02 '22 06:03 WilliamFCB