The Brain Imaging Software Toolbox

This is the place to find out about the software available at the Brain Imaging Centre, and what strategies to use to accomplish whatever it is that you need to get done. The table on the left-hand side of the page should be useful to you if you are just quickly looking to find more information about one topic or one software program. The right hand-side is a slightly more in-depth description, and ought to be the first place you look if you can define your problem but need to find the right tool for the task. Please let us know if there is any other information that you would like to see here.

Download the software


Brain Imaging Software: An Overview

A quick note about the conventions used below: where possible I linked the program being described to its documentation web page. Where such a page does not exist, however, I simply rendered it in bold font. To get help on these programs (as well as those where there is a documentation page) try man [program] or [program] -help, for example man mincmath or mincmath -help. If you are unfamiliar with the computational environment used at the BIC, you should look at the getting started page before continuing any further.

For a more general overview of our toolkit, it might be worth checking out some of the presentations give at the 2003 MINC workshop held in Montreal. Those can be found here. It is also very much worth your while signing up to the MINC-users email list (or just browsing the archives).

There are five fundamental types of software programs available here at the BIC. They are, in no particular order:

Visualisation Tools
Interactive visualisation tools help you interact with imaging data directly, manipulate slices, manually segment images, superimpose different imaging modalities such as PET and MRI, etc.
Basic Tools
And this is where we categorise the rest. They are non-interactive, usually run quickly and only perform some minor operations on images. Mincmath and volume_stats especially come to mind as examples here
Advanced Image Processing Tools
The packages that fall under this category are non-interactive, and perform one algorithm or another on an input image in order to produce a modified output image. The four most commonly used tools here are image registration, non-uniformity correction, classification, and segmentation.
Pipelining Tools
These tools (or this tool, as it stands right now) are designed to manipulate large data-sets, usually performing a sequence of operations on each image in the data-set. This is especially useful for clinical trials or large-scale studies.
Statistical Analysis Tools
Here you find everything (or at least a few things) related to performing statistical analysis on medical images, whether it be measuring atrophy using glim_image or rCBF using EMMA.

Visualisation Tools

Displaying and visualising data is one of the main ways that most researchers at the Brain Imaging Centre interact with their data. There are five programs that are predominantly used for this purpose, each of them useful for a slightly different task.

Display
Display is the most complex of all of the visualisation tools available in the lab. It's primary uses are the display of multiple imaging modalities (PET, fMRI, etc.), as well as for manual segmentation of MRIs, aka "Brain Painting."
Register
Register, on the other hand, can be used for superimposing two volumes as well as performing manual registrations.
Postf and xdisp
Postf and xdisp are designed to quickly display a single volume, and also allow for the definition (and gathering of statistics) of ROIs (Regions of Interest).
JIV
Lastly, JIV is a register-like program written in Java and usable as an applet within a web-browser, which makes it an ideal tool for collaborations with other sites that are minc-challenged.

ray_trace.
Ray_trace is not interactive; it is designed for the creation of static images from the command-line. Some of the advantages of this approach are reproducability (i.e. it is much easier to specify the angle you want the picture taken from then to try to maneuver the volume into that position, in display) as well as cleaner image quality.

Basic tools

There are many utilities available at the BIC which don't nicely fit into one of the above categories. The list that I will give here is also by no means comprehensive, nor is it in any particular order.
mincmath
The most useful of the basic tools is in all likelihood mincmath, which allows for most common mathematical operations on minc volumes (such as addition, multiplication, thresholding, etc.).
mincinfo
mincinfo by default gives you generic information about a minc file, such as it's type, sign, range of data, plus a brief descriptions of dimensions and their order. You can also specify detailed options about what information you would like about the file you are examining, however, which makes it very useful in scripts that need only one bit of information about a file.
mincheader
mincheader prints out the entire header of a minc file onto the console - which is very useful for getting a quick glimpse of what non-image information is contained in a file.
mincedit
mincedit is a program that allows you to change header information.
smooth_matter
smooth_matter is an application for extracting blurred tissue matter maps from a classified image,
mincaverage
... is for creating an average volume out of several minc files.
xfminvert, xfmconcat, and xfmtool
are all programs for manipulating transformation matrices.

Advanced Image Processing Tools

The various image processing applications can be considered the heart of the software at the Brain Imaging Centre. Their dominant goal is the application of various algorithms to medical images. Below is a small list of the most important of these programs and their applications. To reiterate, if the program is in bold and not hyperlinked then no online documentation exists for it.

INSECT
INSECT is the algorithm to separate a structural MRI into it's three tissue types: white matter, gray matter, and CSF. There is some documentation for it under the ANIMAL section.
ANIMAL
ANIMAL is designed to label the major anatomical regions (the different lobes, corpus callosum, etc.) of a MRI.
SEAL
SEAL stands for "Sulcal Extraction and Labelling" - which pretty much explains its use as well.
N3
N3 is the intensity non-uniformity correction algorithm in place here, and its use tends to be an essential first step in any processing sequence.
cortex extraction
The cortex extraction algorithm comes in two flavours: a straightforward creation of a cortex useful for tasks such as the masking of the skull and scalp, and a much more compute intensive double-hull algorithm.
mritotal, mritoself, and other MNI AutoReg tools.
This family of algorithms linearly register two images to each other. Mritotal registers an MRI to standard Talairach space, and is the most used of them. They are all part of the MNI AutoReg package.
mincresample
Resamples an image using a given transform and optionally like another volume.

Pipelining Tools

A piece of software that has started being used with increasing frequency is the pipelining system, also known as PCS or RPPL. Essentially it is designed to perform a series of processing steps on a large database of images. At its base it uses the UCSF Batch system.

Statistical Analysis Tools

There are three main packages available for statistical analysis of medical images. The first is
glim_image
glim_image is designed for performing Voxel Based Morphometry - in other words, it is useful for examining the changes in segmented tissue matter (white matter, gray matter, CSF) as it relates to a linear model.
DOT
For PET analysis, DOT is the tool of choice ...
EMMA
... though matlab with the EMMA interface can also be handy.
fMRI statistical analysis
And lastly fMRI statistical analysis is also done using matlab.