Computed T1 signal loss during @SSwarper

AFNI version info (afni -ver): 22.3.03

Hi all,

in our study, we collect two T1 images with different inversion times, which I then combine to a computed T1 using the following formula (see 1st row in attached image):

3dcalc -overwrite -a $inv01 -b $inv02 -prefix t1_computed -expr '(a^2)+(b^2)' -float

Afterwards, I subject the T1 to @SSwarper for normalization:

@SSwarper -input t1_computed.nii.gz -base MNI152_2009_template_SSW+tlrc. -subid sswarp_anat2mni -SSopt '-blur_fwhm 2'

However, after 3dunifze (anatU.sswarp_anat2mni.nii), the image looks like in the image bottom row, basically a signal loss in the medial area.

Do you have an idea about what can be done about it?

Thanks,
Philipp

Hi, Philipp-

What if you add the -unifize_off option? That should turn the unifizing off (as advertised!).

Note that there is also an update to @SSwarper, called sswarper2 that has basically the same syntax. You might be interested in trying that out, too. The same -unifize_off option exists.

--pt

Hi Paul,

I did as you recommended and, for testing, just ran the 3dSkullStrip command on the data outside of sswarper (btw sswarper does not exist when i try to call it with @SSwarper2, afni ver: 22.3.03). The result is that now the SkullStrip completely fails and throws an error:

3dSkullStrip -overwrite -input t1_computed.nii.gz -prefix anatSS -debug 1
++     Notice SUMA_BrainWrap_ParseInput (SUMA_3dSkullStrip.c:1244 @21:38:40):
Setting fill_hole to 10
++     Notice 3dSkullStrip (SUMA_3dSkullStrip.c:1600 @21:38:40):
Loading dset, performing Spatial Normalization
*+ WARNING:   If you are performing spatial transformations on an oblique dset,
 such as t1_computed.nii.gz,
 or viewing/combining it with volumes of differing obliquity,
 you should consider running: 
    3dWarp -deoblique 
 on this and  other oblique datasets in the same session.
See 3dWarp -help for details.
++ Oblique dataset: t1_computed.nii.gz is 5.006094 degrees from plumb.
3dSkullStrip:
Original resolution 1.012500, 1.000000, 1.012500
SpatNorm resolution 1.012500, 1.000000, 1.012500
++mri_brainormalize: normalizing
++mri_brainormalize: top clip above slice 153
++mri_brainormalize: Rescaling.
++mri_brainormalize: Eroding, clustering ...
+ Eroded   437033 voxels
+ Restored 410890 eroded voxels
+ Clustering voxels ...
+ Largest cluster has 1660695 voxels
+ Clustering voxels ...
+ Largest cluster has 4533884 voxels
++mri_brainormalize: Clipping extreme values.
+ scaling by fac=0.0271913
3dSkullStrip: -spatnorm: Expecting 6195700 voxels in in_vol dset (167 212 175)
3dSkullStrip: Edge threshold set to 23.545654. (minimum acceptable was 23.545654)
     (92.000000 percentile =23.545654, 99.999001 percentile = 235.456543)
3dSkullStrip: Prepping volume...
SUMA_LoadPrepInVol: Volume 1624790.000000, radius 72.929459
3dSkullStrip: Beginning brain extraction...
3dSkullStrip: Have surface, OK for 1st entry.
3dSkullStrip: Stretching to avoid ventricles.
SO->Center is [-0.480866 -4.897505 -4.008005]
SUMA_StretchToFitLeCerveau: 
In stage 1
SUMA_StretchToFitLeCerveau: 
Stage1: satiated, low MaxExp
SUMA_StretchToFitLeCerveau: 
Stage 3, type 1: 0 troubled nodes, going for more...
SUMA_StretchToFitLeCerveau: 
In stage 1
SUMA_StretchToFitLeCerveau: 
Stage1: satiated, low MaxExp
SUMA_StretchToFitLeCerveau: 
Stage 3, type 2: 0 troubled nodes, going for more...
3dSkullStrip: Checking for self intersection...
3dSkullStrip: No intersections found.
3dSkullStrip: Final smoothing of 72
3dSkullStrip: Touchup correction, pass 1 ...
3dSkullStrip: The beauty treatment smoothing.
3dSkullStrip: Locating voxels inside surface  ...

Fatal Signal 11 (SIGSEGV) received
   SUMA_SurfGridIntersect
  SUMA_FindVoxelsInSurface
 3dSkullStrip
Bottom of Debug Stack
** AFNI version = AFNI_22.3.03  Compile date = Oct 13 2022
** [[Precompiled binary linux_centos_7_64: Oct 13 2022]]
** Program Death **

Please advise.

Thanks,
Philipp

Hi, Philipp-

Your AFNI version is about 1.5 years old. sswarper2 was added earlier this year, so if you update your version of AFNI, you would have it.

I guess it is possible that for @SSwarper, you might want to add -init_skullstr_off, then. Note that this would be a difference between using sswarper2: you would not add that option there, because this program doesn't try doing and initial skullstrip. It avoids that step.

--pt

Yeah, I was thinking old is gold, but maybe it's time to move on with a new version :slight_smile:

I was actually able to solve the issue. In fact, when I used

3dUnifize -GM t1_computed

the output actually looked good! I have no idea why, but feeding the output to skullstripping also produced a nicely stripped brain!

Running a validation test now within sswarper, which takes more time obviously, but I don't see why it wouldn't work there.

Some things in afni are truly mysterious...

Thanks for your help and until next time!
Philipp