:orphan:

.. _ahelp_ROIgrow:

*******
ROIgrow
*******

.. contents:: :local:


| 

.. code-block:: none

    
    Usage: ROIgrow <-i_TYPE SURF> <-roi_nodes ROI.1D> <-lim LIM>
                   [-prefix PREFIX]
           A program to expand an ROI on the surface.
           The roi is grown from each node by a user-determined
           distance (geodesic, measured along the mesh).
    
      Mandatory Parameters:
         -i_TYPE SURF: Specify input surface.
                 You can also use -t* and -spec and -surf
                 methods to input surfaces. See below
                 for more details.
         -roi_labels ROI_LABELS: Data column containing
                                 integer labels of ROIs.
                                 Each integer label gets
                                 grown separately.
                                 If ROI_LABELS is a dataset in niml
                                 format, then you need not
                                 use -roi_nodes because node 
                                 indices are stored with the 
                                 labels.
            Notice: With this option, an output is created for
                    each label. The output contains two columns:
                    One with node indices and one with the label.
                    When this option is not used, you get one
                    column out containing node indices only.
    
            You can also use the key word PER_NODE (i.e. -roi_labels PER_NODE)
            to tell the program to consider each node to be a separate ROI.
            If you do not use the option -roi_nodes (see below), then each node
            forming the surface is considered to be an ROI on its own and a 
            region will be grown around it accordingly. Under this scenario you 
            would get as many files out as you have nodes in the surface.
            If you do specify the option -roi_nodes, then growth is done 
            separately from each node index found in ROI_INDICES below.
            PER_NODE is likely to produce lots of files unless restricted to a 
            few node indices. You could hide them by using a prefix beginning
            with '.', such as -prefix .HIDDEN_FILES 
            
            Example: ROIgrow -i ld20 -roi_labels PER_NODE -prefix toy -lim 10
    
                     #launch suma with:
                     suma -i ld20 &
                     #Visualize grown neighborhood around node 1484 for example.
                     DriveSuma -com surf_cont -load_dset toy.1484.1D -I_sb 1
    
         -full_list: Output a row for each node on the surface.
                     Nodes not in the grown ROI, receive a 0 for
                     a label. This option is ONLY for use with
                     -roi_labels. This way you can combine 
                     multiple grown ROIs with, say, 3dcalc.
                     For such operations, you are better off 
                     using powers of 2 for integer labels.
         -roi_nodes ROI_INDICES: Data column containing
                         node indices of ROI. 
                         Use the [] column
                         specifier if you have more than
                         one column in the data file.
                         To get node indices from a niml dset
                         use the '[i]' selector.
         -grow_from_edge: Grow ROIs from their edges rather than
                          the brute force default. This might 
                          make the program faster on large ROIs  
                          and large surfaces.
         -lim LIM: Distance to cover from each node.
                   The units of LIM are those of the surface's
                   node coordinates. Distances are calculated
                   along the surface's mesh.
         -insphere DIA: Instead of growing along the surface, 
                        just add nodes that are inside a sphere of
                        diameter DIA around the ROI node.
                        Option -grow_from_edge is useless in this mode.
         -inbox E1 E2 E3: Like -isinsphere, but use a box of edge widths
                            E1 E2 E3 instead of DIA.
    
      Optional Parameters:
         -prefix PREFIX: Prefix of 1D output dataset.
                         Default is ROIgrow
     
     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 
    
     Specifying a surface using -surf_? method:
        -surf_A SURFACE: specify the name of the first
                surface to load. If the program requires
                or allows multiple surfaces, use -surf_B
                ... -surf_Z .
                You need not use _A if only one surface is
                expected.
                SURFACE is the name of the surface as specified
                in the SPEC file. The use of -surf_ option 
                requires the use of -spec option.
       [-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.
      
    
    
    Compile Date:
       Apr  6 2025