b_range not carried through quad.py
Looks like the reference to 100 should actually be to shell_tol. Running eddy with b_range=60 (when shells are e.g. 0,100,1500,3000), eddy runs successfully but eddy_quad fails to generate the correct avg_* files and subsequently fails when plotting.
I think that
data = {
'subj_id':eddyFile,
'mask_id':mask,
'qc_path':out_dir,
'no_dw_vols':(bvals > 100).sum(),
'no_b0_vols':(bvals <= 100).sum(),
'protocol':protocol.flatten(),
'no_PE_dirs':np.size(unique_pedirs),
'no_shells':(unique_bvals > 0).sum(),
'bvals_id':bvalsFile,
'bvals':rounded_bvals,
'bvecs_id':bvecsFile,
'bvecs':bvecs,
'unique_bvals':unique_bvals[unique_bvals > 100],
'bvals_dirs':counts[unique_bvals > 100],
'eddy_idxs':eddyIdxs,
'eddy_para':eddyPara,
'unique_pedirs':unique_pedirs,
'pedirs_count':counts_pedirs,
'vol_size':eddy_epi.shape,
'vox_size':np.array(eddy_epi.header.get_zooms()),
'eddy_epi':eddy_epi,
'mask':mask_vol.get_fdata(),
}
should be
data = {
'subj_id':eddyFile,
'mask_id':mask,
'qc_path':out_dir,
'no_dw_vols':(bvals > shell_tol).sum(),
'no_b0_vols':(bvals <= shell_tol).sum(),
'protocol':protocol.flatten(),
'no_PE_dirs':np.size(unique_pedirs),
'no_shells':(unique_bvals > 0).sum(),
'bvals_id':bvalsFile,
'bvals':rounded_bvals,
'bvecs_id':bvecsFile,
'bvecs':bvecs,
'unique_bvals':unique_bvals[unique_bvals > shell_tol],
'bvals_dirs':counts[unique_bvals > shell_tol],
'eddy_idxs':eddyIdxs,
'eddy_para':eddyPara,
'unique_pedirs':unique_pedirs,
'pedirs_count':counts_pedirs,
'vol_size':eddy_epi.shape,
'vox_size':np.array(eddy_epi.header.get_zooms()),
'eddy_epi':eddy_epi,
'mask':mask_vol.get_fdata(),
}
Edited by Shaun Warrington