imax
method to run_ICA()
. This allows use of the infomax
ICA algorithm from the infomax
package, which is a reimplementation of the Infomax algorithm used in the EEGLAB
Matlab toolbox.erp_scalp()
and interactive_scalp()
should now appropriately use channel locations included in the data.compute_tfr()
.plot_tfr()
now applies baseline correction on a single-trial basis where possible, which may show different results when using non-linear baseline correction (e.g. divide
or dB
)topoplot()
now allows you to provide multiple component numbers when plotting from an eeg_ICA
object, and will automatically produce an appropriately facetted plot. topoplot()
now has a k
parameter to control the smoothing when using method = "gam"
.demo_spatial
data from a spatial cueing experiment.plot_difference()
function added for plotting ERP difference waves. Only currently handles two levels.hanning
taper support for compute_tfr
. Note that the scaling factors used for all compute_tfr
calculations have been adjusted, so the exact numerical values returned will change. However, this is just a scaling factor - the relative distances between values remained unchanged.ar_FASTER()
has experimental support for eeg_group
objects when those objects are eeg_evoked
groups. It does not perform rejection but reports how many times each participants data breaks a threshold for a number of measures.import_raw()
default participant_id
is now changed to NA
instead of character(1)
, to promote better use with eeg_combine()
.eeg_combine()
will now refuse to combine objects where participant_id
is missing (i.e. is NA
), and warn when combining objects with the previous default value "". This is to prevent accidentally treating data from different participants as being from the same participant.topoplot()
now provides informative messages about the head radius used for plotting. The default calculation of r
when using interp_limit = "head"
has changed and should now be set at the outermost electrode's position + a 10% buffer. Smaller r
can be set manually.get_participant_id
, set_participant_id
, get_recording
and set_recording
to interact with the epochs
metadata in each eegUtils
object.eeg_combine()
handles eeg_tfr()
objects better, now returns an error when trying to combine single-trial data.plot_timecourse()
now handles eeg_tfr()
objects.erp_scalp()
and interactive_scalp()
now use cleaner evaluation of the colour
argument using rlang
compute_csd()
compute_tfr()
, they will now also use the spacing
parameter to determine log
or linear
scaling.eeg_average()
used on c("eeg_group", "eeg_tfr")
objects.eeg_data
objects if there were multiple "target" triggers appearing in an epoch.erp_raster()
when anat_order == FALSE
epoch_queries
file for functions for setting and getting the epochs
structurecheck_items
file for functions that check for consistency of various structureseeg_combine()
with eeg_tfr()
no longer drops single dimensions, which was causing issues when there was only one channel or epoch in the object.plot_timecourse.eeg_tfr
now correctly passes baseline period to rm_baseline()
filter.eeg_tfr()
was sometimes dropping single dimensions when using abind::asub()
, now fixedcompute_tfr()
, with the new spacing
argument. plot_tfr
automatically detects the spacing and plots the figure appropriately.na.rm
option to erp_image()
to either keep or plot trials with NA values due to smoothing. By default they'll be removed.compute_psd()
.plot_tfr()
error when selecting a specific frequency range fixed.vdiffr
testserp_image()
smoothing over time instead of epochs.EEGLAB
.set files saved in newer Matlab file formats.eeg_filter()
to data
instead of .data
erp_image()
now supports eeg_tfr
objects.eeg_data
objects, eeg_combine()
would substantially undercorrect the timing of events in the third file - this is now fixed.groups
parameter for topoplot()
now correctly passed for all types of object.stat_tests.R
file removed, will be reimplemented elsewhererm_baseline()
for eeg_evoked
no longer uses data.table
as.data.frame.eeg_evoked()
handles grouped data better.import_set()
now handles all EEGLAB formats better.ar_eogcor
now has a bipolarize
argument which can be set to false when the HEOG/VEOG channels are already bipolarized.ggplot2
based functions for topoplotting and adding contours stat_scalpcontours()
geom_topo()
now has contourscompute_psd
or compute_tfr
on eeg_group
objects.compute_tfr()
now works better with eeg_evoked
objects that contain multiple conditions.eeg_reference
now handles multiple reference channels better on rereferencingget_scalpmap
handles eeg_ICA
components better when there are channels with no locationscart_to_spherical
coord flipping bug fixed (hopefully...)filter
now converts to tibble internally and does not coerce signals
to a vector when there is only one channel.summary_contour
fileeeg_combine.eeg_evoked
made to behave more consistently when creating grouped dataas.data.frame()
functions moved to df_converters.r
IMPORTANT: There have been some changes to the logic of the topoplot()
that may make their appearance quite different. Specifically, these changes are to the way the underlying interpolation grid is calculated and to how things like the diameter of the cartoon head is calculated. These changes often lead to different minimum or maximum amplitudes across the image, and thus changes in the appearance of the plot due to different scales- don't be alarmed!
epoch_data
baseline correction now defaults to no baseline correctionfilter
method for eeg_tfr
objectsfit_glm()
overhauled. Now far faster and allows specification of models using standard R formulae.eeg_lm
class introduced for output of fit_glm()
.plot_butterfly.eeg_lm()
method addedas.data.frame()
methods have been added for eeg_lm
objects.view_ica()
Shiny viewer for eeg_ICA
and eeg_decomp
objects added.view_artefacts()
Shiny viewer for channel and epoch stats added.plot_timecourse()
now takes a mapping argument, which allows use of ggplot2
aes()
mappingseeg_average.eeg_tfr()
now follows behaviour of other eeg_average()
methods in respecting the epochs
structure. compute_itc()
added for computing inter-trial coherence from eeg_tfr
objects.cols
added to eeg_average.eeg_tfr
eeg_combine.tfr_average()
added to handle pre-averaged eeg_tfr
objectscompute_tfr()
now allows non-constant number of cyclescompute_tfr()
now uses a different scaling factor, so raw units should now be microvolts-squared. import_erplab()
functionplot_timecourse()
now allows CIs for eeg_group
objects.plot_tfr()
now always drops NA/NaN values and averages appropriately over electrodes and conditions.import_set()
handles continuous EEG data from EEGLAB much betterwhitening
package for whitening before SOBI ICAselect_epochs
for eeg_ICA
objects fixed to correctly remove epochs from signals
filter.eeg_ICA
and filter.eeg_tfr
filter.eeg_data
and filter.eeg_evoked
select_elecs
for eeg_ICA
now correctly removes components from the unmixing matrixleft_join
from dplyr
in the tag_events
function as an easy fix for sorting of events when tagging.select()
and validate_channels()
that reordered channel names in chan_info
eeg_decomp
now doing better job of filtering for ssd
methodtibble
related warnings and errors cleaned up.method = "gam"
should now yield sensible results for geom_topo()
run_ICA()
and eeg_decomp()
methods now return components ordered by percent variance explained (high to low)browse_data().eeg_ica
grid res reducedeeg_reference().eeg_epochs
was always average referencing, now fixed.topoplot()
for biharmonic smoothcompute_psd()
now demeans individual segments when doing Welch FFT; also no longer errors when only one segment per channeleeg_tfr()
internal structure modified to keep 4 dimensions even after averaging, for consistencystat_summary_by_fill()
added to do averaging for raster plots effectively.convert_tfr()
now properly returns converted dataimport_raw()
fix for Brain Vision Analyzer files with date fields in the markersversion
field to most objectsfast_bdf = FALSE
parameter to import_raw()
eeg_combine
now supports combining lists.eeg_reference
now supports eeg_epochs
and eeg_evoked
objects.plot_butterfly
should now be faster again.eeg_filter
added demean
parameter so that removing channel/epoch means during filtering is now optional. Defaults to TRUE.ar_acf()
checks for low autocorrelationar_chanfoc()
checks for excessive channel focality (e.g. components that load mostly on one channel)ar_trialfoc()
checks for trial focality (components that load mostly on a few trials)ar_eogcor()
checks for correlation with EOG channelstopoplot
plotting radius logic altered compute_csd
now uses eeg_reference
rather than reref_eeg
compute_tfr
reworked to be faster.compute_tfr
, which greatly improves speed/accuracy; units may change but this is a change in scaling factor.epoch_data
now uses a more robust way of determining time limits/samples to include in each epoch that no longer fails at some combinations of time limit and sampling rateeeg_average
returns objects of class(eeg_evoked
, eeg_epochs
)compute_psd
fix for single segment datanest
and unnest
in keeping with tidyr 1.0.0
as.data.frame.eeg_tfr()
now fixed to output correctlyas.data.frame
methods changed.cond_label
parameter is deprecatedepochs
structure is now automatically added to the data.frametag_epochs
function added for labellingrun_ICA
now includes the fICA
package version of fastica
, and now supports running PCA before ICA.apply_ICA
function added to remove ICA components.select_times()
changed to use exact supplied times rather than finding nearest times in the data.dplyr
functions added:select()
now works for selecting electrodes from eeg_data
and eeg_epochs
objects.filter()
filters by time points or epochs from eeg_data
and eeg_epochs
objects.mutate()
adds columns to the signals
from eeg_data
and eeg_epochs
objects.topoplot()
now has a groups
parameter that allows the possibility of facetting by event labels.events()
function added to easily access and modify the events structure of all eegUtils
objects.channels()
function added to easily access and modify the chan_info structure of all eegUtils
objects.epochs()
function added to access and modify epochs structure.ar_eogreg()
function added for removing eye movement activity using regression.eeg_filter()
function added for a unified method of filtering using either FIR or IIReeg_filter()
supports use of multiple threads/cores through the future
package.iir_filt()
will be deprecatedgeom_topo()
extension for ggplot2
added. Allows plotting of a topographical scalp maps using standard ggplot2
functions.grid_res
for topography related plots increased to 200.data.table
now used in the following functions internally:reref_eeg()
iir_filt()
eeg_FASTER()
reref_eeg()
now correctly excludes electrodes as requested.iir_filt()
now correctly respects epoch boundaries.epochs
added to eeg_data
and eeg_epochs
objects.chan_info
changes to make chan_info consistent across systems. eeg_combine
now checks and fixes eeg_data
timing consistencyeeg_tfr
objects now use differently organised underlying matrices.eeg_ICA
fixed unmixing matrices, which were transposed. topoplot()
now has a scaling parameter to scale the size of any lines or markers drawn on the plot.plot_tfr()
function now useable, with baseline correction also added.rm_baseline()
now handles eeg_tfr
objects.as.data.frame()
method added for eeg_tfr
objects.compute_tfr()
function now available for use with Morlet wavelets.plot_psd()
now allows changing of FFT parameters (e.g. number of FFT points, segment length)eeg_tfr
objects (e.g. select_elecs()
)plot_timecourse()
overhauled to be S3 method.plot_butterfly()
reworked internally to be more efficientrm_baseline()
simplified internally, reworked to use matrices; split to separate file.select_elecs()
now works for eeg_evoked
objectseeg_decomp
function in progress for performing SSD analysestopoplot()
improvements internally. Now offers potential for facetting.dplyr
functions implemented internally for some objects.topoplot()
added highlights parameter to allow specific electrodes to be highlighted.run_ICA()
now offers extended Infomax and Fastica thanks to the ica
packageplotly
is now a "suggested" package rather than a dependencyplot_psd()
function added to calculate and plot the PSD for eeg_epochs
and eeg_data
objectsplot_tfr()
function added to handle eeg_tfr
objects.erp_image()
now works with eeg_ICA
objectseeg_epochs
and eeg_data
compute_tfr()
function added to performed TFA on eeg_epochs
epoch_data()
now warns if some events are not found rather than stops. Only stops if no events are found.reref_eeg()
ref_data
fieldtf_morlet
recoded to be called internallycompute_psd()
welch_fft()
in order to support possibility of different FFT methods.welch_fft()
internal function addedeeg_downsample()
now makes sure epoch length is a multiple of the downsampling factor to avoid problems with timing jittererp_image()
is now an S3 methodrun_ICA()
compute_csd()
compute_tfr()
eeg_FASTER()
now properly selects electrodes and epochs for removalas.data.frame.eeg_epochs()
now has a cond_labels
parameter to select epochs with specific events and add the event label as an additional column.as.data.frame()
methods now drop the sample
column.as.data.frame.eeg_ICA()
now has a cond_labels
parameter to select epochs with specific events and add the event label as an additional column.reref_eeg()
now removes reference channels from the data.eeg_FASTER()
- FASTER artefact rejection method now (mostly) implemented (experimental).plot_butterfly()
some dplyr
use removed.run_ica()
refactored SOBI method, JADE dependency removed.montage_check()
command parses montage info when passed to electrode_locations()
label_check()
added to help parse event labelsproc_events()
added to help parse event labels during select_epochs()
callstopoplot()
now tries to average/select across time/epochs before converting to long data, less memory useselect_elecs()
also removes electrodes from chan_infoselect_epochs()
fixed bug where events
and timings
were inconsistent when using keep = FALSE
channel_management.r
eeg_evoked()
class introduced to hold ERPSeeg_ICA()
class introduced to hold ICA decompositionseeg_average()
function to calculate averages (e.g. ERPs) from eeg_epochs
objectsas.data.frame.eeg_evoked()
introduced to handle conversion of eeg_evoked objects to data frames.compute_psd()
function development, converted to S3method.topoplot()
properly checks for existing chan_info in eeg_data
objectsplot_timecourse()
and plot_butterfly()
modified to deal with eeg_evoked
objects.plot_butterfly()
updated to better handle data framestopoplot.eeg_ICA()
added to make topolots from ICA componentsrm_baseline()
reworked as S3 method and to be faster and much less memory intensive.plot_butterfly()
converted to S3 method.eeg_downsample()
function added to downsample EEG data by an integer factor.tag_events()
function added to give labels to event codes.list_events()
added to display unique event codes and their associated labels.select_epochs()
now allows selection of epochs by event code or event label.erp_raster()
- plot ERPs across the scalp as an ERP imageeeg_combine()
- combine multiple eeg_data
or eeg_epochs
objects into oneeeg_epochs()
now also handles downsampled data appropriately.select_times()
no longer leaves "epoch" column in eeg_epochs
objects.topoplot()
now calls a separate function (gam_topo()
) to create GAM smoothsbrowse_data()
major speed-ups, no longer converts to long format until necessary. Converted to S3method.interactive_scalp()
fixed plotting of individual electrodesinterp_elecs()
function to perform spherical spline interpolation of individual electrodeseeg_ar_thresh()
simple absolute value thresholding addedplot_electrodes()
Produces a 2D or interactive 3D plot of electrode locationsiir_filt()
now also filters reference channelsload_set()
command added to load EEGLAB .set filesselect_times()
to an S3 generic methodselect_times.eeg_data
select_times.eeg_epochs
Converted iir_filt()
to an S3 generic method
iir_filt.eeg_data
iir_filt.eeg_epochs
NEWS.md
file to track changes to the package.Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.