mne-tools / mne-tools/mne-python
Improve I/O with EEGLAB
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 3.5k
- Forks
- 1.6k
- Avg merge
- 1d 6h
- Merged PRs (30d)
- 100
Description
I have to work a bit with EEGLAB, and I'm not very familiar with it (yet) but I already noticed a couple of improvements that could be made to the I/O in my opinion.
Reader
Channel type is hard-coded to 'eeg' here while EEGLAB seems to support a larger variety of channel types.
From the documentation:
‘EEG’, ‘MEG’, ‘EMG’, ‘ECG’, ‘Events’, etc.
Proposition: Try to retrieve the channel types saved by EEGLAB and convert it to one of MNE channel types (e.g. 'EEG' -> 'eeg', 'Events' -> 'stim').
Writer / Export
Looking at export_set in eeglabio, it has an argument ref_channels that is not used by the export code. If I'm not mistaken, the referencing information is present in Info, so it could be passed to the .set file via this argument.
eeglabio.raw.export_set(
fname, data=raw.get_data(picks=ch_names), sfreq=raw.info['sfreq'],
ch_names=ch_names, ch_locs=cart_coords, annotations=annotations)
Support for channel type is not included in eeglabio, I would like to add it https://github.com/jackz314/eeglabio/pull/4
Once added to eeglabio, the exporter could make use of this additional argument.
TODO:
- Add support for MNE channel types in the reader (#9990)
- Add a warning when exporting with unapplied projectors + warning in documentation (#9994)
- Add support to export MNE channel types (depends on jackz314/eeglabio#4)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with mne/io/eeglab/eeglab.py around the reader code and the export_set call shown in the issue, then inspect the linked eeglabio PR. Confirm which TODO items are already complete and whether the remaining channel-type export and ref_channels work is available upstream; done means the pending export behavior is supported and covered by the relevant I/O tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100