UnfoldMakie.jl

Plotting tools for Unfold.jl based on Makie.jl and AlgebraOfGraphics.jl
Author unfoldtoolbox
Popularity
16 Stars
Updated Last
2 Months Ago
Started In
July 2021

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 the Unfold and Makie, it grants users high performance, and highly customizable plots.

We currently support:

  • 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
  • Design matrices
  • Circular topoplots

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 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

🐛 💻 📖 🤔 🚇 🚧 💬 👀 ⚠️
Quantum
Daniel Baumgartner

💻 📖
Vladimir Mikheev
Vladimir Mikheev

🐛 💻 📖 🤔 🚧 👀 ⚠️
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