Skip to content

Plotting and visualization tools for EEG data, with additional Unfold.jl regression ERP methods. Based on the visualization libraries Makie.jl and AlgebraOfGraphics.jl

License

Notifications You must be signed in to change notification settings

unfoldtoolbox/UnfoldMakie.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

UnfoldMakie - Advanced EEG and ERP Plotting

All Contributors

Dev Build Status Coverage DOI

rERP EEG visualisation EEG Simulations BIDS pipeline Decode EEG data Statistical testing

A toolbox for visualizations of EEG/ERP data and Unfold.jl models.

Based on three libraries

  • Unfold - for performing deconvolution regression;
  • Makie - very flexible visualisation library (Maki-e means "visualisation" on Japanese);
  • Algebra of Graphics - Makie-based visualisation library, allowing flexible mapping.

This grants users high performance, and highly customizable plots.

We currently support 9 general ERP plots:

  • icon_erpplot_20px ERP plots
  • icon_butterfly_20px Butterfly plots
  • icon_topoplot_20px Topography plots
  • icon_toposeries_20px Topography time series
  • icon_erpgrid_20px ERP grid
  • icon_erpimage_20px ERP images
  • icon_channelimage_20px Channel images
  • icon_parallel_20px Parallel coordinates
  • Circular topoplots

And 2 Unfold-specific plots:

  • Design matrices
  • Splines plot

Install

Installing Julia

Click to expand

The recommended way to install julia is juliaup. It allows you to, e.g., easily update Julia at a later point, but also to test out alpha/beta versions etc.

TLDR: If you don't want to read the explicit instructions, just copy the following command

Windows

AppStore -> JuliaUp, or winget install julia -s msstore in CMD

Mac & Linux

curl -fsSL https://install.julialang.org | sh in any shell

Installing UnfoldMakie.jl

using Pkg
Pkg.add("UnfoldMakie")

Quickstart

using UnfoldMakie
using CairoMakie # backend
using Unfold, UnfoldSim # Fit / Simulation

data, evts = UnfoldSim.predef_eeg(; noiselevel = 12, return_epoched = true)
data = reshape(data, 1, size(data)...) # simulate a single channel

times = range(0, step = 1 / 100, length = size(data, 2))
m = fit(UnfoldModel, @formula(0 ~ 1 + condition), evts, data, times)

plot_erp(coeftable(m))

Contributions

Contributions are very welcome. These can be typos, bug reports, feature requests, speed improvements, new solvers, better code, better documentation.

How to Contribute

You are very welcome to submit issues and start pull requests!

Adding Documentation

  1. We recommend to write a Literate.jl document and place it in docs/literate/FOLDER/FILENAME.jl with FOLDER being HowTo, Explanation, Tutorial or Reference (recommended reading on the 4 categories).
  2. Literate.jl converts the .jl file to a .md automatically and places it in docs/src/generated/FOLDER/FILENAME.md.
  3. Edit make.jl with a reference to docs/src/generated/FOLDER/FILENAME.md.

Citation

If you use these visualizations, please cite:

DOI

Contributors

Benedikt Ehinger
Benedikt Ehinger

πŸ› πŸ’» πŸ“– πŸ€” πŸš‡ 🚧 πŸ’¬ πŸ‘€ ⚠️ βœ…
Vladimir Mikheev
Vladimir Mikheev

πŸ› πŸ’» πŸ“– πŸ€” 🚧 πŸ‘€ ⚠️ βœ…
Quantum
Daniel Baumgartner

πŸ’» πŸ“–
NiklasMGaertner
Niklas GΓ€rtner

πŸ’» πŸ“–
SorenDoring
Soren Doring

πŸ’» πŸ“–
lokmanfl
Fadil Furkan Lokman

πŸ’» πŸ“–
Judith Schepers
Judith Schepers

πŸ› πŸ€” πŸ“–
RenΓ© Skukies
RenΓ© Skukies

πŸ“–

Acknowledgements

Funded by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) – Project-ID 251654672 – TRR 161” / β€œGefΓΆrdert durch die Deutsche Forschungsgemeinschaft (DFG) – Projektnummer 251654672 – TRR 161.

Funded by Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under GermanyΒ΄s Excellence Strategy – EXC 2075 – 390740016