Open Source Matlab Toolbox for Neuroelectromagnetic Forward Head Modeling
What is NFT?
Neuroelectromagnetic Forward Modeling Toolbox (NFT) is a MATLAB toolbox for generating realistic head models from available data (MRI and/or electrode locations) and for computing numerical solutions for solving the forward problem of electromagnetic source imaging (Zeynep Akalin Acar & S. Makeig, 2010). NFT includes tools for segmenting scalp, skull, cerebrospinal fluid (CSF) and brain tissues from T1-weighted magnetic resonance (MR) images. The Boundary Element Method (BEM) is used for the numerical solution of the forward problem. After extracting the segmented tissue volumes, surface BEM meshes may be generated. When a subject MR image is not available, a template head model may be warped to 3-D measured electrode locations to obtain an individualized BEM head model. Toolbox functions can be called from either a graphic user interface (gui) compatible with EEGLAB (sccn.ucsd.edu/eeglab), or from the MATLAB command line. Function help messages and a user tutorial are included. The toolbox is freely available for noncommercial use and open source development under the GNU Public License.
The NFT is released under an open source license, allowing researchers to contribute and improve on the work for the benefit of the neuroscience community. By bringing together advanced head modeling and forward problem solution methods and implementations within an easy to use toolbox, the NFT complements EEGLAB, an open source toolkit under active development. Combined, NFT and EEGLAB form a freely available EEG (and in future, MEG) source imaging solution.
The toolbox implements the major aspects of realistic head modeling and forward problem solution from available subject information:
- Segmentation of T1-weighted MR images: The preferred method of generating a realistic head model is to use a 3-D whole-head structural MR image of the subject's head. The toolbox can generate a segmentation of scalp, skull, CSF and brain tissues from a T1-weighted image.
- High-quality BEM meshes: The accuracy of the BEM solution depends on the quality of the underlying mesh that models tissue conductance-change boundaries. To avoid numerical instabilities, the mesh must be topologically correct with no self-intersections. It should represent the surface using high-quality elements while keeping the number of elements as small as possible. The NFT can create high-quality linear surface BEM meshes from the head segmentation.
- Warping a template head model: When a whole-head structural MR image of the subject is not available, a semi-realistic head model can be generated by warping a standard template BEM mesh to the digitized electrode coordinates (instead of vice versa).
- Registration of electrode positions with the BEM mesh: The digitized electrode locations and the BEM mesh must be aligned to compute accurate forward problem solutions and lead field matrices.
- Accurate high-performance forward problem solution: The NFT uses a high-performance BEM implementation from the open source METU-FP Toolkit for bioelectromagnetic field computations.
Matlab 7.0 or later running under any operating system (Linux, Windows). A large amount of RAM is useful - at least 2 GB (4-8 GB recommended for forward problem solution of realistic head models). The Matlab Image Processing toolbox is also recommended.
NFT Reference Paper
Zeynep Akalin Acar & Scott Makeig, Neuroelectromagnetic Forward Head Modeling Toolbox. Journal of Neuroscience Methods, 2010
To download the NFT, go to the NFT download page.
Current Version: xx.xx.xx (May 1st, 2010)
NFT User's Manual
- (Note: The PDF is generated dynamically. Please do not refresh the page before it begins downloading.)
Creation and documentation by:
Zeynep Akalin Acar
Post Doctoral Fellow
Wiki conversion by: Dev Sarma
Editorial: The first decade of EEGLAB 2001-2011
Links and Documentation
- EEGLAB hardware and software recommendations
- Download EEGLAB
- EEGLAB extensions
- EEGLAB revision history
- How to download the EEGLAB development version using SVN
- Bugzilla database for EEGLAB (see also Bugs and Suggestions)
- List of EEGLAB functions called from Menus
- All EEGLAB Functions
- EEGLAB vs. Commercial EEG Software
- EEGLAB and Fieldtrip
- EEGLAB and high performance computing
- Using EEGLAB to process MEG data
- EEGLAB and MEX functions to recompile
- Independent Component Clustering Example
- EEGLAB discussion list (use the Google box on the EEGLAB home page to search the archive)
- TIPS and FAQ
Other local downloads
- EEGLAB extensions and plug-ins
- Download tutorial dataset (4.1Mb)
- Datasets from a visual attention task
- STUDY datasets for component clustering. Data from same task as above (48 MB).
- Same STUDY but without the actual data (cluster measures available for plotting) (48 Mb).
- Channel Location Files download
- Datasets from a visual categorization task
- Binary version of the runica() infomax ICA decomposition function
- Download EEGLAB test scripts
- Future workshops
- The online EEGLAB Workshop - Includes online videos, slides, and tutorial materials!
- Seventeenth EEGLAB Workshop - San Diego, CA, USA (2013)
- Sixteenth EEGLAB Workshop - Aspet, France (2013)
- Fifteenth EEGLAB Workshop - Beijing, China (2012)
- Fourteenth EEGLAB Workshop - La Palma, Mallorca (2011)
- Thirteenth EEGLAB Workshop - Aspet, France (2011)
- Twelfth EEGLAB Workshop also known as the online workshop - San Diego, CA, USA (2010)
- Eleventh EEGLAB Workshop - Hsinchu, Taiwan (2010)
- Tenth EEGLAB Workshop - Jyväskylä, Finland (2010)
- Ninth EEGLAB Workshop - Sydney, Australia (2009)
- Eighth EEGLAB Workshop - Aspet, France (2009)
- Seventh EEGLAB Workshop - Bloomington, Indiana (2009)
- Sixth EEGLAB Workshop - Santiago, Chile (2007)
- Fifth EEGLAB Workshop - San Diego, CA, USA (2007)
- Fourth EEGLAB Workshop - Aspet, France (2007)
- Third EEGLAB Workshop - Singapore (2006)
- Second EEGLAB Workshop - Porto, Portugal (2005)
- First EEGLAB Workshop - San Diego, CA, USA (2004)
The EEGLAB Tutorial Outline
Quick tutorial resources
Online EEGLAB Workshop - Includes online videos, slides, and tutorial materials!
- Chapter 01: Loading Data in EEGLAB
- Chapter 02: Channel Locations
- Chapter 03: Plotting Channel Spectra and Maps
- Chapter 04: Preprocessing Tools
- Chapter 05: Extracting Data Epochs
- Chapter 06: Data Averaging
- Chapter 07: Selecting Data Epochs and Comparing
- Chapter 08: Plotting ERP images
- Chapter 09: Decomposing Data Using ICA
- Chapter 10: Working with ICA components
- Chapter 11: Time/Frequency decomposition
- Chapter 12: Multiple Datasets
- Chapter 01: Multiple Subject Proccessing Overview
- Chapter 02: STUDY Creation
- Chapter 03: Working with STUDY designs
- Chapter 04: STUDY Data Visualization Tools
- Chapter 05: Component Clustering Tools
- Chapter 06: Study Statistics and Visualization Options
- Chapter 06: Study Statistics and Visualization Options version 10 and earlier
- Chapter 07: EEGLAB Study Data Structures
- Chapter 08: Command line STUDY functions
- A01: Importing Continuous and Epoched Data
- A02: Importing Event Epoch Info
- A03: Importing Channel Locations
- A04: Exporting Data
- A05: Data Structures
- A06: EEGLAB option menu
- A07: Contributing to EEGLAB
- A08: DIPFIT
- A09: Using custom MRI from individual subjects
- A10: MI-clust
- A11: BESA (outdated)
- A12: Quick Tutorial on Rejection
- A13: Compiled EEGLAB
Many thanks to Hilit Serby, Nima Bigdely, and Toby Fernsler for additions and or edits. Thanks also to Payton Lin for capturing some images in earlier versions and to Micah Richert, Yannick Marchand, Elizabeth Milne, and Stefen Debener for their detailed comments. In addition, thanks to all those who have contributed code and suggestions to EEGLAB, and to Devapratim Sarma for converting and updating the EEGLAB documentation to a WIKI.
Return to SCCN WIKI HOME