Surface-based Preprocessing failed. surf.smooth.params.1D is empty and can't be read

Hi experts,
I try to run surface-based preprocessing on fMRI data. The script failed at reading input the surf.smooth.params.1D file and I check the file which turns out to be empty. I find a related topic on the board, it said that taking out some commands in SurfSmooth (-blurmaster and -detrend_master https://afni.nimh.nih.gov/afni/community/board/read.php?1,146445,146459#msg-146459) but it did not work.
I tried to fix it but I can’t find more related information. Could you please help me with it?

[size=x-large]afni_proc.py[/size]

set subj = 18001
afni_proc.py -subj_id s0 -script proc.av -scr_overwrite
-blocks tshift align tlrc volreg surf blur scale regress
-copy_anat /Users/xc363/Desktop/ana/{$subj}/anat/{$subj}.anat.deob+orig
-dsets
/Users/xc363/Desktop/ana/{$subj}/func/{$subj}.run1+orig.HEAD
/Users/xc363/Desktop/ana/{$subj}/func/{$subj}.run2+orig.HEAD
/Users/xc363/Desktop/ana/{$subj}/func/{$subj}.run3+orig.HEAD
/Users/xc363/Desktop/ana/{$subj}/func/{$subj}.run4+orig.HEAD
-surf_anat /Users/xc363/Desktop/ana/{$subj}/freesurfer/SUMA/"$subj"SurfVol.nii
-surf_spec /Users/xc363/Desktop/ana/{$subj}/freesurfer/SUMA/“$subj”
?h.spec
-tcat_remove_first_trs 0
-tlrc_base MNI152_T1_2009c+tlrc
-align_opts_aea -cost lpc+ZZ
-volreg_align_to MIN_OUTLIER
-volreg_align_e2a
-volreg_tlrc_warp
-blur_size 6.0
-regress_stim_times /Users/xc363/Desktop/ana/timeseries/ts_phon_A.1D
/Users/xc363/Desktop/ana/timeseries/ts_phon_V.1D
/Users/xc363/Desktop/ana/timeseries/ts_phon_AVC.1D
/Users/xc363/Desktop/ana/timeseries/ts_phon_AVI.1D
/Users/xc363/Desktop/ana/timeseries/ts_char_A.1D
/Users/xc363/Desktop/ana/timeseries/ts_char_V.1D
/Users/xc363/Desktop/ana/timeseries/ts_char_AVC.1D
/Users/xc363/Desktop/ana/timeseries/ts_char_AVI.1D
-regress_stim_labels phon_A phon_V phon_AVC phon_AVI char_A char_V
char_AVC char_AVI
-regress_basis ‘BLOCK(20.8,1)’
-regress_censor_motion 3.0
-regress_motion_per_run
-regress_reml_exec
-regress_make_ideal_sum sum_ideal.1D
-regress_run_clustsim no
-regress_opts_3dD
-num_glt 2
-gltsysm ‘SYM: phon_AVC -phon_AVI’ -glt_label 1 ‘phon_con’
-gltsysm ‘SYM: char_AVC -char_AVI’ -glt_label 2 ‘char_con’

[size=x-large]This is the error message:[/size]
– Error SurfSmooth (SUMA_SurfSmooth.c:1826):
Failed to read dset pb03.18001.lh.r01.surf.niml.dset
** ERROR: mri_read_ascii: can’t read any valid data from file surf.smooth.params.1D
** FATAL ERROR: Can’t read input file ‘surf.smooth.params.1D’
Best,
Xin

Howdy-

If you are doing a surface-based analysis, then I don’t think you want the “tlrc” block (nor the accompanying “-tlrc_* …” option).

FreeSurfer creates a mesh from your anatomical volume, and when you run @SUMA_Make_Spec_FS on it, SUMA estimates standard mesh versions (at different densities or surface resolutions), so that your data becomes “standardized” by projecting onto the surface. That is, every node with index X is supposed to correspond to the same physiological feature in any subject (assuming the surface alignments/etc. went well).

So, if you remove that block/option, does that solve your issue?

Another note: when you ran @SUMA_Make_Spec_FS, did you include one of the following options: -GNIFTI, -GIFTI, -IFTI?
You should be doing so.

–pt

Hi Xin,

Do you have the “output.proc.s0” (or whatever you might have saved it as)? If so, would you send the to me via email (click on my name)?

That will have more info that could be useful.

Thanks,

  • rick

Thanks, Taylor!
It did not throw any error after removing the tlrc-related commands. But it ended with “** surf name 6, ‘pial’: multiple matches: some paths” and there are many files start with “rm” in the results folder. Are these standard output files? I’m considering whether these are some temporal files that should have been deleted when the whole process completed successfully.
As for the @SUMA_Make_Spec_FS, I’ve included the flag -NIFTI based on the suma tutorial from the afni website.

Best,
Xin

Sorry, I was wrong. I used “tcsh -xef proc.av |& tee output.proc.av” and the errors did not pop up. But when I just use “tcsh proc.av” to run the file, the errors are still there:

[size=large]Errors:[/size]
Failed to read dset pb04.18001.lh.r01.surf.niml.dset
** ERROR: mri_read_ascii: can’t read any valid data from file surf.smooth.params.1D
** FATAL ERROR: Can’t read input file ‘surf.smooth.params.1D’
** Program compile date = Sep 24 2019
params: Subscript out of range.

Thanks for the output. The “** surf name 6, ‘pial’: multiple matches: some paths” error is probably the basis of the problem. Maybe FreeSurfer is generating multiple ‘pial’ surfaces now, and we have to deal with that.

Until we do, you might need to copy the spec file and remove one of those pial surfaces, before giving the new file to afni_proc.py. I am not sure about the smoothed pial surface. That might be appropriate, but we will have to review such data before being more sure.

Did you run a standard FS command?

Thanks,

  • rick

Thanks, Rick!
I tried to keep either the “pial-outer-smoothed” or the “pial.nii” in the .spec file. The former version still throws 8 errors like “invalid surfaces, different # nodes ()” and the normal ‘pial.nii’ version works well.

I checked the ‘recon-all.log’ file and the FS files were generated by standard “recon-all” command. The FS version is “freesurfer-Linux-centos6_x86_64-stable-pub-v6.0.0”.

Thanks a lot.
Xin

Did FreeSurfer actually generate pial-outer-smoothed.gii? We don’t have that file. That you see different node numbers suggests the file is coming in from somewhere else.

If you want to compare across subjects, it is generally preferable to use the standard mesh surfaces, like std.141, rather than the original surfaces. It would be good to specify those spec files in the afni_proc.py command.

Note that you can also be more explicit about the surface applied in the afni_proc.py command. That might be easier. Consider something like:

-surf_A pial.gii

That way, if you happen to still have the pial-outer-smoothed surface, it will be skipped. It would not be necessary to alter the spec files.

  • rick

I copied FS files from someone else, probably he did some other processings.
Good to know there is an easier way to do it!
Thanks a lot for the help and suggestions!

Best,
Xin