Still with SurfSmooth error

Hi, Some months ago I asked for your help on this error

(base) Mac-Pro-de-Neurociencia:Semantic_Priming neurociencia$ tcsh Script3A
++ 3dTstat: AFNI version=AFNI_20.3.00 (Oct 2 2020) [64-bit]
++ Authored by: KR Hammett & RW Cox
++ 3dcalc: AFNI version=AFNI_20.3.00 (Oct 2 2020) [64-bit]
++ Authored by: A cast of thousands
++ 3dTstat: AFNI version=AFNI_20.3.00 (Oct 2 2020) [64-bit]
++ Authored by: KR Hammett & RW Cox
++ 3dcalc: AFNI version=AFNI_20.3.00 (Oct 2 2020) [64-bit]
++ Authored by: A cast of thousands
++ 3dTstat: AFNI version=AFNI_20.3.00 (Oct 2 2020) [64-bit]
++ Authored by: KR Hammett & RW Cox
++ 3dcalc: AFNI version=AFNI_20.3.00 (Oct 2 2020) [64-bit]
++ Authored by: A cast of thousands
++ 3dTstat: AFNI version=AFNI_20.3.00 (Oct 2 2020) [64-bit]
++ Authored by: KR Hammett & RW Cox
++ 3dcalc: AFNI version=AFNI_20.3.00 (Oct 2 2020) [64-bit]
++ Authored by: A cast of thousands
++ 3dTstat: AFNI version=AFNI_20.3.00 (Oct 2 2020) [64-bit]
++ Authored by: KR Hammett & RW Cox
++ 3dcalc: AFNI version=AFNI_20.3.00 (Oct 2 2020) [64-bit]
++ Authored by: A cast of thousands
++ 3dTstat: AFNI version=AFNI_20.3.00 (Oct 2 2020) [64-bit]
++ Authored by: KR Hammett & RW Cox
++ 3dcalc: AFNI version=AFNI_20.3.00 (Oct 2 2020) [64-bit]
++ Authored by: A cast of thousands
– Error SurfSmooth (SUMA_SurfSmooth.c:2128):
Failed to get mean fwhm
– Error SurfSmooth (SUMA_SurfSmooth.c:2128):
Failed to get mean fwhm
– Error SurfSmooth (SUMA_SurfSmooth.c:2128):
Failed to get mean fwhm
– Error SurfSmooth (SUMA_SurfSmooth.c:2128):
Failed to get mean fwhm
– Error SurfSmooth (SUMA_SurfSmooth.c:2128):
Failed to get mean fwhm
– Error SurfSmooth (SUMA_SurfSmooth.c:2128):
Failed to get mean fwhm
– Error SurfSmooth (SUMA_SurfSmooth.c:2128):
Failed to get mean fwhm
– Error SurfSmooth (SUMA_SurfSmooth.c:2128):
Failed to get mean fwhm
– Error SurfSmooth (SUMA_SurfSmooth.c:2128):
Failed to get mean fwhm
– Error SurfSmooth (SUMA_SurfSmooth.c:2128):
Failed to get mean fwhm
– Error SurfSmooth (SUMA_SurfSmooth.c:2128):
Failed to get mean fwhm
– Error SurfSmooth (SUMA_SurfSmooth.c:2128):
Failed to get mean fwhm

I receive some guidance but the problem was never resolved. So I´m asking your help again.

This is the code I´m trying to run:

foreach conds (“Nopal” “Norel” “Rel” “Xnopal” “Xnorel” “Xrel”) ## For each of the conditions in a priming task

foreach h (lh rh)    ## For each hemisphere

SurfSmooth -spec $SUMA_path/mesh140.${subj}_"$h".spec \
-surf_A mesh140."$h".smoothwm.asc \
-met HEAT_07 -input $data_path/"$h"_${subj}_decon_$condition.BLOCK.ave_.niml.dset \
-target_fwhm 6 -Niter -1 \
-output $data_path/"$h"_${subj}_decon_$conds.BLOCK.ave_.blur6.niml.dset

end

end

Using a mesh in SUMA with this code:

Create meshes

    foreach h (lh rh)   ## For each hemisphere

        MapIcosahedron -spec ${subj}_"$h".spec -ld 140 -prefix mesh140. -NN_dset_map $h.aparc.a2009s.annot.1D.roi -all_surfs_spec -verb

    end

