Skip to content


Personal tools
You are here: Home » AFNI » About » Summary of AFNI capabilities

Summary of AFNI capabilities

Document Actions
Summary of AFNI capabilities

AFNI is an environment for processing and displaying functional MRI data. It was designed and written at MCW, largely by RW Cox, starting in 1994. AFNI runs under Unix+X11+Motif systems, including SGI and Linux. It now comprises over 100,000 lines of C source code, and its capabilities are continually being extended. In addition, a skilled C programmer can add interactive and batch functions to AFNI with relative ease.

AFNI refers both to the interactive program of that name, and to the entire software package. The basic unit of data storage is the "3D dataset", which consists of one or more 3D arrays of voxel values (bytes, shorts, floats, or complex numbers), plus some control information stored in a header file.

AFNI Built-in Functions
Just the most obvious ones (much of the "fun" of AFNI comes from finding the unobvious functions):

  • Switch viewing/analysis between many different datasets.
  • Image display in axial, sagittal, and/or coronal views (including multi-image montages).
  • Display of graphs (line and surface) of data extracted from image viewers.
  • Time series graphing of square regions from image viewers.
  • Linked image/graph viewing of multiple 3D datasets (e.g., linked scrolling through multiple brains).
  • Transformation to Talairach coordinates (12 sub-volume piecewise linear method).
  • Computation of activation maps using the "correlation method".
  • Color overlay of activation maps onto higher-resolution anatomical images (resampling of lower-resolution functionals is handled on the fly).
  • Interactive thresholding of functional overlays.

Command Line Programs
These programs are often used in batch processing scripts. They take as input 3D AFNI datasets, and compute new 3D datasets as output. The results can then be displayed or further processed with the interactive AFNI program.

  • to3d -- Program to create a 3D AFNI dataset from image data.
  • 3dmerge -- Program to average or otherwise merge multiple 3D datasets.
  • 3dttest -- Program to do voxel-by-voxel t-tests on 3D datasets.
  • 3dANOVA, 3dANOVA2, and 3dANOVA3 -- This series of program performs 1-way, 2-way, and 3-way ANOVA tests across a collection of 3D datasets, on a voxel-by-voxel basis.
  • 3dRegAna -- Multiple linear regression across a collection of 3D datasets.
  • 3dFriedman, 3dKruskalWallis, 3dMannWhitney, and 3dWilcoxon -- This series of programs carries out various nonparametric statistical analyses across a collection of 3D datasets, on a voxel-by-voxel basis.
  • 3dDeconvolve -- Multiple linear regression of a 3D+time series, including linear deconvolution to find an ideal response vector for each voxel.
  • 3dNLfim -- Nonlinear regression of a 3D+time series. The nonlinear time series model functions can be anything programmable in C. Twelve sample model functions are supplied with the AFNI source code.
  • 3dDetrend -- Use multiple linear regression to remove unwanted components from voxel time series in a 3D+time dataset.
  • 3dTcorrelate -- Compute the correlation coefficient between 2 datasets (voxel-wise)
  • 3dcalc -- General purpose 3D dataset calculator program.
  • 3dTsmooth -- Program to smooth voxel time series.
  • 3dTstat -- Program to calculate statistics of voxel time series.
  • 3dMean -- Program to calculate the mean of a collection of datasets.
  • 3dFourier -- Program to do Fourier filtering of 3D+time datasets along the time axis.
  • 3dWavelets -- Program to do Wavelet filtering of 3D+time datasets along the time axis.
  • 3dfim -- Implements the "correlation method" on a 3D+time series.
  • 3dfim+ -- Implements the "correlation method" on a 3D+time series, with many additional output options.
  • 3dclust -- Program to find spatially contiguous clusters of above-threshold voxels.
  • 3dfractionize -- Program to resample an ROI mask from one grid spacing to another.
  • 3dmaskave -- Program to compute statistics of voxels selected by an ROI mask.
  • 3dmaskdump -- Program to print out values of voxels selected by an ROI mask.
  • 3dUndump -- Program to create a dataset from a list of voxel coordinates and values.
  • 3dROIstats -- Program to compute statistics of each of a collection of ROIs defined by a mask dataset.
  • 3dOverlap -- Program to compute which voxels are nonzero in an entire collection of datasets.
  • 3dpc -- Program to compute principal components from multiple 3D datasets.
  • 3ddot -- Program to calculate the correlation coefficient between two 3D volumes.
  • 3dStatClust -- Cluster voxels together based on similarities in parameter vectors (e.g., from 3dNLfim).
  • 3drotate -- Program to rotate the volumes in a 3D dataset.
  • 2dImReg -- Program to do 2D (slice-wise) registration of a 3D+time series.
  • 3dvolreg -- Program to do 3D volume registration of a 3D+time series.
  • 3dAnatNudge -- Program that tries to align SPGR and EPI datasets.
  • 3dTagalign -- Program to align 3D volumes based on "tags" manually set using plug_tag.
  • 3dTshift -- Utility program to time-shift voxel time series to the same temporal origin.
  • 3dTcat -- Utility program to catenate multiple 3D+time series files into one.
  • 3dbucket -- Utility program to catenate 3D volumes into one big "bucket".
  • 3dbuc2fim -- Utility program to extract 3D volumes from a "bucket" dataset.
  • 3dhistog -- Utility program to extract a histogram of a 3D dataset.
  • 3dinfo -- Utility program to print out information about a 3D dataset.
  • 3dNotes -- Utility program to attach notes to a dataset header file, and to retrieve them for reading.
  • 3drefit -- Utility program to edit the header information about a 3D dataset.
  • 3dZeropad -- Utility program to add planes of zeros to the edges of a 3D dataset.
  • 3dZregrid -- Utility program to interpolate a dataset to a new slice thickness.
  • 3dZcutup -- Utility program to cut up a dataset in the slice (z) direction.
  • 3dZcat -- Utility program to assemble datasets in the slice (z) direction.
  • 3dToutcount -- Utility program to count number of "outliers" in a 3D+time dataset.
  • 3dTqual -- Utility program to measure "quality" of a 3D+time dataset.
  • 3dTSgen -- Utility program to generate random 3D+time series datasets from nonlinear model equations; used for testing 3dNLfim and other analysis codes.
  • AlphaSim -- Simulates noise-only 3D+time series and activation detection therefrom, in order to estimate the probability of false positives. Used when analytical estimates for this p-value are unavailable.
  • adwarp -- Resample a functional dataset to the Talairach coordinate grid defined by an anatomical "parent".
  • 3daxialize -- Reorient the slices in a dataset to be in a standard axial order.
  • 3dIntracranial -- Remove the "scalp" from a T1-weighted high-resolution anatomical dataset.

    The following utility programs make certain tasks easier:

  • waver -- Utility program to generate an "ideal" response function for use with the correlation method (or other regression analyses).
  • 1deval -- Utility program to evaluate an arithemetic expression at a set of evenly spaced points in time.
  • 1dplot -- Quick and dirty graph of a 1D array of numbers read from an ASCII file.
  • 1dfft -- Calculate FFT of a 1D array of numbers.
  • 1dcat -- Catenate 1D files together into a multi-column file.
  • float_scan -- Utility program to scan a floating point file for illegal values (Infinity and NaN).
  • 2swap, 4swap, and 24swap -- Utility programs to swap byte pairs and quads; useful when transferring data between computers with different "endian-ness".
  • RSFgen -- Generates random stimulus timeseries functions.
  • 3dAttribute -- Print information from the header of a dataset.
  • 3dClipLevel -- Estimate the value to clip off "air" voxels.
  • 3dMINCtoAFNI -- Convert a MINC file to an AFNI dataset
  • 3dAFNItoANALYZE -- Convert an AFNI dataset to ANALYZE files
  • 3drename -- Rename AFNI datasets
  • 3dcopy -- Copy AFNI datasets

