Problem in “dwifslpreproc”

I am trying to run dwifslpreproc by “dwifslpreproc dwi_denoised.mif dwi_denoised_preproc.mif -rpe_header”

but the results shows: sampling of b=1000 shell is strongly asymmetric; distortion correction may benefit from use of: -eddy_options " … --slm=linear …

my bval: "0 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 "

could you please give me some advice about how to address this problem?
Thanks a lot

1 Like

This is typically just a warning, it shouldn’t prevent the command from executing. What it says is that your DW scheme is asymmetric, a problem explained in more detail on the FSL EDDY wiki page. In such cases, it’s recommended to run eddy with the --slm=linear option (enable linear second-level modelling), which you can do by adding -eddy_options " --slm=linear" to your dwifslpreproc command.

Thanks for your feedback.
I got another question about brain Segmentation.
I tried to segment the brain based on the template of “Schaefer2018_200Parcels_7Networks…” (From
https://github.com/ThomasYeoLab/CBIG/tree/master/stable_projects/brain_parcellation/Schaefer2018_LocalGlobal/Parcellations/project_to_individual)

I tried to used the code from above link. but there is something wrong with my results. please see below:

1. Step1

mri_surf2surf --hemi lh \
  --srcsubject fsaverage \
  --trgsubject sub-CON02_recon \
  --sval-annot lh.Schaefer2018_200Parcels_7Networks_order.annot \
  --tval sub-CON02_recon/label/lh.Schaefer2018_200Parcels_7Networks_order.annot
mri_surf2surf --hemi rh \
  --srcsubject fsaverage \
  --trgsubject sub-CON02_recon \
  --sval-annot rh.Schaefer2018_200Parcels_7Networks_order.annot \
  --tval sub-CON02_recon/label/rh.Schaefer2018_200Parcels_7Networks_order.annot

I can get good results in individual surface space:


.

2. Step2

mri_aparc2aseg --s sub-CON02_recon --o seg_yeo200.mgz --annot Schaefer2018_200Parcels_7Networks_order

Then I got parcellation in volume space “seg_yeo200.mgz” :

3. Step3
But the problems occurs when I tried to excute the following code:

 labelconvert seg_yeo200.mgz /usr/local/freesurfer/subjects/Schaefer2018_200Parcels_7Networks_order_LUT.txt \
  /home/xueli/mrtrix/mrtrix3/share/mrtrix3/labelconvert/fs_default.txt \
  sub-CON02_parcels.mif

The sub-CON02_parcels.mif was shown as follows:

The segmentation is really bad, it can not refelct the segmentation of whole brain. and I think there must be something wrong with “LUT.txt” file, but I can not find suitable lookup table. Could you please give me some suggestions about how to creat a suitable lookup table or where can I find the suitable lookup table?

Thanks

Cheers.

Li

1 Like

Dear @Li_Xue ,

It does seem to be a problem with the LUT you provide - fs_default will only have the same subcortical (aseg) labels overlapping with the Shaefer2018 LUT. That is why only these are included in the output label file. Since the correct ordered label file is not provided by default, you will need to create this yourself.

All you need to do is to edit the “Schaefer2018_200Parcels_7Networks_order_LUT.txt” file to retain the rows that are a part of the specific atlas. Then delete the column corresponding to the FreeSurfer label IDs and in its place add a column with integers increasing from 1 to the number of rows. Use this file as the second input to labelconvert.

Hope this helps,
Nick

PS: For future reference, it might be easier if you post new questions to a new topic, so that others with a similar issue can find it more easily!

1 Like

Thanks Nick.

I have obtained the correct LUT file. I upload these files for the people who may meet the same problem with me.
(For the format limitation, I can only upload the pdf file.)

Schaefer2018_200Parcels_7Networks_order.pdf (58.4 KB)
Schaefer2018_200Parcels_7Networks_order_LUT.pdf (71.0 KB)

I used the following code:

labelconvert seg_yeo200.mgz /usr/local/freesurfer/subjects/Schaefer2018_200Parcels_7Networks_order_LUT.txt \
  /usr/local/freesurfer/subjects/Schaefer2018_200Parcels_7Networks_order.txt \
  yeo200_parcels.mif

PS: Thanks for your advice, I will post new questions to a new topic next time.
and could your team increase the variety of format of uploaded files? I found I can not upload the .txt file.

The file yeo200_parcels.mif is shown as follows:

Thanks.

Cheers.

Li

1 Like

Glad that it worked,

Have uploaded the text files to a fork here for anyone who needs them.

Nick

1 Like

Hello,
In the step

mri_surf2surf --hemi lh
–srcsubject fsaverage
–trgsubject sub-CON02_recon
–sval-annot lh.Schaefer2018_200Parcels_7Networks_order.annot
–tval sub-CON02_recon/label/lh.Schaefer2018_200Parcels_7Networks_order.annot

how did you get ‘sub-CON02_recon/label/lh.Schaefer2018_200Parcels_7Networks_order.annot’. DId you copy the file, lh.Schaefer2018_200Parcels_7Networks_order.annot to that folder or did you get it by recon-all. My recon all does not produce any such files.

Thank you

Hi @math_priyanka

–sval-annot lh.Schaefer2018_200Parcels_7Networks_order.annot

In this line, the annot file is download from the TomasYeo github: https://github.com/ThomasYeoLab/CBIG/tree/master/stable_projects/brain_parcellation/Schaefer2018_LocalGlobal/Parcellations/FreeSurfer5.3/fsaverage/label.

mri_surf2surf is a method which can help us get a surface file in individual space from fsaverage space. Here, lh.Schaefer2018_200Parcels_7Networks_order.annot is in the fsavergae space, and sub-CON02_recon/label/lh.Schaefer2018_200Parcels_7Networks_order.annot is in the individual space.

ok. Got it. Actually, i dnt know why, those commands are not executed properly. COmmands ran without any error but file was not created.
"etting mapmethod to nnf

Id: mri_surf2surf.c,v 1.103 2015/11/05 22:07:33 greve Exp

setenv SUBJECTS_DIR /usr/local/freesurfer/subjects
cd /home/pc/Documents/research/data/test_Scheafer
mri_surf2surf --hemi rh --srcsubject fsaverage --trgsubject sub-CC121200_T1w_recon --sval-annot Schaefer2018_200Parcels_7Networks_order.annot --tval sub-CC121200_T1w_recon/label/rh.Schaefer2018_200Parcels_7Networks_order.annot

sysname Linux
hostname pc-HP-Pavilion-Laptop-14-dv1xxx
machine x86_64
user pc
srcsubject = fsaverage
srcval = (null)
*srctype = *
trgsubject = sub-CC121200_T1w_recon
trgval = sub-CC121200_T1w_recon/label/rh.Schaefer2018_200Parcels_7Networks_order.annot
*trgtype = *
srcsurfreg = sphere.reg
trgsurfreg = sphere.reg
srchemi = rh
trghemi = rh
frame = 0
fwhm-in = 0
fwhm-out = 0
label-src = (null)
label-trg = (null)
OKToRevFaceOrder = 1
UseDualHemi = 0
Reading source surface reg /usr/local/freesurfer/subjects/fsaverage/surf/rh.sphere.reg
Loading source data
Reading surface file /usr/local/freesurfer/subjects/fsaverage/surf/rh.orig
reading colortable from annotation file…
colortable with 101 entries read (originally Schaefer2018_200Parcels_7Networks)
Reading target surface reg /usr/local/freesurfer/subjects/sub-CC121200_T1w_recon/surf/rh.sphere.reg
Done
Using surf2surf_nnfr()
Mapping Source Volume onto Source Subject Surface
surf2surf_nnfr: building source hash (res=16).
Surf2Surf: Forward Loop (149280)

Surf2Surf: Dividing by number of hits (149280)
INFO: nSrcLost = 47856
nTrg121 = 149280, nTrgMulti = 0, MnTrgMultiHits = 0
nSrc121 = 89371, nSrcLost = 47856, nSrcMulti = 74471, MnSrcMultiHits = 0.804461
Saving target data
Converting to target annot
Saving to target annot sub-CC121200_T1w_recon/label/rh.Schaefer2018_200Parcels_7Networks_order.annot
"
Output has no error but the rh.Schaefer2018_200Parcels_7Networks_order.annot is not created in the folder.

Is Schaefer2018_200Parcels_7Networks_order.annot for the right hemisphere? Try to use Freeviewer to check this file. Or you can also check your path, did you set right path?
This command really works in my Ubuntu.

Hello,
The copy issue for both hemishpere.
And you are right, my freeviewer is not working. Need to fix it first.
Thank you

This is the issue with freeview

pc@pc-HP-Pavilion-Laptop-14-dv1xxx:~$ freeview
freeview.bin: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory

Freeview is running but file is not copied there.