[RESOLVED] Running hcp_diffusion with unmatched phase encoding reversed pairs

Hello,
I’m an M.Sc. student processing DWI data previously collected by my institution. I would greatly appreciate any help with the following issue.

The DWI data I am processing was acquired using these protocols:
(1) dMRI_MB4_185dirs_d15D45_AP
(2) dMRI_MB4_6dirs_d15D45_PA
(3) two SBRef scans

I defined the protocols in the mapping file as follows:
dMRI_MB4_6dirs_d15D45_PA => DWI:dir6_PA
dMRI_MB4_6dirs_d15D45_PA_SBRef => DWI:dir6_PA
dMRI_MB4_185dirs_d15D45_AP => DWI:dir185_AP
dMRI_MB4_185dirs_d15D45_AP_SBRef => DWI:dir185_AP

Within the unprocessed/Diffusion directory for each subject, I find these files:
study/sessions/AB/hcp/AB/unprocessed/Diffusion/
AB_DWI_dir185_AP.bval
AB_DWI_dir185_AP.bvec
AB_DWI_dir185_AP.json
AB_DWI_dir185_AP.nii.gz
AB_DWI_dir6_PA.bval
AB_DWI_dir6_PA.bvec
AB_DWI_dir6_PA.json
AB_DWI_dir6_PA.nii.gz

I ran hcp_pre_freesurfer, hcp_freesurfer, and hcp_post_freesurfer without errors. However, while running the hcp_diffusion command, I encountered these errors in the logs:

Thu Sep 7 00:05:37 EDT 2023:DiffPreprocPipeline_PreEddy.sh: ERROR: Wrong Input! No pairs of phase encoding directions have been found!
Thu Sep 7 00:05:37 EDT 2023:DiffPreprocPipeline_PreEddy.sh: ERROR: Wrong Input! No pairs of phase encoding directions have been found!
Thu Sep 7 00:05:37 EDT 2023:DiffPreprocPipeline_PreEddy.sh: ERROR: At least one pair is needed!
Thu Sep 7 00:05:37 EDT 2023:DiffPreprocPipeline_PreEddy.sh: ERROR: At least one pair is needed!
Thu Sep 7 00:05:37 EDT 2023:DiffPreprocPipeline_PreEddy.sh: ABORTING

This is how DiffPreprocPipeline_PreEddy.sh is invoked:
/opt/HCP/HCPpipelines/DiffusionPreprocessing/DiffPreprocPipeline.sh --path=“/home/ubuntu/qunex/study_folder/sessions/AB/hcp” --subject=“AB” --PEdir=2 --posData=“EMPTY@/home/ubuntu/qunex/study_folder/sessions/AB/hcp/AB/unprocessed/Diffusion/AB_DWI_dir6_PA.nii.gz” --negData/home/ubuntu/qunex/study_folder/sessions/AB/hcp/AB/hcp/ID_lab_AB/unprocessed/Diffusion/AB_DWI_dir185_AP.nii.gz@EMPTY" --echospacing=“0.77000788488” --gdcoeffs=“NONE” --dof=“6” --b0maxbval=“50” --combine-data-flag=“1” --printcom=“” --no-gpu

I am assuming that the DiffPreprocPipeline_PreEddy.sh is failing due to a mismatch in the number of dirs of the two phase-encoding directions – 185 vs. 6.

I’ve seen in the QuNex code that the insertion of EMPTY strings in the posData and negData arguments for DiffPreprocPipeline_PreEddy.sh is to support mismatched pairs. However, I haven’t found a way to get the hcp_diffusion command to pass along the supplied data in such a way that the DiffPreprocPipeline_PreEddy.sh will agree to process it.

Does this seem to you to be the source of the issue? And if so, what can I do to solve it?
Thank you very much,
Hadar

Hi Hadar,

Sorry for the late reply, most of the team was travelling during the last 2 weeks. The hcp_diffusion pipeline is heavily tuned to HCP naming protocol. I believe they usually use dir 98 and 99. QuNex will work if used dir is from 90 to 110. What you could try is to adapt the mapping file this way:

dMRI_MB4_6dirs_d15D45_PA => DWI:dir98_PA
dMRI_MB4_6dirs_d15D45_PA_SBRef => DWI:dir98_PA
dMRI_MB4_185dirs_d15D45_AP => DWI:dir99_AP
dMRI_MB4_185dirs_d15D45_AP_SBRef => DWI:dir99_AP

It is not a proper solution, bot more of a workaround. In the mean time I will take a look at how I can make hcp_diffusion more flexible.

Cheers, Jure

Sorry, my last reply is wrong, you are encountering a different issue. hcp_diffusion requires at least one positive/negative pair, EMPTY is inserted when you have one pair and then additional unpaired images. To process your data, you can use QuNex’s dwi_legacy_gpu which is made exactly for such data - “legacy”, unpaired data.

Jure