AFNI program: DriveSuma
Output of -help
Usage: A program to drive suma from command line.
DriveSuma [options] -com COM1 -com COM2 ...
Mandatory parameters:
---------------------
-com COM: Command to be sent to SUMA.
At least one command must be used
and various commands can follow in
succession.
COM is the command string and consists
of at least an action ACT. Some actions
require additional parameters to follow
ACT.
Actions (ACT) and their parameters:
-----------------------------------
o pause [MSG]: Pauses DriveSuma and awaits
an 'Enter' to proceed with
other commands.
MSG is an optional collection of
strings that can be displayed as
a prompt to the user. See usage
in examples below.
o sleep DUR: Put DriveSuma to sleep for a duration DUR.
DUR is the duration, specified with something
like 2s (or 2) or 150ms
See usage in examples below.
o show_surf: Send surface to SUMA.
+ Mandatory parameters for show_surf action:
-surf_label S_LABEL: A label (identifier) to assign to the
surface
-i_TYPE SURF: Name of surface file, see surface I/O
options below for details.
+ Optional parameters for show_surf action:
-surf_state STATE: Name the state of that surface
-surf_winding WIND: Winding of triangles. Choose
from ccw or cw (normals on sphere
pointing in). This option affects
the lighting of the surface.
+ Example show_surf:
1- Create some surface
2- Start SUMA
3- Send new surface to SUMA
---------------------------
CreateIcosahedron -rd 4
suma -niml &
echo 'Wait until suma is ready then proceed.'
DriveSuma -com show_surf -label icoco \
-i_fs CreateIco_surf.asc
o node_xyz: Assign new coordinates to surface in SUMA
+ Mandatory parameters for action node_xyz:
-surf_label S_LABEL: A label to identify the target
surface
-xyz_1D COORDS.1D: A 1D formatted file containing a new
coordinate for each of the nodes
forming the surface. COORDS.1D must
have three columns.
Column selectors can be used here as
they are in AFNI.
If you do not have the coordinates handy in a 1D file
and would prefer to get them directly from a surface,
you can substitute -xyz_1D COORDS.1D with any valid suma
surface input option. For example, if you want to send
the coords of surface surf.gii, you can just use -i surf.gii,
in lieu of -node_xyz COORDS.1D
+ Example node_xyz (needs surface from 'Example show_surf')
1- Create some variation on the coords of the surface
2- Send new coordinates to SUMA
3- Manipulate the x coordinate now
4- Send new coordinates again to SUMA
-------------------------------------
o get_label: have current label associated with current node printed
o set_outplug filename: redirect output to file instead of stdout
ConvertSurface -i_fs CreateIco_surf.asc \
-o_1D radcoord radcoord \
-radial_to_sphere 100
DriveSuma -com node_xyz -label icoco \
-xyz_1D radcoord.1D.coord'[0,1,2]'
1deval -a radcoord.1D.coord'[0]' -expr 'sin(a)*100' \
> xmess.1D ;1dcat xmess.1D radcoord.1D.coord'[1,2]' \
> somecoord.1D.coord ; rm xmess.1D
DriveSuma -com node_xyz -label icoco \
-xyz_1D somecoord.1D.coord
o viewer_cont: Apply settings to viewer or viewer controller
+ Optional parameters for action viewer_cont:
(Parameter names reflect GUI labels or key strokes.)
-autorecord RECORD_PREFIX: Set the autorecord prefix
See 'Ctrl+r' in suma's interactive help for
details.
You can can use this option to make different snapshots
go to different directories or filenames. For example:
...
-com viewer_cont -autorecord left/Javier.ppm \
-key 'ctrl+left' -key 'ctrl+r' \
-com viewer_cont -autorecord right/Javier.ppm \
-key 'ctrl+right' -key 'ctrl+r' \
...
-bkg_col R G B: Set the color of the background to R G B triplet.
R G B values must be between 0 and 1
-load_view VIEW_FILE: Load a previously
saved view file (.vvs).
Same as 'File-->Load View'
-load_do DO_FILE: Load a displayable object file
For detailed information on DO_FILE's format,
see the section under suma's help (ctrl+h)
where the function of Ctrl+Alt+s is detailed.
-do_draw_mask MASKMODE: Restrict where DO node-based objects are
displayed. MASKMODE is one of:
All: No restrictions
n3Crosshair: Crosshair node + 3 neighboring layers
n2Crosshair: Crosshair node + 2 neighboring layers
n1Crosshair: Crosshair node only
None: Show nothing.
See also Ctrl+p option in SUMA.
-fixed_do NIML_DO_STRING: Load a fixed coordinate type NIML DO that
is defined by the string NIML_DO_STRING.
This is more convenient than specifying
a simple DO in a file. For example:
DriveSuma -com viewer_cont \
-fixed_do "<T text='Hi' coord='0.5 0.2 0'/>"
or the simpler:
DriveSuma -com viewer_cont \
-fixed_do "<T text='Up here' p=tlf/>"
DriveSuma -com viewer_cont \
-fixed_do "<T text='Down there' p=bcf/>"
Repeated calls to -fixed_do would replace the previous
object with the new one. You could specify multiple DOs
by adding a qualifier string to the option -fixed_do.
For example:
DriveSuma -com viewer_cont \
-fixed_do1 "<T text='Tango' coord='0.5 0.2 0'/>"
DriveSuma -com viewer_cont \
-fixed_do2 "<T text='ognaT' coord='0.2 0.2 0'/>"
DriveSuma -com viewer_cont \
-fixed_do1 "<T text='-X-' coord='0.5 0.2 0'/>"
DriveSuma -com viewer_cont \
-fixed_do3 "<Tex target='FRAME' \
filename='funstuff/face_afniman.jpg'/>"
or for a more useful example for how you can add a logo on
the bottom right side and way back in the viewer:
DriveSuma -com viewer_cont \
-fixed_do3 "<I target='FRAME' \
coord = '1 0 1' \
h_align = 'right' \
v_align = 'bot' \
filename='funstuff/face_afniman.jpg'/>"
For more information about DOs, see NIDO section below
(visible with -help option) and demo script @DO.examples.
-Fixed_do NIML_DO_STRING: Same as -fixed_do, but spits out some
debugging info.
-mobile_do NIML_DO_STRING: Mobile version of -fixed_do
-Mobile_do NIML_DO_STRING: Mobile version of -Fixed_do
---------------------------------------------
Details for Displayble objects in NIML format (NIDO).
A NIDO is a collection of displayable objects specified in an ascii file.
NIDO is a collection of elements with the first element named 'nido_head'
That first element can contain attributes that describe the entire NIDO
and default attributes for the remaining elements.
The following example shows a nido_head element with possible attributes.
You do not need to set them all if you don't care to do so. Note that all
attributes are strings and should be enclosed in single or double quotes.
<nido_head
coord_type = 'fixed'
default_color = '1.0 0.2 0.6'
default_font = 'tr24'
bond = ''
render_mode = ''
/>
coord_type attribute:
Describes the coordinate type of all elements in NIDO.
* If 'fixed' then that means then the elements do not move with
suma's surfaces, and the coordinate units are assumed to be in the
range [0,1] with '0 0 0' being the lower left corner of the screen
and closest to you. The z coordinate is useful for assigning elements
to either the background (1) or the foreground (0) of the scene.
Elements in the foreground would always be visible, while those in the
background may be obscured by the rendered surface.
* If 'mobile' then the elements will move along with your object.
In that case, the coordinates you specify are in the same space
as your rendered objects. Also, with 'mobile' NIDO, you can specify
location by specifying a 'node' attribute as illustrated below.
* Default NIDO coordinate type is: 'mobile'
default_color attribute:
3 (R G B) , or 4 (R G B A) color values between [0, 1]
Elements that do not have their own 'col' attribute set, will use
default_color instead. At the moment however, A is not being used.
Default default_color is '1.0 1.0 1.0'
default_font attribute:
String specifying font. All fonts are from the GLUT library.
Elements that do not have their own 'font' attribute set, will use
default_font instead.
Default default_font is 'f9'
Allowed fonts are:
'f8', or 'font8': Constant width 8 size font
'f9', or 'font9': Constant width 9 size font
'tr10', or 'times_roman10'
'tr24', or 'times_roman24'
'he10', or 'helvetica10'
'he12', or 'helvetica12'
'he18', or 'helvetica18'
default_SO_label:
Label identifying surface from which elements get their node based
parameters extracted.
This is mostly useful when the coordinate system's type is 'mobile'
The default is the currently selected surface in SUMA. If no surface
is currently selected, some random surface is picked.
default_node:
One integer which specifies the index of the node to which all elements
belong. This value essentially specifies the 'node' attribute of
individual elements should the 'node' attribute be missing.
A missing default_node, or a value of -1 indicate there is no default
node.
bond:
If set to 'surface' then NIDO is attached to a particular surface.
This means that if a surface is not displayed, none of the elements in
this NIDO would be displayed. Default is 'none'
render_mode:
Used to force rendering mode of NIDO elements to a certain value.
Choose from: Viewer, Fill, Line, Points, Hide, Default or ''
Default is '' with rendering mode unmodified before rendering NIDO.
After 'nido_head' comes a list of elements of various types.
Text element example:
<T
font = 'he12'
coord = '0.5 0.5 0'
col = '0.21 0.9 0.61'
text = 'The Middle
----------'
h_align = 'center'
v_align = 'center'
/>
text attribute:
Put the text you want to display between single or double quotes.
You can do multi-line text.
coord attribute:
XYZ coordinates whose units are determined by nido_head's coord_type.
See also p attribute
p attribute:
A convenience positioning attribute for placing text in fixed screen
coordinates. If present, it will override coord, h_align, and v_align
attributes. Its value is two to 3 characters long.
1st char: t for top, c for center or m for middle, b for bottom
2nd char: l for left, c for center or m for middle, r for right
3rd char: f for front, r for rear (optional)
h_align and v_align are set in a manner that makes sense for these
special position flags.
font attribute:
Sets the font for the text element. If not specified, font is set per
default_font.
col attribute:
Sets the color for the text element. If not specified, col is set per
default_color.
h_align:
Sets the horizontal alignment. Choose from 'l' (default) for left,
'c' for center, or 'r' for right.
v_align:
Sets the horizontal alignment. Choose from 'b' (default) for bottom,
'c' for center, or 't' for top.
node:
Places the object at a node's location in the surface object defined by
SO_label attribute. Note that this option overrides coord and might
confuse you if NIDO's coord_type is 'fixed'. In such a case, the
location would be that of the node, before you moved the surface.
SO_label:
Label of Surface Object from which the element gets its node based
parameters extracted. Default is NIDO's default_SO_label
Sphere element example (only new attributes are detailed):
<S
node = '0'
col = '0.9 0.1 0.61'
rad = '35'
line_width = '1.5'
style = 'silhouette'
stacks = '20'
slices = '20'
/>
rad attribute:
Radius of the sphere (default 10).
rad.ef attribute:
In lieu of rad, this parameter would
make the radius be a fraction of the average edge length
for the surface related to this sphere.
line_width attribute:
Width of line (segments) of sphere's mesh
stacks attribute:
Number of longitudes (default 10).
slices attribute:
Number of lattitudes (default 10).
style attribute:
Style of sphere rendering. Choose from:
fill (default), line, silhouette, or point
See OpenGL's gluQuadricStyle function for details.
Other acceptable attributes:
node, coord, and SO_label
Image element example (only new attributes are detailed):
<I
coord = '0.4 0.5 1'
filename = 'face_alexmartin2.jpg'
h_align = 'center'
v_align = 'bot'
/>
filename attribute:
Specifies the filename of the image. If the filename has no path, SUMA
will search your path for a match before failing.
Other acceptable attributes:
h_align, v_align, coord, node, and SO_label.
Texture element example:
<Tex
filename = 'face_afniman.jpg'
target = 'FRAME'
frame_coords = '
0.0 0.0 1
0.0 1.0 1
1.0 1.0 1
1.0 0.0 1 '
mix_mode = 'blend'
coord_gen = 'sphere'
/>
filename attribute:
Specifies the filename of the texture image.
target attribute:
Specifies the target of the texture.
If target is 'FRAME' then the texture is bound to a quadrilateral whose
coordinates are defined by the frame_coords attribute. This is useful
for putting a background image in SUMA for example, when NIDO is of
a 'fixed' coord_type. Alternately, target can be the label of a
surface, or a bunch of surfaces sharing the label string.
The default is 'ALL_SURFS' which targets all surfaces being displayed
frame_coords attribute:
Specify the coordinate of the quadrilateral onto which the texture
is bound. This is of use when target is set to 'FRAME'. The default
coordinates are set to:
0.0 0.0 1
0.0 1.0 1
1.0 1.0 1
1.0 0.0 1 '
For 'fixed' coord_type, this default sets up a rectangle that fills up
the suma viewer in the background of the scene.
BUG: If you reduce z in 'fixed' coord_type, the texture map be
positioned closer to the foreground, and should obscure objects behind
it. But for some reason, no surfaces get rendered in that case, no
matter where they lie relative to the texture frame.
For 'mobile' coord_type, the texture frame coordinates are in the same
units as those for the rendered objects.
Showing textures in frames is like displaying an image except that:
- Textures will scale with changes in viewer size for 'fixed' coord_type
and zoom factor for 'mobile' coord_type. While image size only depends
on its number of pixels.
- Frame orientation is arbitrary for textures. For images, the frame is
always aligned with the pixel arrays (always facing you). With images,
you can only control where its center is located.
mix_mode attribute:
Specifies the way texture mixes with node colors.
Choose from: 'decal', 'blend', 'replace', and 'modulate'.
Default is 'replace' when target is 'frame' and 'modulate' for
other target values. These parallel OpenGL's GL_DECAL, GL_BLEND, etc.
coord_gen attribute:
Specifies how texture coordinate generation is done, when target is not
'FRAME'. Choose from: 'sphere', 'object', 'eye'. Default is 'sphere'
For detail, see OpenGL's GL_SPHERE_MAP, GL_OBJECT_LINEAR, etc.
Try the script :ref:`@DO.examples<@DO.examples>` for concrete examples on
displayable objects.
---------------------------------------------
-key KEY_STRING: Act as if the key press KEY_STRING
was applied in the viewer.
~ Not all key presses from interactive
mode are allowed here.
~ Available keys and their variants are:
[, ], comma (or ','), period (or '.'), space,
a, b, d, G, j, m, n, p, r, t, z,
up, down, left, right, and F1 to F12.
~ Key variants are specified this way:
ctrl+Up or ctrl+alt+Down etc.
~ For help on key actions consult SUMA's
GUI help.
~ Using multiple keys in the same command
might not result in the serial display of
the effect of each key, unless 'd' modifier
is used as shown further below. For example,
-key right -key right would most likely
produce one image rotated twice rather than
two images, each turned right once.
The -key string can be followed by modifiers:
For example, -key:r5:s0.2 has two modifiers,
r5 and s0.2. All modifiers are separated by ':'.
'r' Repeat parameter, so r5 would repeat the
same key 5 times.
's' Sleep parameter, so s0.2 would sleep for 0.2
seconds between repeated keys.
'd' Immediate redisplay flag. That is useful
when you are performing a succession of keys and
want to ensure each individual one gets displayed
and recorded (most likely). Otherwise, successive
keys may only display their resultant. 'd' is used
automatically with 's' modifier.
'p' Pause flag. Requires user intervention to proceed.
'v' Value string. The string is passed to the function
that processes this key, as if you'd entered that string
in the GUI directly. To avoid parsing headaches, you
should use quotes with this qualifier. For example, say
you want to pass 0.0 0.0 0.0 to the 'ctrl+j' key press.
At the shell you would enter:
DriveSuma -com viewer_cont '-key:v"0.8 0 10.3"' ctrl+j
In another example, say you want to jump to node 54 on the
right hemisphere (hence the 'R' in '54R'), then you would
execute:
DriveSuma -com viewer_cont '-key:v54R' j
-viewer VIEWER: Specify which viewer should be acted
upon. Default is viewer 'A'. Viewers
must be created first (ctrl+n) before
they can be acted upon.
You can also refer to viewers with integers
0 for A, 1 for B, etc.
For -viewer to take effect it must be in the
same -com viewer_cont ... commands. For example:
... -com viewer_cont -viewer B -viewer_size 600 900 ...
-viewer_width or (-width) WIDTH: Set the width in pixels of
the current viewer.
-viewer_height or (-height) HEIGHT: Set the height in pixels of
the current viewer.
-viewer_size WIDTH HEIGHT : Convenient combo of -viewer_width
and -viewer_height
-viewer_position X Y: Set position on the screen
-controller_position X Y: Set position of the object (surface)
controller on the screen
-inout_notify y/n: Turn on or off function call tracing
-N_foreg_smooth n: Number of foreground smoothing iterations
Same as suma's interactive '8' key or what
you'd set with env: SUMA_NumForeSmoothing
-N_final_smooth n: Number of final color smoothing iterations
Same as suma's interactive '*' key or what
you'd set with env: SUMA_NumForeSmoothing
+ Example viewer_cont (assumes all previous examples have
been executed and suma is still running).
- a series of commands that should be obvious.
-------------------------------------
DriveSuma -com viewer_cont -key R -key ctrl+right
DriveSuma -com viewer_cont -key:r3:s0.3 up \
-key:r2:p left -key:r5:d right \
-key:r3 z -key:r5 left -key F6
DriveSuma -com viewer_cont -key m -key down \
-com sleep 2s -com viewer_cont -key m \
-key:r4 Z -key ctrl+right
DriveSuma -com viewer_cont -key m -key right \
-com pause press enter to stop this misery \
-com viewer_cont -key m
o recorder_cont: Apply commands to recorder window
+ Optional parameters for action recorder_cont:
-anim_dup DUP: Save DUP copies of each frame into movie
This has the effect of slowing movies down
at the expense of file size, of course.
DUP's default is set by the value of AFNI_ANIM_DUP
environment variable.
To set DUP back to its default value,
use -anim_dup 0.
-save_as PREFIX.EXT: Save image(s) in recorder
in the format determined by
extension EXT.
Allowed extensions are:
agif or gif: Animated GIF (movie)
mpeg or mpg: MPEG (movie)
jpeg or jpg: JPEG (stills)
png: PNG (stills)
-save_index IND: Save one image indexed IND (start at 0)
-save_range FROM TO: Save images from FROM to TO
-save_last: Save last image (default for still formats)
-save_last_n N: Save last N images
-save_all: Save all images (default for movie formats)
-cwd ABSPATH: Set ABSPATH as SUMA's working directory.
This path is used for storing output files
or loading dsets.
+ Example recorder_cont (assumes there is a recorder window)
currently open from SUMA.
-------------------------------------
DriveSuma -com recorder_cont -save_as allanimgif.agif \
-com recorder_cont -save_as lastone.jpg -save_last \
-com recorder_cont -save_as three.jpg -save_index 3 \
-com recorder_cont -save_as some.png -save_range 3 6
o object_cont: Apply settings to object controller.
o surf_cont: Apply settings to surface controller.
Note that for most cases, the use of object_cont and surf_cont is
interchangeable.
+ Optional parameters for action surf_cont:
(Parameter names reflect GUI labels.)
-surf_label S_LABEL: A label to identify the target surface
-load_dset DSET: Load a dataset
! NOTE: When using -load_dset you can follow it
with -surf_label in order to attach
the dataset to a particular target surface.
-view_surf y/n: Show or hide surface S_LABEL
-RenderMode V/F/L/P/H: Set the render mode for surface S_LABEL.
-TransMode V/0/../16: Set the transparency mode for surface S_LABEL.
-load_col COL: Load a colorfile named COL.
Similar to what one loads under
SUMA-->ctrl+s-->Load Col
COL contains 4 columns, of
the following format:
n r g b
where n is the node index and
r g b are thre flooat values between 0 and 1
specifying the color of each node.
-view_surf_cont y/n: View surface controller
-view_object_cont y/n: View object controller
-masks: Equivalent of pressing 'Masks' in tract controller
-2xmasks: Equivalent of pressing 'Masks' twice in tract controller
-delete_all_masks: Well, delete all the masks.
-load_masks: Equivalent of pressing 'Load Masks' in masks controller
-save_masks: Equivalent of pressing 'Save Masks' in masks controller
-switch_surf S_LABEL: switch state to that of surface
labeled S_LABEL and make that surface
be in focus.
-switch_dset DSET: switch dataset to DSET
-view_dset y/n: Set view toggle button of DSET
-1_only y/n: Set 1_only toggle button of DSET
-switch_cmap CMAP: switch colormap to CMAP
-switch_cmode CMODE: switch color mapping mode to CMODE
-load_cmap CMAP.1D.cmap: load and switch colormap in
file CMAP.1D.cmap
-I_sb ISB: Switch intensity to ISBth column (sub-brick)
-I_range IR0 IR1: set intensity range from IR0 to IR1.
If only one number is given, the range
is symmetric from -|IR0| to |IR0|.
-shw_0 y/n or
-show_0 y/n: Set shw 0 toggle button of DSET.
-SET_FUNC_ALPHA y/n or
-SET_FUNC_ALPHA on/off
-SET_FUNC_ALPHA A.Linear/A.Quadratic
-SET_FUNC_BOXED y/n or
-SET_FUNC_BOXED on/off
-Dsp MODE: Set the viewing mode of the current DSET.
MODE is one of XXX, Con, Col, or 'C&C'
(single quotes necessary for 'C&C' MODE).
This is equivalent to setting the 'Dsp' menu button
in the surface controller. The option is applied
to the current DSET on the selected surface.
-T_sb TSB: Switch threshold to TSBth column (sub-brick)
Set TSB to -1 to turn off thresholding.
-T_val THR: Set threshold to THR, you can now append p or % for
pvalue or percentile threshold setting.
-B_sb BSB: Switch brightness modulation to BSBth column (sub-brick)
-B_range BR0 BR1: set brightness clamping range from BR0 to BR1.
If only one number is given, the range
is symmetric from -|BR0| to |BR0|.
-B_scale BS0 BS1: Modulate brightness by BS0 factor for BR0 or lower
by BS1 factor for BR1 or higher, and linearly
interpolate scaling for BR0 < values < BR1
-Dim DIM: Set the dimming factor.
-Opa OPA: Set the opacity factor.
-Clst RAD AREA: Set the clustering parameters
-UseClst y/n: Turn on/off clustering
-setSUMAenv "'ENVname=ENVvalue'": Set an ENV in SUMA. Note that
most SUMA env need to be set at SUMA's launch time.
Setting the env from DriveSuma may not achieve what
you want, so consider using suma's -setenv instead.
-write_surf_cont_help FILE.txt: Write help output for surface
controller uses into file FILE.txt (in append mode)
Make sure the surface controller is open before you
use this command.
-write_surf_cont_sphinx_help FILE.rst: Same as -write_surf_cont_help,
but write SPHINX formatted RST file.
-snap_surf_cont_widgets FROOT: Takes snapshots of various widget
groupings and save them under FROOT*
Also, in the same vein as -write_surf_cont_help,
-write_surf_cont_sphinx_help, and -snap_surf_cont_widgets you have:
-write_vol_cont_help
-write_vol_cont_sphinx_help
-snap_vol_cont_widgets
-write_tract_cont_help
-write_tract_cont_sphinx_help
-snap_tract_cont_widgets
-write_mask_cont_help
-write_mask_cont_sphinx_help
-snap_mask_cont_widgets
-write_graph_cont_help
-write_graph_cont_sphinx_help
-snap_graph_cont_widgets
-write_roi_cont_help
-write_roi_cont_sphinx_help
-snap_roi_cont_widgets
-write_suma_cont_help
-write_suma_cont_sphinx_help
-snap_suma_cont_widgets
-write_mouse_keyb_help FILE.txt: Write help output for mouse and
keyboard shortcuts.
-write_mouse_keyb_sphinx_help FILE.rst: Same as -write_mouse_keyb_help
, but write SPHINX formatted RST file.
-write_mouse_cmap_keyb_help FILE.txt: Write help output for mouse and
keyboard shortcuts.
-write_mouse_cmap_keyb_sphinx_help FILE.rst: Same
as -write_mouse_cmap_keyb_help, but write SPHINX
formatted RST file.
+ Example surf_cont (assumes all previous examples have
been executed and suma is still running).
- Obvious chicaneries to follow:
--------------------------------
echo 1 0 0 > bbr.1D.cmap; echo 1 1 1 >> bbr.1D.cmap; \
echo 0 0 1 >> bbr.1D.cmap
IsoSurface -shape 4 128 -o_ply blooby.ply
quickspec -spec blooby.spec -tn ply blooby.ply
SurfaceMetrics -curv -spec blooby.spec \
-surf_A blooby -prefix blooby
DriveSuma -com show_surf -surf_label blooby \
-i_ply blooby.ply -surf_winding cw \
-surf_state la_blooby
DriveSuma -com surf_cont -load_dset blooby.curv.1D.dset \
-surf_label blooby -view_surf_cont y
DriveSuma -com surf_cont -I_sb 7 -T_sb 8 -T_val 0.0
DriveSuma -com surf_cont -I_range 0.05 -T_sb -1
DriveSuma -com surf_cont -I_sb 8 -I_range -0.1 0.1 \
-T_val 0.02 -Dim 0.4
DriveSuma -com surf_cont -B_sb 7 -B_range 0.5 -B_scale 0.1 0.9
DriveSuma -com surf_cont -switch_dset Convexity -1_only y
DriveSuma -com surf_cont -switch_cmap roi64 -1_only n
DriveSuma -com surf_cont -switch_cmode Dir
DriveSuma -com surf_cont -view_dset n
DriveSuma -com surf_cont -switch_dset blooby.curv.1D.dset \
-view_surf_cont n -I_range -0.05 0.14
DriveSuma -com surf_cont -load_cmap bbr.1D.cmap
+ Example for loading masks onto tracts
-------------------------------------
#This uses one of the tract files output by FATCAT's demo.
#and some tracts mask called triplets.niml.do
suma -tract DTI/o.NETS_OR_000.niml.tract &
DriveSuma -com object_cont -view_object_cont y \
-com object_cont -2xmasks \
-com object_cont -delete_all_masks \
-com object_cont -load_masks triplets.niml.mo
o kill_suma: Close suma and quit.
Advice:
-------
If you get a colormap in your recorded image, it is
because the last thing you drew was the surface controller
which has an openGL surface for a colormap. In such cases,
Force a redisplay of the viewer with something like:
-key:r2:d m
where the m key is pressed twice (nothing)
changes in the setup but the surface is
redisplayed nonetheless because of the 'd'
key option.
Crashes: It is possible for SUMA to crash under certain combinations
of commands that involve opening X windows followed by
some command. For example, suma might crash with:
DriveSuma -com viewer_cont -viewer_size 600 600 -key 'ctrl+n'
Splitting such a command into two DriveSuma instances gets
around the problem:
DriveSuma -com viewer_cont -viewer_size 600 600
DriveSuma -com viewer_cont -key 'ctrl+n'
Options:
--------
-echo_edu: Echos the entire command line (without -echo_edu)
for edification purposes
-echo_nel_stdout: Spit out the NIML object being sent to SUMA for
-echo_nel_stderr: edification purposes. These two options are meant
to help motivate the example in HalloSuma.
You need to have SUMA up and listening for this option
to take effect.
Example: DriveSuma -echo_nel_stdout -com viewer_cont '-key:v28' j
-echo_nel FILE: Write the elements to FILE.
You can also use stdout or stderr for FILE.
-examples: Show all the sample commands and exit
-help: All the help, in detail.
** NOTE: You should also take a look at scripts @DO.examples and
@DriveSuma for examples. Suma's interactive help (ctrl+h) for
the kinds of controls you can have with -key option.
-h: -help, with slightly less detail
-help_nido: Show the help for NIML Displayable Objects and exit.
Same as suma -help_nido
-C_demo: execute a preset number of commands
which are meant to illustrate how one
can communicate with SUMA from one's
own C code. Naturally, you'll need to
look at the source code file SUMA_DriveSuma.c
Example:
suma -niml &
DriveSuma -C_demo
Specifying input surfaces using -i or -i_TYPE options:
-i_TYPE inSurf specifies the input surface,
TYPE is one of the following:
fs: FreeSurfer surface.
If surface name has .asc it is assumed to be
in ASCII format. Otherwise it is assumed to be
in BINARY_BE (Big Endian) format.
Patches in Binary format cannot be read at the moment.
sf: SureFit surface.
You must specify the .coord followed by the .topo file.
vec (or 1D): Simple ascii matrix format.
You must specify the coord (NodeList) file followed by
the topo (FaceSetList) file.
coord contains 3 floats per line, representing
X Y Z vertex coordinates.
topo contains 3 ints per line, representing
v1 v2 v3 triangle vertices.
ply: PLY format, ascii or binary.
Only vertex and triangulation info is preserved.
stl: STL format, ascii or binary.
This format of no use for much of the surface-based
analyses. Objects are defined as a soup of triangles
with no information about which edges they share. STL is only
useful for taking surface models to some 3D printing
software.
mni: MNI .obj format, ascii only.
Only vertex, triangulation, and node normals info is preserved.
byu: BYU format, ascii.
Polygons with more than 3 edges are turned into
triangles.
bv: BrainVoyager format.
Only vertex and triangulation info is preserved.
dx: OpenDX ascii mesh format.
Only vertex and triangulation info is preserved.
Requires presence of 3 objects, the one of class
'field' should contain 2 components 'positions'
and 'connections' that point to the two objects
containing node coordinates and topology, respectively.
gii: GIFTI XML surface format.
obj: OBJ file format for triangular meshes only. The following
primitives are preserved: v (vertices), f (faces, triangles
only), and p (points)
Note that if the surface filename has the proper extension,
it is enough to use the -i option and let the programs guess
the type from the extension.
You can also specify multiple surfaces after -i option. This makes
it possible to use wildcards on the command line for reading in a bunch
of surfaces at once.
-onestate: Make all -i_* surfaces have the same state, i.e.
they all appear at the same time in the viewer.
By default, each -i_* surface has its own state.
For -onestate to take effect, it must precede all -i
options with on the command line.
-anatomical: Label all -i surfaces as anatomically correct.
Again, this option should precede the -i_* options.
More variants for option -i:
-----------------------------
You can also load standard-mesh spheres that are formed in memory
with the following notation
-i ldNUM: Where NUM is the parameter controlling
the mesh density exactly as the parameter -ld linDepth
does in CreateIcosahedron. For example:
suma -i ld60
create on the fly a surface that is identical to the
one produced by: CreateIcosahedron -ld 60 -tosphere
-i rdNUM: Same as -i ldNUM but with NUM specifying the equivalent
of parameter -rd recDepth in CreateIcosahedron.
To keep the option confusing enough, you can also use -i to load
template surfaces. For example:
suma -i lh:MNI_N27:ld60:smoothwm
will load the left hemisphere smoothwm surface for template MNI_N27
at standard mesh density ld60.
The string following -i is formatted thusly:
HEMI:TEMPLATE:DENSITY:SURF where:
HEMI specifies a hemisphere. Choose from 'l', 'r', 'lh' or 'rh'.
You must specify a hemisphere with option -i because it is
supposed to load one surface at a time.
You can load multiple surfaces with -spec which also supports
these features.
TEMPLATE: Specify the template name. For now, choose from MNI_N27 if
you want to use the FreeSurfer reconstructed surfaces from
the MNI_N27 volume, or TT_N27
Those templates must be installed under this directory:
/home/afniHQ/.afni/data/
If you have no surface templates there, download
https://afni.nimh.nih.gov/pub/dist/tgz/suma_MNI_N27.tgz
and/or
https://afni.nimh.nih.gov/pub/dist/tgz/suma_TT_N27.tgz
and/or
https://afni.nimh.nih.gov/pub/dist/tgz/suma_MNI152_2009.tgz
and untar them under directory /home/afniHQ/.afni/data/
DENSITY: Use if you want to load standard-mesh versions of the template
surfaces. Note that only ld20, ld60, ld120, and ld141 are in
the current distributed templates. You can create other
densities if you wish with MapIcosahedron, but follow the
same naming convention to enable SUMA to find them.
SURF: Which surface do you want. The string matching is partial, as long
as the match is unique.
So for example something like: suma -i l:MNI_N27:ld60:smooth
is more than enough to get you the ld60 MNI_N27 left hemisphere
smoothwm surface.
The order in which you specify HEMI, TEMPLATE, DENSITY, and SURF, does
not matter.
For template surfaces, the -sv option is provided automatically, so you
can have SUMA talking to AFNI with something like:
suma -i l:MNI_N27:ld60:smooth &
afni -niml /home/afniHQ/.afni/data/suma_MNI_N27
Specifying surfaces using -t* options:
-tn TYPE NAME: specify surface type and name.
See below for help on the parameters.
-tsn TYPE STATE NAME: specify surface type state and name.
TYPE: Choose from the following (case sensitive):
1D: 1D format
FS: FreeSurfer ascii format
PLY: ply format
MNI: MNI obj ascii format
BYU: byu format
SF: Caret/SureFit format
BV: BrainVoyager format
GII: GIFTI format
NAME: Name of surface file.
For SF and 1D formats, NAME is composed of two names
the coord file followed by the topo file
STATE: State of the surface.
Default is S1, S2.... for each surface.
Specifying a surface specification (spec) file:
-spec SPEC: specify the name of the SPEC file.
As with option -i, you can load template
spec files with symbolic notation trickery as in:
suma -spec MNI_N27
which will load the all the surfaces from template MNI_N27
at the original FreeSurfer mesh density.
The string following -spec is formatted in the following manner:
HEMI:TEMPLATE:DENSITY where:
HEMI specifies a hemisphere. Choose from 'l', 'r', 'lh', 'rh', 'lr', or
'both' which is the default if you do not specify a hemisphere.
TEMPLATE: Specify the template name. For now, choose from MNI_N27 if
you want surfaces from the MNI_N27 volume, or TT_N27
for the Talairach version.
Those templates must be installed under this directory:
/home/afniHQ/.afni/data/
If you have no surface templates there, download one of:
https://afni.nimh.nih.gov/pub/dist/tgz/suma_MNI_N27.tgz
https://afni.nimh.nih.gov/pub/dist/tgz/suma_TT_N27.tgz
https://afni.nimh.nih.gov/pub/dist/tgz/suma_MNI152_2009.tgz
and untar them under directory /home/afniHQ/.afni/data/
DENSITY: Use if you want to load standard-mesh versions of the template
surfaces. Note that only ld20, ld60, ld120, and ld141 are in
the current distributed templates. You can create other
densities if you wish with MapIcosahedron, but follow the
same naming convention to enable SUMA to find them.
This parameter is optional.
The order in which you specify HEMI, TEMPLATE, and DENSITY, does
not matter.
For template surfaces, the -sv option is provided automatically, so you
can have SUMA talking to AFNI with something like:
suma -spec MNI_N27:ld60 &
afni -niml /home/afniHQ/.afni/data/suma_MNI_N27
[-novolreg]: Ignore any Rotate, Volreg, Tagalign,
or WarpDrive transformations present in
the Surface Volume.
[-noxform]: Same as -novolreg
[-setenv "'ENVname=ENVvalue'"]: Set environment variable ENVname
to be ENVvalue. Quotes are necessary.
Example: suma -setenv "'SUMA_BackgroundColor = 1 0 1'"
See also options -update_env, -environment, etc
in the output of 'suma -help'
Common Debugging Options:
[-trace]: Turns on In/Out debug and Memory tracing.
For speeding up the tracing log, I recommend
you redirect stdout to a file when using this option.
For example, if you were running suma you would use:
suma -spec lh.spec -sv ... > TraceFile
This option replaces the old -iodbg and -memdbg.
[-TRACE]: Turns on extreme tracing.
[-nomall]: Turn off memory tracing.
[-yesmall]: Turn on memory tracing (default).
NOTE: For programs that output results to stdout
(that is to your shell/screen), the debugging info
might get mixed up with your results.
Global Options (available to all AFNI/SUMA programs)
-h: Mini help, at time, same as -help in many cases.
-help: The entire help output
-HELP: Extreme help, same as -help in majority of cases.
-h_view: Open help in text editor. AFNI will try to find a GUI editor
-hview : on your machine. You can control which it should use by
setting environment variable AFNI_GUI_EDITOR.
-h_web: Open help in web browser. AFNI will try to find a browser.
-hweb : on your machine. You can control which it should use by
setting environment variable AFNI_GUI_EDITOR.
-h_find WORD: Look for lines in this programs's -help output that match
(approximately) WORD.
-h_raw: Help string unedited
-h_spx: Help string in sphinx loveliness, but do not try to autoformat
-h_aspx: Help string in sphinx with autoformatting of options, etc.
-all_opts: Try to identify all options for the program from the
output of its -help option. Some options might be missed
and others misidentified. Use this output for hints only.
Ziad S. Saad SSCC/NIMH/NIH saadz@mail.nih.gov
This page auto-generated on
Thu Oct 31 09:43:44 PM EDT 2024