I’m Alex and I’m currently a PhD student in Psychology.
- 🧑🏻💻 R & Python
- 🔬 Semantic processing & visual perception
- 🧠 EEG & fMRI data
- 🏃🏻 Distance runner
Single trial EEG pipeline at the Abdel Rahman Lab for Neurocognitive Psychology, Humboldt-Universität zu Berlin
Home Page: https://hu-neuro-pipeline.readthedocs.io
License: MIT License
Epochs.average()
in MNE 0.24.0 supports creating separate averages for each event_id
(which we'd need to create from the metadata first); see https://mne.tools/stable/generated/mne.Epochs.html#mne.Epochs.average.
Somehow, each release currently triggers 3 actions, leading 2 of them to fail (because file exists
on PyPI).
See https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#release
Because they can't be serialized to JSON
Empty auto_bad_channels
should be []
, not None
Return indices excluded ICA components per participant
Return dict with participant IDs (instead of list) for auto_bad_channels
, rejected_epochs
, excl_ica_components
reject_flat
for simplicitybaseline
should become baseline_tmin
and baseline_tmax
Use auto
instead of ICA method (e.g., 'fastica'
) for ocular_correction
Update docs/
accordingly
Based on publicly available data from our lab as in the original MATLAB pipeline.
pipeline()
should print some paragraphs for the methods section as is done, e.g., in NiMARE.
Because R converts c("some_string")
to "some_string
, which makes pipeline add an additional layer of lists, which produces an error when roi
was already specified as an (actual) list. Sigh.
Using Read the Docs or the like
Stupid me 😓
Compute tempo-spatial one sample tests for each combination of condition_cols
.
This enables to:
Sometimes one participant has 2 or more raw datasets because the recording was stopped accidently
Currently, we only deal with missing EEG epochs, not with missing log file trials. This seems to happen extremely rarely.
See MNE-BIDS and MNE-BIDS-Pipeline
Get rid of the many info messages created, e.g., for the HTML reports
Currently, the pipeline doesn't seem to fail when one or more channels provided via components_tfr['roi']
doesn't exist in the data
Specifying triggers_column
automatically gets rid of trials which are in the log file but not in the EEG, but right now it only prints this information on screen. The missing trial indices should also go into a separate field in the config
(similar to rejected_epochs
).
Problem: Single trial divisive baseline correction using the pre-stimulus interval leads to a positive bias in post-stimulus power (Grandchamp & Delorme, 2011; Hu et al., 2014)
Solutions:
pipeline()
should return a single DataFrame of evokes instead of a dict. Makes it more predictable in the case of one vs. multiple condition_cols
and easier to use the outputs in R.
See MNE docs
average_by
)?pymer4
statsmodels
and MixedModels.jl
+ pyjulia
as alternatives to lme4
bambi
for Bayesian (G)LMMsTo deal with (log) files that don't have leading zeros in their filenames, while the EEG and cali files do
Whereas we do overwrite all other outputs
For both ERPs and TFR we shouldn't do baseline correction if both baseline_tmin
and baseline_tmax
is None
Necessary for R interoperability
Do time-frequency decomposition on unfiltered epochs with Morlet wavelets; export as single trial power (for LMMs; needs new dict of frequency bands of interest) + as evokeds (for CBPTs).
Because no ica
is created when skipping ocular correction
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.