EEGLAB revision history version 5
5.03 - September 8, 2006
- (Arno) Matlab 7.0.4 Linux: fixed EEGLAB startup crash because of font problem.
- (Arno) Matlab 6.1: EEGLAB 5.02 did not fully support Matlab 6.1; updated some functions to give limited support.
- (Arno) DIPFIT 2.0: fixed EEGLAB to fieldtrip conversion problem (thanks to Alessandro Malatesta)
- (Arno) ANT plugin: fixed compatibility problem with new EEGLAB version.
- (Arno) pop_runica(): fixed sphering problem when 'pca' option was applied to average-reference data.
- (Arno) pop_timef(), pop_crossf(), pop_comperp(): allowed channel labels alone, without locations (thanks to Andrey Zhdanov)
- (Arno) pop_epoch(): allowed processing event types containing spaces (thanks to Andrey Zhdanov)
- (Arno) pop_comment(): fixed problem when no comments are present (thanks to Diane Whitmer)
- (Arno) pop_editset(): fixed call to reading channel location files (thanks to Sebastian Halder and Allejandro Barrientos)
- (Arno) pop_study(), std_editset(): fixed removal of datasets from STUDY.
- (Arno) pop_dipfit_settings(): fixed history problem (thanks to Helen Slagter and Stefan Scherbaum)
- (Arno) std_preclust(): added more checks on dataset consistency (thanks to Stefan Scherbaum)
- (Arno) pop_multifit(): fixed default for option 'rmout' (thanks to Stefan Scherbaum)
- (Arno) pop_runica(): fixed command line parameters and some ICA algorithm calls (e.g. acsobiro()) (thanks to Timothy O'Keefe)
- (Arno) pop_clustedit(): fixed problem of having an empty list when moving components between clusters (thanks to Stefan Debener)
5.02 - May 13, 2006
- (Arno) std_erp(): no longer uses the raw ICA erp for clustering. Now uses (and plots) the ICA erps scaled by the root mean square of the component channel projections, so the ERP scale is in RMS uV and is comparable across components.
- (Arno) std_checkset(): fixed rare problem when default parameters are absent for plotting.
- (Arno) std_loadalleeg(): fixed loading problem when moving files to a different folder.
- (Arno) topoplot(): fixed use of channel indices.
- (Arno) pop_headplot(): fixed use of custom head mesh (Note: The gui function does not yet remember plotting preferences, so the head mesh file must be re-entered - but not reprocessed - every time).
- (Arno) pop_study(): fixing occasional lost gui entries (thanks to Rael Cahn).
- (Arno) pop_newset(), eeglab(): better dataset switching when a study is loaded.
- (Arno) pop_reref(), reref(): fixed re-referencing crash when ICA information is present.
- (Arno) pop_loadcnt(): fixed boundary additions for old file formats (thanks to Johanes Sarnthein)
- (Arno) pop_loadset(): fixed loading of multiple datasets (thanks to Li-Sor Hsiao)
- (Arno) pop_runica(): fixed saving current/previous ICA decomposition channels in field 'EEG.etc.icachansind'.
- (Arno) pop_biosig(): fixed problem reading continous EDF files (thanks to Keun Lee)
- (Arno) pop_erpimage(), pop_epoch(), pop_selectevent(), pop_eventstat(), pop_chansel(): processing event types with spaces (thanks to Andrey Zhdanov)
- (Arno) BIOSIG: the BIOSIG toolbox has been updated. It can now read large BDF files (thanks to Alois Schloegel).
5.01b - April 14, 2006
- (Arno) pop_read_erpss(): fixed reading events (thanks Ben Cipollini)
- (Arno) pop_mergeset(): fixed merging continuous datasets (thanks Ben Cipollini)
5.0b - April 12, 2006
New STUDY structure and clustering functions:
- (Arno) Ten new EEGLAB menu items call about 50 new STUDY / studyset functions with prefixes of "_pop" or "_std" (std_centroid(), std_moveoutlier(), std_plotcompspec(), std_centroid(), std_plotclustdip(), std_plotcompspec(), std_clusread(), std_plotclusterp(), std_readerp(), std_createclust(), std_readersp(), std_envtopo(), std_readitc(), etc.). See the new STUDY and component clustering tutorials.
Other major changes:
- (Arno) Saving status: the field 'EEG.saved' now is used to remember that changes have been made to a dataset but not yet saved to disk.
- (Arno) Channel locations: the field 'EEG.chaninfo' now holds channel plotting information and (optional) fiducial location information for aligning channel locations to other imaging. The chaninfo structure now also offers (still limited) support for channel types. A specific channel type may be used for ICA decomposition.
- (Arno) Main interface the main graphic interface (i.e., the eeglab() function) now masks (in grey) any text menu items that are not currently applicable; it also detects the 64-bit Linux OS.
- (Arno) DIPFIT2: A new, more accurate dipole fitting plug-in incorporating functions by Robert Oostenveld from Fieldtrip. Allows fitting of component single or dual-symmetric equivalent dipole models in spherical or boundary element head models, with interactive channel alignment. See the new DIPFIT tutorial for more details.
- (Arno) 3-D plotting: the function pop_headplot() now allow co-registration of electrodes with plotted 3-D head. Computation of spline files has been speeded 100x (thanks to Toby Fernsler). Also allows custom head mesh input.
Changes to admin and signal processing functions:
- (Arno) angtimewarp(): helper function to perform phase angle time warping (see erpimage()) (thanks to Jean Hausser)
- (Arno) binica(): fixed passing of arguments to binary ICA; added flag 'weightsin' to continue training; added output variable 'stem'; changed 'posact' default to 'off' to save space; improved clarity of master .sc file; changed binica.sc 'stop' arg default to 1e-7 (from 1e-6) (thanks to Elliot Cohen)
- (Arno) celltomat(), mattocell(): replace mat2cell() and cell2mat() that were overloading functions in Matlab 7.
- (Arno) crossf(): fixed bootstrap for linear coherence (not phase coherence (default)) (thanks to Pierre Herremans); made the 'savecoher' output option public (thanks to Joe Brooks); clarified that output phase angles are in radians and added radian plotting option (thanks to Joseph Brooks); fixed two array input processing (thanks to Pierre Herremans); improved commandline output text.
- (Arno) decompresserpss(): made compatible with 64-bit machines (after recompilation) (update by Petr Janata).
- (Arno) eegplot(): Allow overplotting two datasets; show event names above events (thanks to code from Stefan Scherbaum); add more space between lines in event legend; fixed zoom option for Matlab 7.
- (Arno) envtopo(): plotted ERP envelope and components with largest variance now computed only on the specified 'plotchans' (if any); made default y-limits from plotted data channels, not all-channels data; disallowed plotting outside the data time interval, or finding component maxima outside the plotting interval (thanks to Fred Travis); clarified 'timerange' help; added MAX_FRAMES test (plot < i0000 only) (thanks to Diane Whitmer); fixed the one-channel mode (replacing chanproj()) and made pvaf() computation standard (thanks to Diane Whitmer); added ppaf component sort option; made 'compnums' spec mean whole data are restricted to just those components; separated 'plotcomps' from 'compnums' (thanks to Jean Hausser)
- (Arno) erpimage(): when re-aligning data on sorting variable, now also re-align any auxiliary variable; can now plot several channels and components. Can now also linearly time warp data so that several events in each trial are warped to the same given (or their median) latencies (thanks to Jean Hausser).
- (Arno) headplot(): Increased computation speed by 100 (thanks to Toby Fernsler). Cbar axes not re-positioning (thanks to Henrik Ormasen). See also changes to pop_headplot().
- (Arno) loadavg(): fixed scaling issue (thanks to Tom Campbell); fixing scaling problem by dividing by the number of accepted sweeps (thanks to Adrian Burgess).
- (Arno) loadcnt(), pop_loadcnt(): now imports data boundaries (programmed by Andreas Widmann), and events of type 3 (thanks to Matt Stead).
- (Arno) movav(): fixed bug if no x values given (thanks to Eszter Hoffman)
- (Arno) phasecoher(): added arguments for time warping (thanks to Jean Hausser)
- (Arno) plotdata(), pop_plotdata(): fixed scaling problem; now plots in overlapping sub-windows for flexibility, and accepts y-axis plotting limits; pop_plotdata() now accepts y limits input and includes a text box for this; both functions now read the 'YDir' default in icadefs() - set YDIR in icadefs.m to set your lab preference (pos-up or neg-up) (thanks to German Gomez Hernandez); fixed text display for Matlab 7.00 (thanks to Saskia Nagel).
- (Arno) plottopo(): added horizontal line input, modified defaults, added axis ticks, changed plot order - data trace now on top (thanks to Stefan Debener)
- (Arno) readegi(), pop_readegi(): now returns and imports category names for segmented EGI data (thanks to Arild Hestvik); corrected line 220 to use desiredFrames instead of desiredSegments (thanks to T. O'Keefe)
- (Arno) read_erpss(): now scales data to microvolts for all file types (thanks to Alexa Roggeveen)
- (Arno) readlocs(): fixing reading .ced files
- (Arno) runica(): shortened computation of component variances (save memory also); add back row means when returning activations (to give w*s*data); changed 'posact' default to 'off' to save memory (thanks to Jason Palmer);
- (Arno) spec(): fixed call to timef() when signal processing toolbox absent.
- (Arno) spectopo(): can now click on each trace to show channel/component index. Also detects empty data channels to avoid function crash.
- (Arno) str_multiline(): allow processing multiple lines.
- (Arno) supergui(): remove *1.15 aspect ratio multiplication for Windows, Macintosh and Unix. Shrinked most graphic interface.
- (Arno) timef(): added test for consistency among tlimits, frames, srate; added auto adjustment of tlimits if discrepancy is small (< 1 frame); added possibility of giving frames and tlimits as  or NaN -> assume data is 1 epoch beginning at time 0 (thanks to David Schwartzman); changed default direction of frequency axes to 'up' (NB!) and added 'hzdir' flag (can be 'down' for backwards compatibility); changed obsolete phase() to angle() (thanks to Ming Qian); clarified meaning of 'baseline'.
- (Arno) timewarp(): helper function to perform epoch time warp (see erpimage()) (thanks to Jean Hausser)
- (Arno) timtopo(): adjusted several plotting details (oblique line height, text size, color bar, etc.)
- (Arno) topoplot(): added 'plotgrid' option to plot input channel values as one or more rectangular grids without requiring an explict channel locations file or structure - useful for plotting grid and strip data; enlarged 'emarker' to collect all relevant details about electrodes 'pts' markers (deprecated 'ecolor' and emarkersize' options). Added 'emarker2' to mark some channels differently. Rationalized 'plotchans'. Made 'intrad' produce plot with specified intrad. Added optional outputs xmesh, ymesh (thanks to Ghislaine Dehaene-Lambertz). Documented option 'whitebk' to print white background (sometimes useful with 'plotgrid'); fixed problem with explicit 'maplimits' value (thanks to Ellen Lau); fixed plotrad issue call from pop_chanedit(); added 'chantype' keyword; changed emarker defaults (thanks to Stefan Debener)
- (Arno) vararg2str(): now concatenates lines.
Changes to eeg_ commandline functions:
- (Arno) eeg_amplitudearea(): new commandline function to compute area under ERP using spline interpolation (programmed by Tom Campbell and adapted for EEGLAB by Darren Weber).
- (Arno) eeg_chantype(): new function to expand cell array of channel types to an array of channel indices
- (Arno) eeg_checkset: fixed checking ALLEEG with some datasets missing; dealing with empty event structure
- (Arno) eeg_context(): added 4th column to 1st output trgs, giving the target type; added to Example in help; added ability to return values of more than one named neighbor event field; function now can process continuous datasets (thanks to Nima Bigdeley); fixed calculation of trglt (was evlt); allowed string target and neighbor inputs; improved help message.
- (Arno) eeg_eval(): function for processing multiple datasets (only compatible pop_ functions are currently pop_runica() and pop_eegfilt()).
- (Arno) eeg_evenhist(): workaround empty  field values; improve output plot.
- (Arno) eeg_getepochevent(): (used by erpimage()) now returns latencies in ms for durations.
- (Arno) eeg_oldica(): new utility function to query or return oldicaweights saved by pop_runica().
- (Arno) eeg_regepoch(): new utility function to split a continuous dataset into consecutive (short) epochs time locked to mock events at a specified interval. Useful for artifact rejection for ICA decomposition (only). Resulting icaweights and icasphere can be exported to other sets containing the same data.
- (Arno) eeg_retrieve(): fixed empty dataset retrieval.
Changes to pop_ window functions:
- (Arno) pop_biosig(): now import event duration (in addition to event latency) and event channel index. Now also allow importing BDF and EDF files (the pop_readbdf() function has been removed from this release).
- (Arno) pop_chanedit(), forcelocs(): fixed chan-center error and channel location display inconsistency when selecting channels for rotation; change aspect ratio for windows; remove channel locs when looking up location; allow to process channel types; allow to set orientation of nose. Added channel type input.
- (Arno) pop_chanevent(): now properly handles negative event types.
- (Arno) pop_chansel(): fixed argument 'withindex' must be numeric
- (Arno) pop_comments(): fixed multiline text for Windows
- (Arno) pop_comperp(): Dataset name if only two datasets
- (Arno) pop_editeventvals(): disable all fields for boundary events.
- (Arno) pop_editoptions(): now only allows one option file per session (remember option file even if user changes of directory).
- (Arno) pop_epoch(): Change to allow event types with spaces.
- (Arno) pop_envtopo(): Now returns new envtopo() 'compsplot' output.
- (Arno) pop_mergeset(): fixed boundary event latency so it lies between limit data sample points of the two original datasets (thanks to Andreas Widmann).
- (Arno) pop_newset(): save multiple datasets; fixed canceling when empty dataset; new graphical interface.
- (Arno) pop_newtimef(): better history.
- (Arno) pop_reref(): fixed problem when adding channel location for old reference.
- (Arno) pop_resample(): now uses spline interpolation if the signal processing toolbox is absent (should be as efficient as the signal processing toolbox); fixed boundary doublet if any (thanks to Johannes.Sarnthein).
- (Arno) pop_rmbase(): transformed latency range inputs to ms; allowed  entries --> use whole epoch for baseline; fixed some typos with pointrange (thanks to Natasa Kovacevic).
- (Arno) pop_runica(): fixed updating of EEG.icawinv (component scalp maps) after running ICA again (thanks to Peter Ullsperger); fixed fastica() call (thanks to Muhammad Naeem); added auto saving of current EEG.icaweights and EEG.icasphere into cell arrays EEG.etc.oldicaweights and EEG.etc.oldicaweights when running ICA again. Fixed call to icaML and icaMS. Fixed bug when calling ICA twice (thanks to Marieke E. Timmerman); changed binica.sc 'stop' rule default to 1e-7 (from 1e-6); fixed storing EEG dataset; fixed channel browsing; allow to compute ICA on selected channel types; allow computing ICA on several dataset simmultaneously.
- (Arno) pop_saveset(): pop-up if resaving a file that has not been saved yet.
- (Arno) pop_select(): fixed out of range time limit error (thanks to Rami Niazy); improved help message; fixed selecting times not starting from 0 (thanks to Ben Cipollini)
- (Arno) pop_signalstat(): fixed channel statistics if no channel locations.
- (Arno) pop_subcomp(): change default set name; allow to plot single trials using different methods; edited figure window, help msg, and confirmation message for clarity.
- (Arno) pop_timef(): better history.
- (Arno) pop_topoplot(): made 'electrodes' 'on' the default only if <= 64 channels.
- (Arno) pop_writelocs(): fixing writing locations (removing .ced)
Updated EEGLAB plug-ins:
- (Arno) CTF data: Improved compatibility with EEGLAB and Matlab.
- (Arno) IIRFILT: Changed for compatability with Matlab 7 (R14).