unfoldtoolbox / UnfoldDecode.jl

MIT License
1 stars 4 forks source link
decoding eeg julia overlap-correction

logo_UnfoldDecode jl_120px

Dev Build Status Coverage

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

Beta-stage toolbox to decode ERPs with overlap, e.g. from eye-tracking experiments.

[!WARNING] No unit-tests implemented as of 2024-01-09 - use at your own risk!

Currently the following algorithms are implemented:

¹ actually any MLJ supported classification/regression model is already supported (beta)

Install

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 test out alpha/beta versions etc. TL:DR; If you dont 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

UnfoldDecode

Not yet registered thus you have to do:

using Pkg
Pkg.add(url="https://github.com/unfoldtoolbox/UnfoldDecode.jl")
using UnfoldDecode

once it is registered, this will simplify to Pkg.add("UnfoldDecode")

Quickstart

LDA = @load LDA pkg=MultivariateStats

des = Dict("fixation" => (@formula(0~1+condition+continuous),firbasis((-0.1,1.),100)));
uf_lda = fit(UnfoldDecodingModel,des,evt,dat,LDA(),"fixation"=>:condition)

Does the trick - you should probably do an Unfold.jl tutorial first though!

Loading Data

have a look at PyMNE.jl to read the data. You need a data-matrix + DataFrames.jl event table (similar to EEGlabs EEG.events)

Limitations

Contributions

Contributions are very welcome. These could be typos, bugreports, feature-requests, speed-optimization, new solvers, better code, better documentation.

How-to Contribute

You are very welcome to raise 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 this code, please cite this code + the appropriate paper/algorithm

Acknowledgements

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

Contributions

This project follows the all-contributors specification.

Contributions of any kind welcome! You can find the emoji key for the contributors here.