Please help, I can´t smooth the activations and proceed to the ANOVA analysis.

Hi-

Sorry, that previous message slipped off my radar.

In this current case, you aren’t using the standard mesh (using a created 140 instead of 141 one). Can I ask why you are using a self-created mesh that is very close to one standard mesh, but not a standard mesh?

In terms of the SurfSmooth error, let’s test running SurfSmooth on your computer. In the AFNI Bootcamp dataset*, can you go to this directory, “AFNI_data6/FT_analysis/FT/SUMA/”, and then run this command by copy+pasting into the terminal:


SurfSmooth \
     -spec std.141.FT_lh.spec \
     -surf_A std.141.lh.smoothwm.gii \
     -met HEAT_07  \
     -input std.141.lh.sulc.niml.dset \
     -target_fwhm 6 \
     -Niter -1 \
     -output TEST.niml.dset

Does that work for you?

–pt


  • If you don’t have the Bootcamp directory-- eek! – you can get+unpack it in your home directory via:

curl -O https://afni.nimh.nih.gov/pub/dist/edu/data/CD.tgz
tar xvzf CD.tgz
cd CD
tcsh s2.cp.files . ~
cd ..

Adding on to Paul’s advice, afni_proc.py offers a “surf” block option that will do this kind of operation for you. A processing script generated by afni_proc.py for a surface analysis in our example class data includes the following lines for SurfSmooth.

        SurfSmooth -spec $surface_dir/std.60.FT_${hemi}.spec         \
                   -surf_A smoothwm                                  \
                   -input pb03.$subj.$hemi.r$run.surf.niml.dset      \
                   -met HEAT_07                                      \
                   -target_fwhm 6.0                                  \
                   -blurmaster pb03.$subj.$hemi.r$run.surf.niml.dset \
                   -detrend_master                                   \
                   -output pb04.$subj.$hemi.r$run.blur.niml.dset     \
                   | tee surf.smooth.params.1D 

You’ll notice a couple extra options there for smoothing based on a reference noise dataset, instead of the statistical dataset itself. The blur method is HEAT_07 here. Make sure to look at the input surfaces and datasets to see if they look reasonable. If HEAT_07 doesn’t work, then you might consider HEAT_05, the older method included in SurfSmooth.

The .asc output you are using hints at the possibility you are using an older version of AFNI. Convert your FreeSurfer data with @SUMA_Make_Spec_FS (which will call MapIcosahedron too). That will generate a 141 standard mesh that can then be used as input to afni_proc.py. Then use the afni_proc.py to do your analysis along with the smoothing on the surface as long as you include a “blur” block too.

Ok,

I´ll run this with data camp and explore the afni_proc.py option. std141 has been giving me problems, with some subjects the SurfSmooth tells me there is no such a file in the directory, but there they are.

Thank you very much for your suggestions.

Hi-

I think it would be easiest to test this in steps to determine what the problem is. Also, I have to guess that using the standard meshes should be the best option, if there is no particular reason to require some other mesh resolution.

The following three things would be quite useful:

A) Could you please also post the results of what your AFNI version is-- the output of “afni -ver”. I looked at your previous thread, and there was a question about what version you were running, and I don’t see that information ever posted there. I think we need to know that, as well, here. This is really important to know.

B) Could you also please try the SurfSmooth command I sent, above. That command is modeled on your Surfsmooth command from your previous post (only the “-input …” file differs), so that is a good place to start.

C) If you can paste your commands for what you were trying earlier with the standard meshes created by afni_proc.py, with the exact error messages, then we can try to address that.

–pt

Hi,

Yes, the TEST worked. Here are the three steps:

A) afni –ver output:
(base) Mac-Pro-de-Neurociencia:SUMA neurociencia$ afni -ver
Precompiled binary macos_10.12_local: Oct 2 2020 (Version AFNI_20.3.00 ‘Vespasian’)

