SUMA Volume Data to Surface Data

Hi there, back again with another newbie question that I cant seem to find an answer to within the SUMA pdf. I have recently begun working with SUMA and was curious about the manner in which to map the volumetric data to the surface. To start I used FreeSurfer to create the surface models for my subjects and @SUMAMAKESPECFS worked perfectly to create my appropriate files. From there I also used @SUMA_AlignToExperiment for my surface and experimental anat files with no problems. The next step in the pdf just states to map your volumetric data to to surface using command line or interactively. That said I tried this and the results were terrible. So taking a step back I reran my data using the anat from @SUMA_Align and removed the align and tlrc. sections. This actually produced data that mapped onto the surface anat pretty much perfectly. However, being new to this I cant help but feel like I am missing a crucial step to make the process even better. I found 3dVol2Surf but haven’t fully deciphered the help file from that yet. Just looking for some input on this, thanks in advance 8).

Are you using the “-sv” option? The sv dataset has the transformation in its header to align xyz coordinates to the surface.

I am using the -sv option, my process for loading afni and SUMA is roughly this
afni -niml &
suma -spec SubId_lh/rh.spec -sv SubId_SurfVol_Alnd…+orig &

You seem to be talking about using standard with surfaces.

It is not appropriate to include the tlrc block in an
afni_proc.py command with surface data, as it will not
survive the trip to standard space (I should make that
an error). That is not the place to do it.
@SUMA_Make_Spec_FS provides standard mesh surfaces
automatically, which should be used in afni_proc.py by
providing a standard mesh spec file.

Those standard mesh surfaces have node correspondence
across subjects, according to the FreeSurfer registration
on the surface. They are effectively in standard space
already. To get MNI coordinates, you can show the surface
results on the sample MNI surface, say.

See AFNI_data6/FT_analysis/s03.ap.surface for a sample
afni_proc.py command on the std.60 surfaces (you should
use the 141 version, 60 is low-resolution demo data).

  • rick

Well I did remove the tlrc section from my script and when i did my results came out very good, much better than initially, but I will give it another go with the info you provided. Thanks very much.

You don’t need the standard mesh surfaces to run the analysis,
it should look good either way. But if you do use the std mesh
surfaces, then the surface data is directly applicable for a group
analysis, since the nodes would correspond across subjects.
And those surfaces look (and are almost) identical to the original
ones.

With the original surfaces, you would not be ready to compare
across subjects.

  • rick

Well that is wonderful to know, thanks for that info!

Got the script to run… however when i use Cntl-S to load a .dset file, specfically stats.E001.l/rh.niml.dset i get an error that SUMA cant read the 1d file.

Hi again, sorry to keep bugging about SUMA but I am having alot of trouble figuring out whats wrong with my datasets that are produced by my script. The script produced by afni_proc.py. runs its course with no fails. When i open afni and suma within the results folder I have volreg files in BRIK/HEAD formats. Past that my surf/blur/scale/ and stats files are all niml.dset. These files do not show up in afni window as i would expect. When I use CNTRL-s in suma window as specified in the suma website to load the niml.dset files i get this error (Error SUMA_ReadSegD0: Failed to read 1d file). i am currently unable to figure out what it is that im doing wrong, despite spending hours on google, suma website, and suma.pdf… I have looked into ConvertDset but dont really see anything that would necessarily solve this problem.
Here is the script generator im using, which i modeled after the example from earlier in this post, aside from the small portion for including standard meshes because whenever i add that bit for some reason afni_proc.py says that there is no match which I assume means I need to download those meshes despite the help file saying that @SUMA_Make_Spec_FS does it automatically… but one problem at a time i suppose
#run afni_proc.py to create a single subject processing script
afni_proc.py -subj_id $subj
-script proc.$subj -scr_overwrite
-blocks align volreg surf blur scale regress
-copy_anat $anat_dir/E001_anat_nudge+orig
-tcat_remove_first_trs 0
-dsets
$epi_dir/E001_XY_r1_deobl+orig.HEAD
$epi_dir/E001_XY_r2_deobl+orig.HEAD
$epi_dir/E001_XY_r3_deobl+orig.HEAD
$epi_dir/E001_XY_r4_deobl+orig.HEAD
-surf_anat $top_dir/AFNI/SUMA/E001_SurfVol+orig
-surf_spec $top_dir/AFNI/SUMA/E001_?h.spec
-volreg_align_to third
-volreg_align_e2a
-blur_size 8.0
-regress_stim_times
$top_dir/E001_corr_nogo.txt
$top_dir/E001_err_nogo.txt
-regress_stim_labels
corr_nogo err_nogo
-regress_basis ‘GAM’
-regress_censor_motion 0.3
-regress_opts_3dD
-jobs 2
-gltsym ‘SYM: corr_nogo -err_nogo’

The niml.dset files created should have the same number of nodes as the surfaces for suma to display them properly. Make sure you are looking at surfaces and datasets that match. You can check that out with commands like these:

SurfInfo -i std.60.rh.pial.gii | grep N_Node
N_Node: 36002 NodeDim: 3, EmbedDim: 3

3dinfo std.60.rh.thickness.niml.dset |grep voxels
++ 3dinfo: AFNI version=AFNI_17.1.05 (May 12 2017) [64-bit]
R-to-L extent: 0.000 -to- 36001.000 [L] -step- 1.000 mm [36002 voxels]
A-to-P extent: 0.000 -to- 0.000 -step- 1.000 mm [ 1 voxels]
I-to-S extent: 0.000 -to- 0.000 -step- 1.000 mm [ 1 voxels]