Journal of Neuroscience Methods 134 (2004), 9-21  EEGLAB: an open source toolbox for analysis of single-trial EEG      dyn...
Journal of Neuroscience Methods 134 (2004), 9-21FIG. 1. Sample EEGLAB session. Screen capture of an EEGLAB user session ru...
Journal of Neuroscience Methods 134 (2004), 9-21who were prepared to write custom data analysis             (filled square...
Journal of Neuroscience Methods 134 (2004), 9-21image is a colored rectangular image in which each                        ...
Journal of Neuroscience Methods 134 (2004), 9-21artifacts (Jung et al., 1999; Jung et al., 2000). The        sources in a ...
Journal of Neuroscience Methods 134 (2004), 9-21FIG. 4. Visualizing independent components. (A) Topographical 2-D scalp ma...
Journal of Neuroscience Methods 134 (2004), 9-21FIG. 5. Evaluating independent component contributions. (A) An EEGLAB spec...
Journal of Neuroscience Methods 134 (2004), 9-21Baudry et al. (1996) and termed a ‘phase locking                          ...
Journal of Neuroscience Methods 134 (2004), 9-21 ERCOH. EEGLAB function crossf() computes event-                          ...
Journal of Neuroscience Methods 134 (2004), 9-21                                                                          ...
Journal of Neuroscience Methods 134 (2004), 9-21function. Each EEGLAB function is also documented           amplitude at a...
Journal of Neuroscience Methods 134 (2004), 9-21advise that features of the decomposition that do not          when applie...
Journal of Neuroscience Methods 134 (2004), 9-21a single component to the electrode noise, thus              as 64-bit pro...
Journal of Neuroscience Methods 134 (2004), 9-21References                                                               L...
Upcoming SlideShare
Loading in …5



Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide


  1. 1. Journal of Neuroscience Methods 134 (2004), 9-21 EEGLAB: an open source toolbox for analysis of single-trial EEG dynamics including independent component analysis Arnaud Delorme, Scott Makeig Swartz Center for Computational Neuroscience, Institute for Neural Computation, University of California San Diego, La Jolla CA 92093-0961; {arno,scott}@sccn.ucsd.eduAbstract: We have developed a toolbox and graphic user interface, EEGLAB, running under the cross-platformMATLAB environment (The Mathworks, Inc.) for processing collections of single-trial and/or averaged EEG dataof any number of channels. Available functions include EEG data, channel and event information importing, datavisualization (scrolling, scalp map and dipole model plotting, plus multi-trial ERP-image plots), preprocessing(including artifact rejection, filtering, epoch selection, and averaging), Independent Component Analysis (ICA) andtime/frequency decompositions including channel and component cross-coherence supported by bootstrap statisticalmethods based on data resampling. EEGLAB functions are organized into three layers. Top-layer functions allowusers to interact with the data through the graphic interface without needing to use MATLAB syntax. Menu optionsallow users to tune the behavior of EEGLAB to available memory. Middle-layer functions allow users to customizedata processing using command history and interactive ‘pop’ functions. Experienced MATLAB users can useEEGLAB data structures and stand-alone signal processing functions to write custom and/or batch analysis scripts.Extensive function help and tutorial information are included. A ‘plug-in’ facility allows easy incorporation of newEEG modules into the main menu. EEGLAB is freely available ( under the GNUpublic license for noncommercial use and open source development, together with sample data, user tutorial andextensive documentation.INTRODUCTION averaging is that the single-trial EEG data time locked to some class of experimental events consists of anThough computing capabilities of nearly every average ERP, whose time course and polarity is fixedelectrophysiology laboratory are now sufficient to across the trials, plus other EEG processes whose timeallow advanced signal processing of biophysical courses are completely unaffected by the experimentsignals including high-density electroencephalographic events. The cortical sources of ERP features may be(EEG) recordings, many researchers continue to rely assumed to be spatially distinct from sources ofon amplitude and latency measures of peaks in EEG spontaneous EEG activities. However, as we havetrial averages, termed event related potentials (ERPs). demonstrated recently, focusing data analysis onHistorically, the response averaging method was response averages alone ignores, first, event-relateddeveloped under technical constraints imposed by dynamics that do not appear in, or are poorlyhardware initially available for psychophysiological represented in response averages, and second, ignoresexperiments in 1950s and 1960s. Before digital ongoing EEG processes that may be partially time andcomputers were available, researchers had to find a phase-locked by experimental events, therebyway to summarize event-related activity across several contributing portions of response averages (Delorme etEEG trials representing brain responses to sensory al., 2002; Makeig et al., 2002).stimulations. For this purpose, they first used analog In the past decades, pioneer researchers have tried toregisters to sum activity across EEG data trials. The apply to EEG data analysis techniques developed infirst computerized response averaging computer, the electrical engineering and information theory,computer of average transients (CAT, ca. 1962) helped including time/frequency analysis (Pfurtscheller andpromote the use of response averaging, called at first Aranibar, 1979; Bressler and Freeman, 1980; Makeig,sensory ‘evoked potentials’ (EPs) and later the sensory 1993; Neuenschwander and Varela, 1993; Tallon-/ cognitive ‘event-related potentials’ (ERPs). Baudry et al., 1996; Weiss and Rappelsberger, 1996)Using the fast and low-cost digital computers now and Independent Component Analysis (ICA) (Makeigavailable, technical limitations that constrained et al., 1996; Makeig et al., 1997; Makeig et al., 1999;researchers to confine their EEG data analysis to Jung et al., 2001). These techniques have revealed EEGsimple ERP measures and parametric statistics are no processes whose dynamic characteristics are alsolonger relevant. The rationale used to justify response correlated with behavioral changes, though they cannotDelorme and Makeig 1
  2. 2. Journal of Neuroscience Methods 134 (2004), 9-21FIG. 1. Sample EEGLAB session. Screen capture of an EEGLAB user session running under Linux. Users call EEGLAB functions from themain window menus (center) via ‘pop-up’ parameter selection windows (upper left). Warnings and data processing messages are shown in theMatlab command line window (lower left), which can also be used to call EEGLAB or other data processing functions seen in the averaged ERP. For example, short-term 2002; Makeig et al., 2002; Delorme and Makeig,changes in spectral properties of the ongoing EEG in 2003). In EEGLAB, all these functions are availablespecific frequency bands may be correlated with under a common graphic interface under Matlab, acognitive processes, e.g. expectancy of a target widely used multi-platform computing environment.stimulus (Makeig et al., 1999) and with visual EEGLAB extends the collection of publicly availableawareness (Rodriguez et al., 1999). The sufficiency of Matlab packages for brain imaging including SPMstudying average ERPs has also been questioned by (Friston, 1995) and FRMLAB (Duann et al., 2002) forMakeig et al. (2002), who showed that some average functional MRI studies and Brainstorm (Baillet et al.,ERP peaks may result from partial synchronization of 1999) for EEG/MEG source analysis.oscillatory EEG processes to time locking events insingle data trials. METHODS AND RESULTSCurrently, most EEG researchers still interpret their 1. Basic functionsdata by measuring peaks in event-locked ERPaverages. Free availability of more general and easy-to- The ICA/EEG toolbox of Makeig and colleaguesuse signal processing software for EEG data may (1997) included a collection of Matlab functions forencourage the wider adoption of more inclusive signal processing and visualization of EEG dataapproaches. Our EEGLAB software toolbox for Matlab including runica(), a function for automated infomax(freely available from ICA decomposition (Makeig et al., 1997), ERP-image allows processing plotting (Jung et al., 1999; Makeig et al., 1999), aof collections of single EEG data epochs using ICA method of visualizing time-locked potential variationsand spectral analysis as well as data averaging across sets of single trials, and time-frequencytechniques. Using this toolbox, we have demonstrated decomposition (Makeig, 1993). By 2002, over 5,000the advantages of combining ICA, time-frequency researchers from over 50 countries had downloaded theanalysis, and multi-trial visualization in several ICA/EEG toolbox. However the provided tools couldpublications (e.g., Makeig et al., 1999; Delorme et al., only be used for EEG analysis by knowledgeable usersDelorme and Makeig 2
  3. 3. Journal of Neuroscience Methods 134 (2004), 9-21who were prepared to write custom data analysis (filled square) was briefly presented at this locationscripts. EEGLAB, by contrast, includes a (Makeig et al., 1999). In different trial blocks, thecomprehensive graphic user interface for interactively attended location was any one of five positionscalling and viewing results of enhanced and extended arranged horizontally on the computer screen above aICA/EEG toolbox functions while further facilitating fixation cross. The sample dataset consists of 80 3-the development of custom analysis scripts by prepared second EEG epochs time-locked to targets presented inusers. Fig.1. shows a screen capture of an EEGLAB the left visual field between 3 and 1.5 degrees of visualuser session running under Linux. angle. Data from thirty-one scalp electrodes (referred to the right mastoid) were sampled at 500 Hz (laterData preprocessing. EEGLAB allows reading of data, reduced for compactness to 125 Hz). Fig. 2 shows fiveevent information, and channel location files in severaldifferent formats including binary, Matlab, ASCII,Neuroscan, EGI, Snapmaster, European standard BDF,and Biosemi EDF. Standard data analysis functionsavailable in EEGLAB include data filtering, data epochextraction, baseline removal, average referenceconversion, data resampling and extraction of dataepochs time locked to specified experimental eventsfrom continuous or epoched data. EEGLAB alsoincludes methods allowing users to remove datachannels, epochs, and/or components dominated bynon-neural artifacts, by accepting or rejecting visually-cued EEGLAB recommendations derived from signalprocessing and information measures. EEG scalp mapsand channel locations can be converted betweenseveral widely-used Cartesian, polar and sphericalcoordinate systems and then visualized in two or threedimensions. Continuous data and data epochs of any FIG. 2. Data scrolling. The EEGLAB scrolling data reviewnumber of channels can also be scrolled (both function, eegplot(), allows the user to review and reject data byvertically and horizontally). visual inspection. Here, five data epochs (separated by dashed lines) are plotted at 31 electrode sites (channel names on the left). Other channels in the dataset can be accessed using the vertical slider onData structures and events. EEGLAB uses a single the left. The arrow buttons (lower left) scroll horizontally throughstructure (‘EEG’) to store data, acquisition parameters, the data. The user may zoom in on a selected time range and/orevents, channel locations, and epoch information as an electrode group and may change the plotting parameters using menu options (upper left). Values of the data point closest to the cursor areEEGLAB dataset. This structure can also be accessed continuously displayed at the bottom of the display. In this example,directly from the Matlab command line. Text files two (central) data epochs have been automatically marked forcontaining event and epoch information can be rejection for out-of-bounds values set by the user in the EEGLABimported via the EEGLAB menu. The user can also use data-rejection pop-up window (not shown). The rejection routine here highlights (in white) the channels containing the outlier values.the menu to import event and epoch information in any The user can further mark (or unmark) data epochs for rejection byof several file formats (Presentation, Neuroscan, ASCII clicking on them. Pressing ‘Update Marks’ (lower right) saves thetext file), or can read event marker information from accumulated rejection markings.the binary EEG data file (as in, e.g., EGI, Neuroscan, sample data epochs and illustrates the capabilities ofand Snapmaster data formats). The menu then allows eegplot(), the EEGLAB data scrolling function.users to review, edit or transform the event and epochinformation. Event information can be used to extract 2. Multi-trial visualizationdata epochs from continuous EEG data, select epochs ERP-image plotting. The field of electrophysiologicalfrom EEG data epochs, or to sort data trials to create data analysis has been dominated by analysis of one-ERP-image plots (Jung et al., 1999; Makeig et al., dimensional averaged event-related potential (ERP)1999). EEGLAB also provides functions to compute time series (single channel values across latencies).and visualize epoch and event statistics. The ERP-image is a more general two-dimensionalTo illustrate the utility of EEGLAB, below we employ representation of the data (single channel values withina small set of EEG data trials (also available from epochs across latencies) sorted in order of some drawn from an relevant measure (e.g., collection time, subjectexperiment in which the subject covertly attended a response, amplitude or phase, etc.). Fig. 3(A) illustratescued location on the computer screen, responding the process of constructing ERP-image plots. An ERPquickly with a thumb button press each time a targetDelorme and Makeig 3
  4. 4. Journal of Neuroscience Methods 134 (2004), 9-21image is a colored rectangular image in which each values. However, not all trial sorting orders give equalhorizontal line represents a potential time series during insights into the brain dynamics expressed in the data.a single experimental trial. Instead of plotting activity It is therefore up to the user to decide which ERPin single trials as left-to-right traces in which potential images to encoded by the ordinate of a data trace, trials are ERP images can also be misinterpreted. For example,represented as horizontal lines whose changing color using phase-sorting at one frequency (see Fig. 3(C))values indicate the potential at each time point in the can obscure the presence of oscillatory phenomena attrial. Trials may be plotted in any sorting order of other frequencies. It is important not to lose sight of theinterest, and a moving average of across adjacent single fact that nearly all activity recorded from scalptrials may be used to highlight trial-to-trial consistency. electrodes is the volume conducted sum of activitiesFig. 3(B) illustrates the process of sorting the data trials originating within a number of cortical the subject reaction time. EEGLAB uses independent component analysis (seeSome features of the visual ERP may be produced by below) to separate out these activities under thepartial phase-resetting of ongoing EEG activities assumption that their activities are temporallyfollowing stimulus presentation (Makeig et al., 2002). independent or at least more temporally independentFig. 3(C) illustrates a phase-sorted ERP-image plot, a than any linear combinations of their signals.visualization tool used to assess whether partial phasesynchronization may account for ERP features. Sorting 3. Independent component analysis (ICA)by value or spectral amplitude in a given time window, A primary tool of EEGLAB is to facilitate the processor by an auxiliary variable are also supported. The of applying and evaluating the results of independenterpimage() function can also plot the response average component analysis (ICA) of EEG data. ICAERP, changes in signal power and inter-trial coherence algorithms have proven capable of isolating both(as defined below) at a selected frequency, the mean artifactual and neurally generated EEG sourcessignal spectrum, and a representative scalp topography. (Makeig et al., 1999; Jung et al., 2000) whose EEGAlthough a set of event-locked data trials has just one contributions, across the training data, are maximallyERP average, the number of possible ERP images of a independent of one another. ICA was first applied toset of trials is very large since the trials can be sorted, EEG by Makeig et al. (1996) and is now widely used inoptionally smoothed, and imaged along any path the EEG research community, most often to detect and(linear or nonlinear), through the possibly high- remove stereotyped eye, muscle, and line noisedimensional space of trial attributes and/or eventFIG. 3. ERP image construction. (A) ERP-image plots are constructed by color-coding (grey bars) potential variations occurring in single-trialepochs (black traces). (B) Vertically stacking thin color-coded horizontal bars, each representing a single trial in an event-related dataset,produces an ERP image. Here, trials were sorted vertically according to the subject reaction-time (right curving black trace) before applying a 10-epoch vertical moving average. The trace below the ERP image shows the ERP average of the imaged data epochs. The dot on the scalp map(top) indicates the scalp position of the channel whose data are imaged. (C) The erpimage() function automates several methods of sorting trials.Here, EEG phase in a given time/frequency window was used as the sorting variable. For each trial, a 10-Hz wavelet was applied to measureoscillatory activity in a 3-cycle window centered at time 0. Trials were then sorted (top to bottom) in order of their alpha band frequency phasevalues (-π to π) relative to stimulus onset and were displayed as an ERP image, again smoothed by a 10-trial moving average. The data were nototherwise filtered. The partial inter-trial phase coherence of the data following the stimulus onset is then visible as a change in the slope of theimaged activity wave fronts to near-vertical after 200 ms. Inter-trial phase coherence (bottom trace) shows that the distribution of alpha activityphase across trials is non-random (i.e., is partially phase-reset) between 200 and 450 ms (dotted line in lower trace shows p=0.01), resulting insame alpha activity appearing in the ERP average trace (top panel). The middle trace shows that mean changes in alpha power (in ‘dB’) did notchange significantly (dotted lines) during the epochs. The baseline power level at the analysis frequency (25.9 dB, relative units) is indicated forpossible comparison with other conditions.Delorme and Makeig 4
  5. 5. Journal of Neuroscience Methods 134 (2004), 9-21artifacts (Jung et al., 1999; Jung et al., 2000). The sources in a large portion of cortex. EEG sourcetemporal independence assumption of ICA is readily contributions to scalp electrode potentials depend onunderstood as a basis for separating artifact sources, source strengths and orientations as much as sourcesince their activities will ordinarily not be reliably locations. The scalp projections of actual brain EEGphase-locked to one another, given enough training sources, therefore, are nearly always overlapping anddata. In practice, however, ICA also has proved non-orthogonal, contrary to the assumption of PCA.capable of separating biologically plausible brain Indeed, because of the spatial orthogonality constraint,sources whose activity patterns are distinctly linked to projections of smaller principal components to thebehavioral phenomena. In fact, many of the scalp typically resemble checkerboard maps that couldbiologically plausible sources ICA identifies in EEG not represent coherent activity within a connecteddata have scalp maps nearly fitting the projection of a patch of cortex.single equivalent current dipole (Jung et al., 2001; Therefore, to find biologically plausible sources, PCAMakeig et al., 2002), and are therefore quite compatible must be followed by an axis rotation procedure.with the projection to the scalp electrodes of Previously proposed procedures, such as Promax andsynchronous local field activity within a connected Varimax, were drawn from the factor analysispatch of cortex. literature. ICA can be viewed as a more powerfulEEGLAB contains an automated version, runica() rotation method, though in practice ICA is usually(Makeig, 1997), of the infomax ICA algorithm (Bell applied to the original data without PCA pre-and Sejnowski, 1995) with several enhancements processing (for details, see Makeig et al., 1999). ICA(Amari et al., 1996; Lee et al., 1999) both as a Matlab seeks to find component time courses that are mutuallyfunction and as a stand-alone binary C program that independent, meaning that component cross-allows faster and less memory-intensive computation. correlations as well as all the higher-order moments ofThe toolbox also allows the user to select any of over the signals are zero. ICA is free to adapt to the actual20 available ICA algorithms including JADE (Cardoso projection patterns of EEG generators if their activityand Souloumiac, 1993) and fixed-point ICA time courses are (near) independent of one another.(Hyvarinen and Oja, 2000). ICA is now being applied to many biomedical signalThough it is not our goal here to describe ICA in detail, processing problems including decomposing fMRI datawe will try to give some insight about its nature. In (Duann et al., 2002b) and speech and noise separationshort, ICA finds a coordinate frame in which the data (Park et al., 1999). Performing ICA decomposition isprojections have minimal temporal overlap. The core most appropriate when sources are linearly mixed inmathematical concept of ICA is to minimize the mutual the recorded signals, without differential time delays.information among the data projections or maximize These assumptions are precisely met for brain (andtheir joint entropy. ICA can be viewed as an alternative non-brain) generator processes summed by volumelinear decomposition to principal component analysis conduction in scalp EEG data. Because ICA does not(PCA). PCA applied in the temporal domain would attempt to maximize the variance of each component,specifically make each successive component account ICA components may account for more equal portionsfor as much as possible of the activity uncorrelated of the total signals than PCA components. Forwith previously determined components – whereas example, in 32-channel decompositions ICAICA seeks maximally independent sources. component activities typically account for near 0% toThis difference in goals leads to dramatic differences in about 5% of the total signals. ICA may usefully betheir results. PCA components are both temporally and applied to data with 128 or 256 channels, thoughspatially orthogonal, a constraint unrealistic for actual meaningful results are also possible using 32 or fewerEEG sources, which arise in domains (spatial regions) channels (Makeig et al., 2002).of partially synchronous activity in electrically oriented Some earlier studies applied ICA to collections of ERPcortical neurons (and possibly glia). Because the data averages (Makeig et al., 1997; Makeig et al.,density of cortical connections is weighted towards 1999). However, this approach requires care andlocal connections (<<1 cm), particularly in the network caution in interpretation of results. To separate two orof inhibitory cells that sustain cortical oscillations more processes, ICA requires that their independence(Pauluis et al., 1999), the partially synchronous be expressed in the data. A small set of data averagesdomains giving rise to EEG activity recorded on the may not include enough conditions in the training set toscalp should be mainly compact – though the extent demonstrate the independence of the underlyingand density of these partially synchronous activities are processes. If, for example, several processes arenot known. Through simple volume conduction, the partially phase reset in similar ways, the resultingprojection of synchronous activity within nearly any event-locked response averages may not express theirpatch of cortex will be widespread on the scalp. Any underlying functional and temporal independence. Dataelectrode will therefore sum contributions of EEG averages, by their nature, contain sums of activitiesDelorme and Makeig 5
  6. 6. Journal of Neuroscience Methods 134 (2004), 9-21FIG. 4. Visualizing independent components. (A) Topographical 2-D scalp maps of the nine independent components (ICs) accounting for themost EEG variance of the 32 components returned by the ICA algorithm for the sample dataset. The component scalp map values returned byICA are proportional to µV (scaling is distributed between the component maps and activity time courses). From its far-frontal scalp map, IC3appears to account for eye movement artifacts. (B) The ‘Component Properties’ display for IC3 verifies that it accounts for eye artifacts since itsactivity spectrum is smoothly decreasing (bottom panel), and prominent eye movement artifacts appear in its activity ERP image (top rightpanel). By removing this and other eye movement components (not shown) from the dataset, the user can remove most evidence of eyemovements from the data without removing other activity of interest (Jung et al., 2000).occurring at similar latencies relative to some class of current distribution of EEGLAB therefore focuses onevents. When two or more sources invariably applying ICA directly to continuous EEG data or,contribute to a set of response averages at the same typically, to concatenated collections single EEG datalatency, ICA, trained on these averages, may assign trials. Fig. 4 illustrates the use of infomax ICA appliedtheir summed activities to a single component. Trained to the 80 EEG epochs of the EEGLAB sample dataset.on the unaveraged data however, ICA may use their The lower the component index returned from runica(),relative variability in single trials to separate them. A the more EEG data (neural and/or artifactual) itsecond problem with applying ICA to data averages is accounts for.that the averaging process nearly cancels out the To determine which components are behaviorallyactivity of many of the EEG sources. Thus applying relevant and should be selected for furtherICA to the unaveraged EEG data also allows ICA to investigation, EEGLAB allows the user to plotseparate ongoing activity of EEG sources even if they component contributions to the raw data spectrumare only partially phase-locked for brief time periods. and/or to the trial-average ERP at all (or specified)This is most useful when there are a sufficient number channels. Fig. 5(A) shows component contributions atof channels to fit the most active EEG and artifact an alpha frequency to channel POz during the sampleprocesses. epochs. The function returns the amount contributed byTheoretical assumptions underlying the use of ICA to each component as a percentage of total data power.decompose EEG data include: (1) The data must Another EEGLAB function for estimating componentcontain enough data points for the temporal contributions to the data, depicted in Fig. 5(B), showsindependence of the underlying sources to be expressed component contributions to the trial-average ERP in(see Discussion). (2) No electrode activity should be a the -500 to 1000 ms latency range. These and otherlinear mixture of other electrode activities (as may visualization functions help users to select whichoccur for, e.g., average-reference data). If so, before components to process further using ERP-imagerunning ICA training, EEGLAB runica() function plotting (as described above) or using a variety ofautomatically performs PCA pre-processing to reduce spectral decomposition techniques (discussed below).the number of data dimensions to the rank of the inputdata. (3) ICA assumes that each data source is spatially 4. Time/frequency analysisstationary throughout the training data. This restriction To assess event-related spectral amplitude, phase andmay be partially relaxed in more recent ICA methods coherence perturbations in data recorded from single(Anemüller et al., 2003). (4) ICA assumes that the electrodes and/or in ICA components, EEGLABdistributions of activation values for each EEG source employs custom spectral decomposition techniques.are not precisely Gaussian. When a source distribution Our primary measures are the baseline or epoch-meanis sub-Gaussian (e.g., as with line noise), the extended power spectrum and three event-related time/frequencyoption of infomax ICA must be used to separate it. TheDelorme and Makeig 6
  7. 7. Journal of Neuroscience Methods 134 (2004), 9-21FIG. 5. Evaluating independent component contributions. (A) An EEGLAB spectopo() plot showing the components accounting for thelargest portions of 10-Hz activity at electrode POz (middle scalp map). The figure shows the power spectrum of the selected channel (top blacktrace), the activity spectra of the projection to that channel of each of the 32 components (lower traces), and the scalp power maps of the fourlargest-contributing components (4, 5, 7, 10). (B) An envtopo() plot showing the envelopes (i.e., the min and max values, over all channels, ateach time point) of the five independent components making the largest potential contributions to the ERP. The black thick traces show theenvelope of the (all channel) ERP data and the thin traces, the envelopes of the depicted component contributions to the ERP.measures: (1) the event-related spectral perturbation specified time and frequency resolution. In our(ERSP), measuring mean event-related changes in the experience, there are no dramatic differences betweenpower spectrum at a data channel or component these decompositions (though the number of cycles in(Makeig, 1993), (2) inter-trial coherence (ITC each data window can be critical). Most often we use amagnitude and phase, also called phase-locking factor) version of sinusoidal wavelets in which the number ofat single channels or components, and (3) event-related cycles is increased slowly with frequency (Fig. 6). Thiscross-coherence (ERCOH, magnitude and phase) feature allows us to obtain better frequency resolutionbetween two data channels or components. at higher frequencies than a conventional wavelet approach that uses constant cycle length. This methodERSP. Plots of the baseline-normalized spectrogram or is also better matched to the linear scale we use tothe event-related spectral perturbation (ERSP) are visualize frequencies. To visualize power changesincreasingly used in the EEG literature to visualize across the frequency range, we subtract the meanmean event-related changes in spectral power over time baseline log power spectrum from each spectralin a broad frequency range. They generalize the estimate, producing the baseline-normalized ERSP.narrow-band event-related desynchronization (ERD) Significance of deviations from baseline power isand synchronization (ERS) measures introduced by assessed using a bootstrap method. A surrogate dataPfurtscheller and colleagues (Pfurtscheller and distribution is constructed by selecting spectralAranibar, 1979). estimates for each trial from randomly selected latencyCalculating an ERSP requires computing the power windows in the specified epoch baseline (e.g., prior tospectrum over a sliding latency window then averaging stimulus onset), and then averaging these. Applyingacross data trials. The color at each image pixel then this process several hundred times (default: N=200)indicates power (in dB) at a given frequency and produces a surrogate ‘baseline’ amplitude distributionlatency relative to the time locking event. Typically, whose specified percentiles are then taken asfor n trials, if Fk ( f , t ) is the spectral estimate of trial significance thresholds. If sufficient pre-stimulus datak at frequency f and time t are not available, the surrogate data may be drawn from any other part or from the whole epoch. Figs. 1 n 6(A) and 6(B) show significant ERPS phenomena for ∑ Fk ( f , t ) 2 ERSP( f , t ) = (1) two independent EEG components. n k =1 ITC. Inter-Trial Coherence (ITC) is a frequency-To compute Fk ( f , t ) EEGLAB uses either the short- domain measure of the partial or exact synchronizationtime Fourier transform, a sinusoidal wavelet (short- of activity at a particular latency and frequency to a settime DFT) transform, or a Slepian multitaper of experimental events to which EEG data trials aredecomposition (Thompson, 1982) that provides a time locked. The measure was introduced by Tallon-Delorme and Makeig 7
  8. 8. Journal of Neuroscience Methods 134 (2004), 9-21Baudry et al. (1996) and termed a ‘phase locking between 0 and 1. A value of 0 (not expected in practicefactor.’ The term ‘inter-trial coherence’ refers to its based on a finite number of epochs) represents absenceinterpretation as the event-related phase coherence of synchronization between EEG data and the time-(ITPC) or event-related linear coherence (ITLC) locking events; a value near 1 indicates their perfectbetween recorded EEG activity and an event-phase synchronization (i.e. near perfect EEG phaseindicator function (e.g. a Dirac or cosine function reproducibility across trials at a given latency). In thecentered on the time locking event). Using the same complex 2-D Cartesian coordinate frame, spectralnotation as above estimates at given frequencies and times are returned as complex vectors in the 2-D phase space. The norm and phase angle of each vector are represented by theInter-trial phase coherence (2)is defined by magnitude and phase of the spectral estimate. To compute inter-trial phase coherence (ITPC), we first 1 n Fk ( f , t ) ITPC ( f , t ) = ∑ n k =1 Fk ( f , t ) normalize the lengths of each of the trial activity vectors to 1 and then compute their complex average. Thus, only the information about the phase of the spectral estimate of each trial is taken into account.and Inter-trial linear coherence (3) by For linear inter-trial coherence (ITLC), the initial n normalization step is omitted: the vector sum is ∑ F ( f , t) i=1 k computed and then normalized by RMS power in the single-trial estimates. EEGLAB function erpimage() ITLC ( f , t ) = computes ITPC at a single frequency for display n n ∑ Fk ( f , t) 2 beneath an ERP image (Fig. 3(C)); function timef() k =1 computes color-coded ITPC or ITLC images across frequencies (not shown). As for the ERSP, ITCwhere represents the complex norm. The most significance levels are assessed using surrogate data bycommon (and default) version is inter-trial phase randomly shuffling the single-trial spectral estimatescoherence (called ‘phase-locking factor’ by Tallon- from different latency windows during the baselineBaudry et al., (1996)). The ITC measure takes values period.FIG. 6. Time/frequency decompositions of independent component activities. Time/frequency decomposition was applied to the activities oftwo independent EEG components using sinusoidal wavelet transforms, 3 cycles in length at the lowest frequency (6 Hz), increasing linearlywith frequency up to 9 cycles at the highest plotted frequency (35 Hz). Using this approach, it is possible to obtain reasonable time and frequencystability at all frequencies. (A-B) Event-related spectral perturbation (ERSP) plots showing mean changes in spectral power during the epoch,relative to a 1-s pre-stimulus baseline (plotted vertically on the left). Component IC4 shows a transient increase near 12 Hz centered at 500 ms,while component IC9 shows a power decrease in this range following 500 ms. (C-D) Phase cross-coherence (ERPCOH) magnitude and phasedelay between the two components shown in panels A-B, zero-masked in regions in which cross-coherence magnitude was not significant(p>0.01). The components appear to become partially synchronized above 10 Hz (coherence ≤ 0.53) during the period 400 to 1000 ms with aphase offset near -120 degrees. Under the minimum phase assumption, this implies that high-alpha activity of IC9 tends to lead that of IC4during this period by about 30 ms.Delorme and Makeig 8
  9. 9. Journal of Neuroscience Methods 134 (2004), 9-21 ERCOH. EEGLAB function crossf() computes event- ERCOH using the method of surrogate data by related coherence (ERCOH) between two channel or computing the expected ERCOH distribution using component activities in sets of trials to determine the randomly selected data windows from the ‘baseline’ degree of synchronization between the two activity portion of each epoch. Different surrogate data measures. As for ITC, both phase coherence selection methods are used to estimate ERCOH for the (ERPCOH) and linear coherence (ERLCOH) measures two processes, either including or excluding any are supported. Other phase coherence measures have common spectral amplitude changes and/or partial not (yet) been included in EEGLAB (e.g., Lachaux et phase-locking related to the time-locking experimental al., 1999). In EEGLAB, for two signals, a and b , and events. These four methods are referred to in EEGLAB using the same notation as above as linear or phase coherence, with or without removal of common ITC. The preferable method may depend on several factors that we do not detail here.Phase cross-coherence (4) is defined by 5. Menu calls and script writing 1 n Fka ( f , t ) Fkb ( f , t )*ERPCOH a,b ( f , t) = ∑ a The EEGLAB graphic user interface (GUI) is designed n k =1 Fk ( f , t ) Fkb ( f , t ) to allow non-experienced Matlab users to apply advanced signal processing techniques to their data. However, more experienced users can also use the GUI and linear cross-coherence (5) by to save time in writing custom and/or batch analysis n scripts in Matlab by incorporating menu shortcuts and a, b ∑F k =1 k a b ( f , t )Fk ( f , t ) * EEGLAB history functions. Table I provides examples of EEGLAB scripts of different levels of complexity. ERLCOH ( f , t) = n n EEGLAB functions may be roughly divided into three ∑F ∑F 2 2 a b k ( f ,t ) k ( f , t) layers designed to increase ease-of-use for different k =1 k =1 types of users: I. GUI-based use. Naive Matlab users may choose to Here, Fkb ( f , t ) * is the complex conjugate of interact only with the main EEGLAB window menu, b Fk ( f , t ) . The magnitude of cross-coherence varies first to import data into EEGLAB (in any of several between 0 and 1, a value of 0 again indicating a supported formats), and then to call any of a large complete absence of synchronization at the given number of available data processing and visualization frequency f in the time window centered on t, and 1 functions by selecting main-window menu items indicating perfect synchronization. As for ITPC, the organized under five headings: ‘File’ menu functions normalizing factor in the ERPCOH denominator read/save data file and data information files. ‘Edit’ ensures that only the relative phase of the two spectral menu functions allow editing a dataset, changing its estimates at each trial is taken into account. Linear properties, reviewing and modifying its event and ERCOH (ERLCOH), by contrast, estimates the extent channel information structures. ‘Tools’ menu functions of complex linear relationship between the two signals extract epochs from continuous data (or sub-epochs (proportional amplitudes at a fixed delay). from data epochs), perform frequency filtering, When ERCOH magnitude (i.e., norm of the complex- baseline removal, and ICA, and can assist the user in valued ERCOH vector) is significantly above its performing semi-automated artifact data rejection expected baseline value, the phase of the ERCOH based on a variety of statistical methods applied to vector may indicate, under the minimum phase activity in the raw electrode channels or their assumption, which of the two component activities independent components. ‘Plot’ menu functions allow tends to lead the other at the analysis frequency. The users to visualize the data in a variety of formats, via minimum phase assumption means that the actual (horizontally and vertically) scrolling displays or as phase lag is les than ±180°. Fig. 6(C) illustrates trial (ERP), power spectrum, event-related significant ERPCOH synchronization between two time/frequency averages, etc. A large number of components. Even though independent components visualization functions are dedicated to the display and were identified by ICA as being (maximally) review of properties of scalp data channels and independent over the whole time range, they may underlying independent data components. The user can exhibit partial but statistically significant make use of standard Matlab capabilities to edit, print, synchronization, within specific event-related and/or save the resulting plots in a variety of formats. time/frequency windows (Delorme et al., 2002). Here Finally, the user can use ‘Help’ menu functions to call again, crossf() can assess significance of the observed up documentation on EEGLAB functions and data structures. Delorme and Makeig 9
  10. 10. Journal of Neuroscience Methods 134 (2004), 9-21 EEGLAB session history variable. By copying history1. >> pop_erpimage(EEG); commands to the Matlab command line or embedding2. >> figure; pop_erpimage(EEG, 1, [1], [], Channel 1 them in Matlab text scripts, users can easily apply erpimage, 10, 1); actions taken during a GUI-based EEGLAB session to3. >> erpimage(,:), ones(1, EEG.trials ) * a different data set. A comprehensive help message for EEG.xmax * 1000, linspace( EEG.xmin * 1000, each of the ‘pop’ functions allows users to adapt the EEG.xmax * 1000, EEG.pnts), Channel 1 ERP commands to new EEG data. image, 10, 1, topo, {1 EEG.chanlocs }, erp, III. Custom EEGLAB scripting. More experienced cbar); Matlab users can take advantage of EEGLAB functions and dataset structures to perform computations directlyTABLE I. Sample EEGLAB processing scripts. All scripts assume on datasets using their own scripts that call EEGLABthat the Matlab data structure ‘EEG’ contains the sample EEGLAB and any other Matlab functions while referencingdataset (described in the EEGLAB tutorial and available fordownload). Script 1 calls the EEGLAB (‘pop’) interface function EEGLAB data structures. Since all the EEGLAB datathat in turn calls the erpimage() processing function to compute and processing functions are fully documented, they can bedraw an ERP image plot (Jung et al., 1999; Makeig et al., 1999) of a used directly. Experienced users should benefit fromselected single-channel time record for each trial. Additional plotting using all three modes of EEGLAB processing: GUI-parameters can then be entered manually by the user in the resultingpop-up window. Script 2 performs the same action, but now the based, history-based, and autonomously scripted dataERP-image ‘pop’ function is called with specific arguments. The analyses. Such users can take advantage of the dataERP-image plot then appears directly, with no intervening ‘pop’ structure (‘EEG’) in which EEGLAB datasets arewindow. Each time the user selects an operation from the EEGLAB stored. The GUI interface uses a single Matlabmenu, the resulting Matlab function call (including all inputparameters) is appended to the EEGLAB session command history. variable, a structure named ‘EEG’ that contains allSubsequently, the user can simply copy and paste commands from dataset information and is always available at thethe command history to repeat the same actions. Thus, in Script 3, Matlab command line. This variable can easily be usedthe ‘pop’ ERP-image function is bypassed and the eponymous and/or modified to perform custom signal processing orEEGLAB data processing function, erpimage(), is called directly bythe user script referencing parameters stored in the EEG data visualizations. Finally, while EEGLAB ‘pop’ functionsstructure. The erpimage() function requires no knowledge of the (described above) assume that the data are stored in anEEG data structure used by EEGLAB, and can be applied to any EEG data structure, most EEGLAB signal processinguser-defined data array. If the user selects the supplied default functions accept standard Matlab array arguments.parameters in the pop_erpimage() pop-up data entry window, thethree scripts will all have the same effect. See the Matlab help Thus, it is possible to bypass the EEGLAB interfacemessages for the meaning of the pop_erpimage() and erpimage() and data structures entirely, and directly apply thefunction arguments (also available as HTML pages linked to the signal processing functions to data matrices.main EEGLAB website). 6. Distribution, documentation and supportII. EEGLAB command history. Intermediate level usersmay first use the menu to perform a series of data The EEGLAB toolbox is distributed under the GNUloading, processing and visualization functions, and General Public License (for details seethen may take advantage of the EEGLAB command The source code,history functions to easily produce batch scripts for together with web tutorials and function descriptionprocessing similar data sets. Every EEGLAB menu help pages, is freely available for download fromitem calls a Matlab function that may also be called As the toolbox currentlyfrom the Matlab command line. These interactive includes approximately 300 Matlab functionsfunctions, called ‘pop’ functions, work in two modes. comprising 50,000 lines of Matlab code, it is notCalled without (or in some cases with few) arguments, possible to describe all of its functionality in a journal-an interactive data-entry window pops up to allow length paper. An extensive user tutorial explains ininput of additional parameters. Called with additional detail how to import and process data using EEGLAB,arguments, ‘pop’ functions simply call the eponymous including the derivation and evaluation of itsdata processing function, without creating a pop-up independent components. We also provide ‘Frequentlywindow. For example, function pop_erpimage() calls Asked Questions (FAQ)’ and ‘Known Bugs’ weberpimage(). When a ‘pop’ function is called by the user pages, a support email (, aby selecting a menu item in the main EEGLAB dedicated mailing list for software updateswindow, the function is called without additional (, and a discussion mailingparameters, bringing up its GUI pop-up window to list ( which currently reachesallow the user to enter computation parameters. When over a thousand EEG researchers.the processing function is called by EEGLAB, its Open-source EEGLAB functions are not precompiled;function call is added as a command string to the users can read and modify the source code of everyDelorme and Makeig 10
  11. 11. Journal of Neuroscience Methods 134 (2004), 9-21function. Each EEGLAB function is also documented amplitude at another frequency, (2) of phasecarefully using a standardized help-message format and synchronization between frequencies, and (3) ofeach function argument is described in detail with links amplitude correlation between frequencies. Weto related functions. We have attempted to follow welcome further open source contributionsrecognized best practice in software design for implementing other time-frequency approaches, anddeveloping EEGLAB. The source code of EEGLAB is have added an EEGLAB plug-in facility to promoteextensively documented and is internally under the and ease development of such contributions.Linux revision control system (RCS), which allows usto easily collaborate with remote researchers on the Significance and statistical comparisons acrossdevelopment of new functions. Matlab allows subjects or conditionsincremental design of functions, so adding new To assess significance of within-subject measures,features to a function can be easily accomplished while EEGLAB uses non-parametrical methods that do notpreserving backward compatibility. The EEGLAB assume a known activity distribution. A null hypothesishistory feature also makes it easy to generate test distribution, used to determine significance thresholds,scripts that we now launch nightly to maintain is estimated by accumulating surrogate data, shufflingEEGLAB stability. the data across latencies alone, latencies and trials, or trials alone. To compensate for multiple comparisons,DISCUSSION significance thresholds may need to be decreased (e.g.We have developed EEGLAB, a complete interactive Bonferroni, 1950; Holm, 1979). Since it is notenvironment for processing EEG (or MEG) data under reasonable to compute an unlimited amount ofMatlab, to provide both standard and advanced EEG surrogate data to estimate very low probabilityprocessing functions developed in our own and other thresholds heuristically, we have implemented alaboratories. EEGLAB is strongly oriented towards method to fit the observed surrogate data distributionsingle-trial visualization techniques, ICA and event- using a fourth order distribution fit (Ramberg et al.,related time/frequency analysis. Because the software 1979). This feature will be available in a near-termwas developed by and for ERP/EEG researchers, we release of EEGLAB.have taken care to make the data processing as To test significance across conditions or subjects, wetransparent as possible and to allow users to tune their either use parametrical tests or accumulatedparameters as easily as possible. We will now briefly significance results from each subject. Our ERPreview a few limitations of EEGLAB and, because the function pop_comperp() currently uses a t-test tomethods incorporated into EEGLAB are not yet widely compare two conditions for several subjects. Whenpracticed, some limitations of ICA applied to high- processing spectral decompositions of one channel (ordensity EEG data. component class) from different subjects (already been masked for significance), our tftopo() function appliesLimitations of time/frequency decomposition a threshold derived by simple statistics on the number of subjects for which the spectral decomposition isFiltering methods implemented in EEGLAB take significant at a give time-frequency point. If notadvantage of linear filtering implemented in the Matlab enough subjects show a significant change at theSignal Processing toolbox. One of drawback of using specified point, this point is considered non-significantlinear filters is that the signal roll-off at the cut-off in the group average. This is a statistically conservativefrequency is weaker than what it would be using approach. For further statistical assessment, raw data,nonlinear filters. However, with linear filtering, data ERP, or independent component weights and activityphase information is preserved across frequencies. can be exported as ASCII to statistical packages suchTime-frequency decomposition in EEGLAB is limited as Statview (SAS Institute Inc.), SPSS (SPSS Inc.), orto FFTs, multi-taper analysis, and a single type of the Matlab Statistics Toolbox (The Mathworks, Inc.).sinusoidal wavelet, as is standard for EEG analysis.Other methods, for example the Hilbert method, are not ICA Stabilitycurrently implemented. However quantitativecomparisons show that results on EEG data using Because the infomax ICA algorithm begins with aHilbert transforms do not differ dramatically from random unmixing matrix and then randomly shufflesapplying sinusoidal wavelets (Le Van Quyen et al., the order of the data time points before each training2001). Also, bi-coherence between frequencies cannot step, the results of successive ICA decompositions mayyet be assessed within EEGLAB (e.g., von Stein and be slightly different even when ICA is performed onSarnthein, 2000; Lachaux et al., 2003). We intend in the same data. In particular, the scalp maps and activitythe future to include functions to assess time courses of the independent components (and theirsynchronization (1) of phase at one frequency with order), may differ slightly across runs. Therefore, weDelorme and Makeig 11
  12. 12. Journal of Neuroscience Methods 134 (2004), 9-21advise that features of the decomposition that do not when applied high-dimensional real data. Toremain stable across decompositions of the same data decompose EEG data, therefore, we most often useshould not be interpreted except as irresolvable ICA infomax or extended infomax ICA. The infomax‘uncertainty.’ Differences between decompositions algorithm reliably finds independent components thattrained on somewhat different data subsets may have are physiologically plausible, functionally distinct, andadditional causes. We are currently investigating the often have spatial and functional similarities acrossstability of ICA methods applied to typical datasets data sets, sessions, and subjects (Delorme et al., 2002;(Delorme et al., in preparation). Makeig et al., 2002).Difference between ICA algorithms Insufficient data for running ICAWhich is the best ICA algorithm to use for EEG A chief case in which ICA algorithms may not returndecomposition? From a theoretical point of view, all reliable results is when too few data are provided toICA algorithms maximize independence in an them. ICA being a statistical method, if theapproximate sense (Lee et al., 2000), while the degree independence of the functionally distinct EEGto which EEG data actually fit ICA assumptions is processes is not adequately exhibited in the data, ICAunknown. Applied to simulated, relatively low cannot separate them.dimensional data sets for which the ICA assumptions The size of the weight matrix being the square of theare exactly fulfilled, leading ICA algorithms (including number of channels, a number of time points at least ainfomax, JADE, and FastICA) return near-equivalent few times the square of the number of channels iscomponents. However, the physiological significance usually needed to obtain reliable decompositions.of any differences in the results of the same or different These data points may be drawn from continuous dataICA algorithms (or of different parameter choices for or from several data epochs Of course, additional datathe various algorithms) has not been systematically points can only improve the decomposition - when andtested and reported - neither by us nor, as far as we if relative stationarity of the spatial structure of theknow, by others. Therefore, different ICA EEG sources set can be assumed.. In our experience,decompositions may give slightly different results, as using short baseline-zeroed data epochs that includehas been shown for neural ensemble data (Laubach et task-related behavior may give qualitatively moreal., 1999) and fMRI data (Duann et al., 2001; Esposito consistent results than using longer data epochs. Usinget al., 2002). Each ICA algorithm has its own short epochs constrains ICA to focus on the task-particularities. The infomax algorithm in its native relevant portion of the data.form can only separate sources with super-Gaussian(i.e. peaky, thick-tailed) activity distributions. If there Nonlinearitiesare strong electrical artifacts in data, it is preferable to Another case in which ICA will fail to extract all theuse the ‘extended’ ICA option of runica() (Lee et al., involved sources occurs when the data are not a linear1999), to allow the algorithm to detect sources with sum of the underlying source projections – this chieflysub-gaussian activity distribution, such as line current occurs when the amplifiers become ‘railed’ at highartifacts and/or slow activity. signal levels, leading to signal ‘clipping’, or when highWhereas infomax implicitly uses a combination of signal levels exceed the input range of the A/Dhigher-order moments of the data to find independent converter, leading to signal ‘wrap-around.’ In eithercomponents, the JADE algorithm (Cardoso and case, the severe nonlinearity involved will cause linearSouloumiac, 1993) diagonalizes all the fourth-order ICA algorithms to give spurious results, so such datamoments explicitly. Although for low numbers of data epochs must be carefully rejected from the data beforechannels the JADE algorithm is fast and stable, the running ICA.memory required to manipulate all the fourth-ordermoments becomes quite impractical with high numbers Noiseof channels. Whereas both infomax and JADEalgorithms find and return all the independent Finally, when the data contains many more strongcomponents at once, the default setting of the fixed- spatial sources than the number of recording channels,point ICA algorithm of Hyvärinen (2000) computes the additional sources must be mixed into the outputand returns components one by one. The order of the components. In particular, this may occur duringcomponents it returns, however cannot be known in ‘paroxysmal’ noise which may for instance beadvance, and performing a complete decomposition is introduced into EEG data during strong headnot faster than with infomax. Also, in our experience movements. Else, a loose electrode may introduce a(see also Esposito et al., 2002) the fixed-point ICA large noise signal not linearly related to any of thealgorithm may be more less robust than infomax ICA other electrode signals. In this case, ICA may dedicateDelorme and Makeig 12
  13. 13. Journal of Neuroscience Methods 134 (2004), 9-21a single component to the electrode noise, thus as 64-bit processors become more available, the currentunnecessarily reducing the number of components data space limits of operating systems and Matlabavailable to separate other neural and artifact sources. should increase, in which case the remaining problemTherefore, we find it best to train ICA on carefully would only be the burden of purchasing the necessarypruned ‘clean’ data epochs, which can, however, retain RAM.spatially stereotyped artifact activity such as eye blinks Current development of EEGLAB focuses onand eye movements, repeated muscle activity, etc. processing of large datasets (>1 Gb), semi- automatically grouping independent component acrossProcessing speed subjects, and component source localization. EEGLAB will also be linked to our FMRLAB toolboxMatlab offers a powerful environment for processing ( to processbiophysical data because of (1) the simplicity of its simultaneously recording EEG and fMRI data (Duanncommand line language, (2) the many Matlab functions et al., 2002a). We also have begun working with co-made available by The Mathworks, Inc and by developers to increase the range of EEGLAB functionsindependent researchers, and (3) its high-level using the ‘plug-in’ facility, whereby contributors mayvisualization capabilities. However, there are two easily contribute optional EEGLAB code that is readilypossible problems in using Matlab for processing EEG incorporated into the EEGLAB menu. The plug-indata. First, though ever-increasing speed of current facility is designed so that plug-in functions can beworkstations continues to make processing time of less used and distributed both within EEGLAB andlimiting importance for data analysis, interpreted independently. By this mechanism we hope tocomputer languages are inherently slower than encourage the open source development ofcompiled languages. Matlab has facilities for compiling comprehensive EEG (and MEG) signal processingand running binary versions of scripted functions, but tools under EEGLAB.their speed may still be suboptimal. For this reason, weconverted to C the most time consuming EEGLAB ACKNOWLEDGEMENTSfunction, runica(). Both the Matlab ICA function -runica() - and the binary C-language ICA function - The authors acknowledge the contributions tobinca() - can be called from the EEGLAB GUI. Under EEGLAB and its hundreds of functions by manyMatlab v4, we observed a speed-up of about 10 for contributors. Principal among these were Colinbinica() compared to runica(). However, under Matlab Humphries, who wrote the topographic plottingv6 the speed-up factor seems to be much smaller functions and the first version of the data scrolling(<100%). Most other EEGLAB functions are less display function, Sigurd Enghoff, who wrote the firstcompute intensive. versions of the time/frequency functions and translated the MATLAB-coded runica() infomax ICA function toMemory requirements binary, and Tzyy-Ping Jung, who contributed the first version of the erpimage() function. The runica()Another relative disadvantage of using Matlab to function itself was written by one of us (SM) buildingprocess high-density EEG data is that Matlab currently on core ICA code contributed by Tony Bell and Te-converts all floating-point numbers to 64-bit double- won Lee. Several other members of the Computationalprecision, thus requiring large amounts of main Neurobiology Laboratory at The Salk Institutememory to process large data sets. Though hopefully contributed other functions. We gratefullysome future Matlab versions may allow the option of acknowledge the support, collaboration andprocessing data in 32-bit floating-point format, we encouragement of Terrence Sejnowski at Salk Institutehave taken care to address this issue in EEGLAB by throughout this research process. We thank Stefanincluding various options to minimize memory usage, Debener and anonymous reviewers for suggestions onsuch as constraining EEGLAB to work on a single this report, which was supported by the Nationaldataset, or computing the ‘activation’ time courses of Institutes of Health USA and by The Swartzindependent components only as needed. However, this Foundation.issue remains a serious problem for large datasets:parts of the toolbox may have to be updated to allowvery large (e.g., long 256-channel) datasets to beanalyzed within the current Linux 2GB/process limit.One possibility is to use the Matlab MEX language, aninterface between C and Matlab that allows a widervariety of data types including single precision.Another possibility is to have EEGLAB load into mainmemory only a part of the dataset at a time. However,Delorme and Makeig 13
  14. 14. Journal of Neuroscience Methods 134 (2004), 9-21References Lee TW, Girolami M, Sejnowski TJ. Independent component analysis using an extended infomax algorithm for mixedAnemüller J, Sejnowski TJ, Makeig S. Complex Independent subgaussian and supergaussian sources. Neural Comput., 1999; Component Analysis of Frequency-Domain 11: 417-41. Electroencephalographic Data. Neural Networks, 2003; in press. Lee TW, Girolami M, Bell AJ, Sejnowski TJ. A UnifyingAmari S-I, Cichocki A, Yang HH. A new learning algorithm for Information-theoretic Framework for Independent Component blind source separation. Adv. Neural Inf. Process. Syst., 1996; 8: Analysis. Comput. Math. Appl., 2000; 31: 1-21. 757-63. Makeig S. Auditory event-related dynamics of the EEG spectrum andBaillet S, Mosher JC, Leahy RM, Shattuck DW. BrainStorm: a effects of exposure to tones. Electroencephalogr. Clin. Matlab Toolbox for the Processing of MEG and EEG Signals. Neurophysiol., 1993; 86: 283-93. Proceedings of the 5th Int. Conf. on Human Brain Map., Makeig S. Response: Event-related brain dynamics - unifying brain Neuroimage, 1999; 9: 246. electrophysiology. Trends Neurosci., 2002; 25: 390.Bell AJ, Sejnowski TJ. An information-maximization approach to Makeig S, Bell AJ, Jung TP, Sejnowski TJ. Independent component blind separation and blind deconvolution. Neural Comput., 1995; analysis of electroencephalographic data. In Touretzky D, Mozer 7: 1129-59. M, Hasselmo M, editors. Adv. Neural Inf. Process. Syst., 1996; 8:Bressler SL, Freeman WJ. Frequency analysis of olfactory system 145-51. EEG in cat, rabbit, and rat. Electroencephalogr. Clin. Makeig S, Jung TP, Bell AJ, Ghahremani D, Sejnowski TJ. Blind Neurophysiol., 1980; 50: 19-24. separation of auditory event-related brain responses intoBonferroni CE. Sulle medie multiple di potenze. Bollettino independent components. Proc. Natl. Acad. Sci. U.S.A., 1997; 94: dell’Unione Matematica Italiana, 5 third series, 1950; 267–70. 10979-84.Cardoso J-F, Souloumiac A. Blind beamforming for non gaussian Makeig S, Westerfield M, Jung TP, Covington J, Townsend J, signals. IEE-Proc.-F, 1993; 140: 362-70. Sejnowski TJ, Courchesne E. Functionally independentDelorme A, Makeig S, Fabre-Thorpe M, Sejnowski T. From Single- components of the late positive event-related potential during trials EEG to Brain Area Dynamics. Neurocomputing, 2002; 44- visual spatial attention. J. Neurosci., 1999; 19: 2665-80. 46: 1057-64. Makeig S, Westerfield M, Jung TP, Enghoff S, Townsend J,Delorme A, Makeig S. EEG changes accompanying learning Courchesne E, Sejnowski TJ. Dynamic brain sources of visual regulation of the 12-Hz EEG activity. IEEE Transactions on evoked responses. Science, 2002; 295: 690-4. Rehabilitation Engineering, 2003; 11: 133-6. Makeig S et al. Matlab Toolbox for analysis of electrophysiologicalDuann JR, Jung TP, Makeig S, Sejnowski TJ. fMRLAB: An ICA data., 1997. Toolbox for fMRI Data Analysis. In: Human Brain Mapping, Neuenschwander S, Varela FJ. Visually triggered neuronal 2002; Sendai, Japan. oscillations in the pigeon: an autocorrelation study of tectalDuann JR, Jung TP, Kuo WJ, Yeh S, Makeig S, Hsieh JC, Sejnowski activity. Eur. J. Neurosci., 1993; 5: 870-81. TJ. Measuring the variability of event-related BOLD signals. In: Park H-M, Jung H-Y, Lee T-W, Lee S-Y. On Subband-Based Blind Third International Workshop on Independent Component Signal Separation for Noisy Speech Recognition. Electronic Analysis and Signal Separation, 2001; San Diego, USA. Letters, 1999; 35: 2011-2.Duann JR, Jung TP, Kuo WJ, Yeh TC, Makeig S, Hsieh JC, Pauluis Q, Baker SN, Olivier E. Emergent oscillations in a realistic Sejnowski TJ. Single-trial variability in event-related BOLD network: the role of inhibition and the effect of the spatiotemporal signals. Neuroimage, 2002b; 15: 823-35. distribution of the input. J. Comput. Neurosci., 1999; 6: 27-48.Esposito F, Formisano E, Seifritz E, Goebel R, Morrone R, Tedeschi Pfurtscheller G, Aranibar A. Evaluation of event-related G, Di Salle F. Spatial independent component analysis of desynchronization (ERD) preceding and following voluntary self- functional MRI time-series: to what extent do results depend on paced movement.PG - 138-46. Electroencephalogr. Clin. the algorithm used? Hum. Brain Mapp., 2002; 16: 146-57. Neurophysiol., 1979; 46.Friston KJ. Statistical parametric mapping: Ontology and current Ramberg JS, Dudewicz EJ, PTadikalama PR, Mykytka EF. A issues. J. Cereb. Blood Flow Metab., 1995; 15: 361-70. probability distribution and its uses in fitting data. Technometrics,Holm S. A simple sequentially rejective multiple test procedure. 1979; 21. Scandinavian Journal of Statistics, 1979; 6: 65-70. Rodriguez E, George N, Lachaux JP, Martinerie J, Renault B, VarelaHyvarinen A, Oja E. Independent component analysis: algorithms FJ. Perceptions shadow: long-distance synchronization of human and applications. Neural Netw., 2000; 13: 411-30. brain activity. Nature, 1999; 397: 430-3.Jung TP, Makeig S, Westerfield M, Townsend J, Courchesne E, Tallon-Baudry C, Bertrand O, Delpuech C, Pernier J. Stimulus Sejnowski TJ. Analyzing and Visualizing Single-trial Event- specificity of phase-locked and non-phase-locked 40 Hz visual related Potentials. Adv. Neural Inf. Process. Syst., 1999; 11: 118- responses in human. J. Neurosci., 1996; 16: 4240-9. 24. Thompson DJ. Spectrum estimation and harmonic analysis. IEEEJung TP, Makeig S, Westerfield M, Townsend J, Courchesne E, proc., 1982; 70: 1055-96. Sejnowski TJ. Analysis and visualization of single-trial event- von Stein A, Sarnthein J. Different frequencies for different scales of related potentials. Hum. Brain Mapp., 2001; 14: 166-85. cortical integration: from local gamma to long range alpha/thetaJung TP, Makeig S, Humphries C, Lee TW, McKeown MJ, Iragui V, synchronization. Int J Psychophysiol, 2000; 38: 301-13. Sejnowski TJ. Removing electroencephalographic artifacts by Weiss S, Rappelsberger P. EEG coherence within the 13-18 Hz band blind source separation. Psychophysiology, 2000; 37: 163-78. as a correlate of a distinct lexical organisation of concrete andLachaux JP, Rodriguez E, Martinerie J, Varela FJ. Measuring phase abstract nouns in humans. Neurosci. Lett., 1996; 209: 17-20. synchrony in brain signals. Hum. Brain Mapp., 1999; 8: 194-208.Lachaux JP, Chavez M, Lutz A. A simple measure of correlation across time, frequency and space between continuous brain signals. J Neurosci Methods, 2003; 123: 175-88.Laubach M, Shuler M, Nicolelis MA. Independent component analyses for quantifying neuronal ensemble interactions. J. Neurosci. Methods, 1999; 94: 141-54.Le Van Quyen M, Foucher J, Lachaux J, Rodriguez E, Lutz A, Martinerie J, Varela FJ. Comparison of Hilbert transform and wavelet methods for the analysis of neuronal synchrony. J Neurosci Methods, 2001; 111: 83-98.Delorme and Makeig 14