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
Using Read the Docs or the like
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.
See MNE docs
Because they can't be serialized to JSON
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:
Currently, we only deal with missing EEG epochs, not with missing log file trials. This seems to happen extremely rarely.
For both ERPs and TFR we shouldn't do baseline correction if both baseline_tmin
and baseline_tmax
is None
This enables to:
Get rid of the many info messages created, e.g., for the HTML reports
Compute tempo-spatial one sample tests for each combination of condition_cols
.
Sometimes one participant has 2 or more raw datasets because the recording was stopped accidently
pipeline()
should print some paragraphs for the methods section as is done, e.g., in NiMARE.
Necessary for R interoperability
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.
Based on publicly available data from our lab as in the original MATLAB pipeline.
reject_flat
for simplicitySpecifying 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
).
See MNE-BIDS and MNE-BIDS-Pipeline
Whereas we do overwrite all other outputs
To deal with (log) files that don't have leading zeros in their filenames, while the EEG and cali files do
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
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.
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
Currently, the pipeline doesn't seem to fail when one or more channels provided via components_tfr['roi']
doesn't exist in the data
baseline
should become baseline_tmin
and baseline_tmax
Use auto
instead of ICA method (e.g., 'fastica'
) for ocular_correction
Update docs/
accordingly
Because no ica
is created when skipping ocular correction
Stupid me 😓
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).
average_by
)?pymer4
statsmodels
and MixedModels.jl
+ pyjulia
as alternatives to lme4
bambi
for Bayesian (G)LMMsA 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.