What are the MATLAB and external requirements?
We try to develop FieldTrip in such a way that it works with the latest MATLAB release on the most popular operating system platforms, but at the same time we try to have it work with as many older MATLAB versions as possible.
However, the MATLAB syntax and the availability of functions in the standard Mathworks toolboxes changes over time. Consequently, sometimes we will use MATLAB code that is only supported from a certain version upwards. In general we attempt to support MATLAB versions up to 5 years old.
An online poll in April 2011 showed that a large quantity of our users access the FieldTrip toolbox with a Matlab version younger than 2006 (<5 years). The full results can be found here.
MATLAB includes a large number of functions in standard toolboxes that come with every installation, but certain functions are included in additional (commercial) toolboxes from Mathworks, such as the signal processing or the statistics toolbox. Whether you need to buy these toolboxes depends on whether you want to use specific functionality in FieldTrip. We try to avoid using these additional Mathworks toolboxes to the extent that we will look for alternatives (e.g. from Octave) or use drop-in replacement functions for certain functions, as long as the time required to implement these alternatives is not too large.
The following functions depend on the Mathworks “images” toolbox
The following functions depend on the Mathworks “optim” toolbox
The following functions depend on the Mathworks “signal” toolbox
The following functions depend on the Mathworks “stats” toolbox
Besides the non-free Mathworks toolboxes that are used by some functions, FieldTrip also makes use of other free toolboxes for certain functionality, such as access to specific file formats. Using these external toolboxes allows us to focus on specifically improving FieldTrip and to join forces with other open-source software projects. Whether you need these non-commercial external toolboxes depends on the dataformats that you will use and whether you want to use the specific functionality. Most of these are also developed as open source projects and they all can be downloaded from the internet. Some of them are not open source, but can be redistributed in compiled form (e.g. mex files, p-files, compiled binaries). There are also certain toolboxes that FieldTrip can use which have even more strict copyright restrictions attached (e.g. signing a Non-Disclosure Agreement), which we are not allowed to redistribute.
A considerable number of external toolboxes is included in the FieldTrip release zip file inside the “fieldtrip/external” subdirectory. These include
- afni MATLAB functions (to read AFNI data)
- biosig (to read various EEG file formats)
- eeglab (only for independent component analysis)
- megdp (to read Neuromag fif data)
- spm2 (to read some MRI formats, for spatial normalization and segmentation)
- spm8 (to read some MRI formats, for spatial normalization and segmentation)
- ctf (to read CTF data)
- mne (to read Neuromag fif data)
- yokogawa (to read data from the Yokogawa MEG system)
- dipoli (for forward EEG modeling using BEM)
- simbio (for forward EEG modeling using FEM)
Although we distribute these toolboxes along with FieldTrip to facilitate their use, we do not develop or support them. Each of the corresponding toolboxes has its own license agreement, and in the corresponding directories you can find more information on whom is responsible for them.
The following toolboxes are also used for specific computations, but are not included in the default FieldTrip release. You can download them separately and place then in the “fieldtrip/external” directory (where they will be automatically found) or anywhere else on your path.
Replacements for functions from Mathworks toolboxes
To prevent unnecessary dependencies on functions from additional Mathworks toolboxes, FieldTrip includes a number of drop-in replacement functions with the same behaviour as their MATLAB counterpart.
Alternatives are provided for the following functions from the “stats” toolbox
- nansum, nanstd, etc.
Alternatives are provided for the following functions from the “signal” toolbox
Alternatives are provided for the following functions from the “images” toolbox