B) Surf Smooth response:
(base) Mac-Pro-de-Neurociencia:SUMA neurociencia$ SurfSmooth -spec std.141.FT_lh.spec -surf_A std.141.lh.smoothwm.gii -met HEAT_07 -input std.141.lh.sulc.niml.dset -target_fwhm 6 -Niter -1 -output TEST.niml.dset
++ Notice SUMA_SigForFWHM (SUMA_GeomComp.c:7400 @11:01:03):
Low Sigma/AvgLe, increased it to 0.500
Expected niter now: 89
Kernel Bandwidth / Average Edge Distance = 0.500000/0.816885 = 0.408443
Corresponding Kernel Numerator = 0.135335
++ Notice SurfSmooth (SUMA_SurfSmooth.c:2220 @11:01:03):
Smoothing kernel bandwidth (sigma) = 0.408443

#Final smoothing parameters from input:
#Niter Sigma OutputFWHM
0 0.4084 6.000

++ Notice SUMA_WriteSmoothingRecord (SUMA_GeomComp.c:7023 @11:01:03):
Writing FWHM progression history to TEST.niml.dset.1D.smrec …

C) Commands used and response:
(base) Mac-Pro-de-Neurociencia:SUMA neurociencia$ 3dVol2Surf -spec std.141.Alejandro_rh.spec -surf_A std.141.rh.smoothwm.gii -surf_B std.141.rh.pial.gii -map_func ave -f_steps 15 -f_index voxels -sv Alejandro_SurfVol_Alnd_Exp+orig -grid_parent Alejandro_decon_Nopal.TENT.int.psc+orig -oob_value 0.0 -oob_index 0.0 -out_niml rh_Alejandro_decon_Nopal.TEMT.ave_.niml.dset
** surface name ‘std.141.rh.smoothwm.gii’ not found

This is previous step tan SurfSmooth. The thing is, the file std141.rh.smoothwm.gii is there in SUMA, but I can only advance from this step to SurfSmooth if I use my created mesh140.rh.smoothwm.asc. And then, in that step, SurfSmooth falls.

Thank you very much.

Hi-

OK, that is odd. The following works for me, which should be basically emulating your command (I’m using output from the AFNI Bootcamp dir plus having run the s03* script example for afni_proc.py processing on a surface):


#!/bin/tcsh

# working version

set subj = FT

set idir = ~/CD/AFNI_data6/FT_analysis/FT/SUMA

3dVol2Surf                          \
    -spec    ${idir}/std.141.${subj}_rh.spec   \
    -surf_A  std.141.rh.smoothwm.gii \
    -surf_B  std.141.rh.pial.gii     \
    -map_func ave                   \
    -f_steps 15                     \
    -f_index voxels                 \
    -sv          ${subj}.surf_SurfVol_Alnd_Exp+orig.HEAD \
    -grid_parent ${subj}.surf_SurfVol_Alnd_Exp+orig.HEAD \
    -oob_value 0.0                  \
    -oob_index 0.0                  \
    -out_niml rh_${subj}_TEST_D.niml.dset 

Note how there is the path to the *.spec file, but not to the *.gii ones-- those are basically assumed to be in the same spot as the .spec file. However, if I tried putting a path to each of the "-surf_ …" files as well, like this:


#!/bin/tcsh

# *broken* version

set subj = FT

set idir = ~/CD/AFNI_data6/FT_analysis/FT/SUMA

3dVol2Surf                          \
    -spec    ${idir}/std.141.${subj}_rh.spec   \
    -surf_A  ${idir}/std.141.rh.smoothwm.gii \
    -surf_B  ${idir}/std.141.rh.pial.gii     \
    -map_func ave                   \
    -f_steps 15                     \
    -f_index voxels                 \
    -sv          ${subj}.surf_SurfVol_Alnd_Exp+orig.HEAD \
    -grid_parent ${subj}.surf_SurfVol_Alnd_Exp+orig.HEAD \
    -oob_value 0.0                  \
    -oob_index 0.0                  \
    -out_niml rh_${subj}_TEST_D.niml.dset 

… then I got a similar error to yours:


** surface name '/home/ptaylor/CD/AFNI_data6/FT_analysis/FT/SUMA/std.141.rh.smoothwm.gii' not found

In your 3dVol2Surf command, have you copied files around? I don’t see how all your inputs are in the same directory location.

–pt

Instead of referring to the surfaces by their file names, use “smoothwm” and “pial”.