unfoldtoolbox / UnfoldMakie.jl

Plotting and visualization tools for EEG data, with additional Unfold.jl regression ERP methods. Based on the visualization libraries Makie.jl and AlgebraOfGraphics.jl
https://unfoldtoolbox.github.io/UnfoldMakie.jl/
MIT License
16 stars 7 forks source link
butterfly eeg eeg-visualization electroencephalography erp event-related-potentials julia makie plots plotting topoplots visualization

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

This grants users high performance, and highly customizable plots.

We currently support 9 general ERP plots:

And 2 Unfold-specific plots:

Install

Installing Julia

Click to expand The recommended way to install julia is [juliaup](https://github.com/JuliaLang/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 Unfold

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