fMRI Software (FSL, SPM, BrainVoyager) for beginners – how to choose?
Functional Magnetic Resonance Imaging (fMRI) has now become a pretty mainstream activity for researchers interested in the workings of the human brain, and since its inception in the early-90s a whole load of software has been developed which can enable even the most clueless or Unix-averse researcher to (reasonably) easily perform complex analyses on fMRI datasets. I wrote a brief earlier post about fMRI software based on a presentation, and thought I’d expand on it a little more in a future series. There’s obviously a great deal to say about these pieces of software in terms of advanced features, UI etc. and I’ll get to all that at some point in the future. This post will focus on the very basic aspects of three popular choices for fMRI analysis: BrainVoyager, FSL and SPM*; what platforms they support, and the basic features of each.
All three of these applications have evolved considerably from their origins in the early-to-mid 90s, and all three are now reasonably slick and user-friendly packages. To a very large extent they all overlap in terms of features (there’s not much you can do with one of them, that you can’t also accomplish with the other two) so your choice of software is potentially going to be less focussed on features and more informed by factors such as cost, the platforms you have available to run it, and the most important factor – local expertise. What I mean by this is that if you’re working in a lab where everyone uses FSL, you should use FSL. If everyone around you is using SPM, use SPM. The ability to be able to quickly get answers to your questions (and you will have questions) and get expert help if needed trumps practically any other consideration. The manuals and guides for these packages are generally spotty and often downright unhelpful – there is no substitute for being helped through your first few analyses by a friendly expert.**
Having said all that, here is a brief breakdown of each, including the platforms, key features and costs.
BrainVoyager QX (current version at the time of writing: 2.3)
Platforms: All (Windows, Mac OSX and Linux)
Cost: Lots – around €5000 for the full package (base + surface modules)
File formats: Proprietary (semi-open – file specification are available)
Documentation: Pretty good for the basics, although lacking in terms of advanced features.
BrainVoyager is a stand-alone package, originally developed for Windows, but since expanded to cover all platforms. It’s very feature-rich and has a development strategy best characterised as agile - new versions are usually available every few months, with major updates every couple of years. Its user interface is based around the familiar Windows paradigm of menus and dialog boxes, which makes it very intensive in terms of mouse-clicking to use. While the interface is instantly familiar to Windows users (which is a good thing) gradual feature-creep has meant that the dialog boxes have inevitably become very crowded with options, and advanced features are often somewhat hidden. Does have its own scripting language for automation though. Also has a lot of very advanced and attractive features, and in particular the surface module (for doing things like cortical segmentation/reconstruction, surface based coregistration and analyses etc.) is the best out there. Also very good for doing things on individual-subject data (defining Regions of Interest, time-course extraction, ROI-GLM analyses etc.).
Best features: Familiar UI, ROI-implementation, surface module. Runs natively on Windows and is coded (and pretty nicely optimised) in C++ so is fast as a greased pig. Produces beautiful brain images very easily.
Worst features: Proprietary file-formats are a pain for input/output and integration with other software. Crowded UI which takes a degree of experience to effectively navigate.
Best for: Windows-fans. Individual-subject analyses, surface-based analyses.
Platforms: Unix (Mac OS X, Linux) only.
File-formats: 4D Nifti (.nii). Nice.
Documentation: Basic information available on each tool through the FSL website, also the inline hover-help-bubbles in the GUIs are pretty useful.
FSL started out with a somewhat different philosophy than the other two; initially it was based around the idea of doing model-free Independent Components Analysis (ICA) based analyses of imaging data. It’s since embraced the usefulness of the GLM approach, but ICA analyses are still a core part of its DNA, so to speak. Two options for a UI – a nice Graphical User Interface for most of its tools, and command line options for advanced users. Runs natively on Unix systems so is nice and fast, but does require at least a basic familiarity with Unix to use effectively. Seems to follow an almost opposite design philosophy to BrainVoyager in that it keeps the UIs very clean and simple, with no extraneous options – this does mean that access to advanced functions is somewhat hidden, and often entails having to use the command line tools. In general, follows a very Unix-like philosophy of providing advanced features, i.e. it doesn’t, but it does provide you with all the tools necessary to build them yourself fairly easily. In addition FSLView is a fantastic and very powerful stand-alone image viewer/manipulator.
Best features: Price (i.e. nothing), FSLView, nice uncluttered UI for beginners, batch-analyses only requires writing a shell script.
Worst features: Doesn’t work on Windows***, build-it-yourself philosophy for advanced features.
Best for: Unix-fans. Model-free analysis methods (very useful, if not essential, for resting-state fMRI, amongst other things).
Statistical Parametric Mapping (SPM8)
Platforms: All (anything that Matlab can run on).
Cost: Free (but requires a Matlab licence, which can be a bit spendy).
File-formats: 3D Analyze (.hdr/.img – urgh) or 3D/4D Nifti.
Developed by the clever gentlemen and ladies of the Wellcome Trust Centre for Neuroimaging in Queen Square, SPM is probably the choice for the largest number of users around the world. The reasons for its popularity are probably because its innovative approach back in the day, and the fact that it’s coded as a Matlab toolbox, which makes development of additional functionality pretty easy. This reliance on running on-top of Matlab historically meant that it always ran pretty slowly, although with modern multi-GHz processors and some optimisation this is not such a problem as it used to be. The big strength of SPM is its massive and active user-base, who contribute a huge number of additional tool-boxes and extension to the base program – an up-to-date list is maintained on the SPM website. These extensions mean that SPM can do pretty much anything you could ever want it to do – it’s the rugged 4-wheel-drive Land Rover of fMRI analysis software. The limitations of application development within Matlab mean that the GUI could in no way be described as slick, but it’s considerably improved in recent versions (I still have nightmares about the horrors of specifying complex models in SPM2). Likewise, the visualisation tools available in the base program are pretty basic and clunky – though these can be extended by use of the extensions – not the best for making pretty pictures of your results though.
Best features: Go-anywhere, do-anything capabilities through the use of SPM-extensions. Batch-processing features are now pretty effective. As close to an industry-standard as it gets.
Worst features: Butt-ugly interface. Support for 4D image files is somewhat hidden.
Best for: Matlab-fans. Standard whole-brain, 20-subject group analyses.
So there you have it, a very brief and reductionist round-up of the three most popular pieces of brain-imaging analysis software. Apologies to anyone I’ve offended by ragging on their favourite piece of software unduly – feel free to correct me in the comments if you feel it necessary.
*Other fMRI software exists, but if you really want to start out using one of the more exotic options, then you’re essentially a masochist and should be writing your own custom analysis scripts in PERL or Python.
**Such help usually only requires the purchase of alcoholic beverages for the expert at some later time.
***You could probably get it running with a Unix emulator like Cygwin, but really, life’s too short.