10.3.3. General options for AFNI programs

Overview and note on default settings

The following is a description of some generally applicable options when running AFNI programs. Each should be applicable in most AFNI program.

As part of the default AFNI setup, you (are supposed to) generate the file of default environment variables (envs) for AFNI. This file is called ~/.afnirc, meaning that it lives in your home directory, and is “hidden” in the sense that it is not shown with a default ls (because of the . at the start of its name). See if \ls -a ~/.afnirc shows the name of a file for you. If not, run afni_system_check.py -check_all, and follow the copy+paste instruction at the bottom to generate the default one.

The page listing all AFNI environment variables and their descriptions is here: AFNI environment variables.

Whenever you run an AFNI program, the ~/.afnirc file of environment variables gets sourced. So, if you want to change behavior of something in a semi-static way, set the environment variable there.

You can also set environment variables in scripts you write. This is a more “task-specific” way of setting behavior.

The first section here will show you how to set an env via an option for that command. This setting only has effect for the duration of that command’s execution.

Environment variables per-command: -Dname=val

You can set an environment variable to be used just for a particular program call by adding an option with the syntax -Dname=val, where ‘name’ is an environment variable, and ‘val’ is the value you want it to take.

For example, the following sets the line width to a desired value and green color (ignoring whatever the default in ~/.afnirc is):

1dplot                                 \
    -DAFNI_1DPLOT_COLOR_01=rgbi:0/1/0  \
    -DAFNI_1DPLOT_THIK=.04             \
    '1D: 3 4 5 3 2 1'

This is quite general. You can use this with the AFNI gui, say afni -Dname=val, etc. Enjoy the freedom!

Checking environment variable settings: afni -Vname=

As noted above, you should have default environment variables set. And hopefully you have altered them to your heart’s content.

To find out what an environment variable is set to, you could open up the ~/.afnirc file. But you might change things in a script or just hate opening text files. To find out the current value of an environment variable name from the command line, you can run the main afni program with the following option specification:

afni -Vname=

Yes, the actual variable name needs to be sandwiched between V and =. So, for example, to check out the default thickness of lines drawn in the 1dplot-style windows, you could run:

afni -VAFNI_1DPLOT_THIK=

There might be some other text displayed at the same time, so you might turn on quiet mode and the -no_detach option for just getting the specific output:

afni -q -no_detach -VAFNI_1DPLOT_THIK=

Overwriting: -overwrite

Most AFNI programs will not destroy existing datasets. Including this option tells them that it is OK to write over an existing dataset file if necessary.

For example:

3dcalc                        \
    -a DSET                   \
    -expr 'a**2'              \
    -prefix OUTPUT            \
    -overwrite

... will write OUTPUT whether there was a pre-existing dset there or not.

Ignore the default env vars: -skip_afnirc

Including this option leads to skipping the processing of your ~/.afnirc file. That file, if present, is be used to set environment variables to affect AFNI programs; so, this basically ignores any of those defaults.

Consider this:

1dplot                                 \
    -skip_afnirc                       \
    '1D: 3 4 5 3 2 1'

... which would skip any color/line thickness/etc. settings in your ~/.afnirc file.

Sometimes you might want to run an AFNI program and not have your settings applied; this option provides an easy way to skip such settings.

Program help: -hview (and other opts)

If you type the name of an AFNI program in the terminal and hit Enter (with no options), the help should be displayed in the terminal.

Similarly, most programs also have the simple option -help or -h to display the help in the terminal (a few programs actually require such an explicit plea for help).

If you want, you can redirect the help into a file, such as with:

1dplot > file1.txt

1dplot -help > file2.txt

You can then open it in a text editor, or email it as a special Valentine’s Day card.

My favorite way to view the help, though, is to have it open in a text editor directly, using the -hview option:

1dplot -hview

Your text editor automatically moves the background, too, so you can keep typing. You can set the text editor being used with the AFNI_GUI_EDITOR environment variable (e.g., in your ~/.afnirc file). For example, I have the following line in my settings file:

AFNI_GUI_EDITOR = /usr/bin/emacs

Yaaaaaay, emacs! But whatever you choose is up to you (default on Linux is probably gedit; whooooo knows what Mac chooses?).