Interactive AFNI Plugins
Plugins are a way to add functionality to AFNI without modifying the core software. There is a 40 page programming manual to aid in the creation of new plugins.

  • plug_clust -- Interactive version of 3dclust.
  • plug_copy -- Make a copy of a dataset (useful for subsequent editing/drawing).
  • plug_deconvolve -- Interactive version of 3dDeconvolve.
  • plug_delay_V2 -- Hilbert transform estimation of time delay in active voxels.
  • plug_drawdset -- Draw values into a dataset (used to create ROI masks).
  • plug_roiedit -- Helps choose ROIs based on anatomy.
  • plug_edit -- Interactive version of 3dmerge (voxel value editing functions).
  • plug_histog -- Plot histogram of one dataset 3D array.
  • plug_imreg -- 2D (slice-wise) image registration.
  • plug_lsqfit -- Interactive linear least squares regression on time series data.
  • plug_maskave -- Interactive version of 3dmaskave (statistics from an ROI).
  • plug_nlfit -- Interactive nonlinear least squares regression on time series data.
  • plug_power -- Power spectrum estimation from a 3D+time series.
  • plug_realtime -- Real-time image acquisition, registration, and activation maps. (Program rtfeedme is used to simulate real-time imaging, and will transmit images into this plugin in lieu of a scanner.)
  • plug_render -- Volume rendering of 3D datasets, with color functional overlay.
  • plug_stats -- Compute some voxel-by-voxel statistics of a 3D+time series.
  • plug_tag -- Put "tags" into a dataset, as markers for points of interest (cf. 3dTagalign)
  • plug_volreg -- Interactive version of 3dvolreg (volume registration).
  • plug_reorder -- Reorder a 3D+time dataset; useful for analysis of "event-related" FMRI data.
  • plug_fourier -- Plugin version of 3dFourier.
  • plug_fourier -- Plugin version of 3dFourier.
  • plug_wavelets -- Plugin version of 3dWavelets.
  • plug_notes -- Plugin to view/edit text Notes attached to a dataset.

Created by Robert Cox
Last modified 2005-08-17 15:23

Powered by Plone

This site conforms to the following standards: