Hello!
I am fairly new to MNE and wanted to ask for advice on the best course of action for a project broadly looking into how different ERPs are elicited in response to fixations to different video ROIs (eyes, mouth, etc.) when watching 17 mins worth of videos. We are defining each fixation to an ROI as an event.
Our current pipeline does the following:
Apply notch filtering (60Hz) and band-pass filtering (l_freq=0.1, h_freq=50.0)
find and interpolate bad channels
Run ICA (n_components=20) and keep “brain” and “other” components
Segment the data into epochs and reject bad epochs
The data still looks a bit noisy, and the noise is highly variable depending on the participant.
Do you think this preprocessing pipeline is appropriate for our dataset?
Given that events (fixations) differ in terms of fixation type, fixation duration, and sequence of fixations per participant (depending on what each person generally finds interesting), it might also be possible that brain responses are overlapping (eg. response for fixations to the eyes are decreasing the response for the prior fixation to mouth because of how quickly it happened). Would you recommend a deconvolution method to disentangle overlapping responses to adjacent fixations after ICA in the preprocessing pipeline?
Regarding your preprocessing pipeline, it seems appropriate, but I’m a bit worried about the number of ICA components. You have 129 channels, but just 20 components. This gives rise to a potential risk of mixing brain signals and artifacts. If there are not a lot of participants, I would calculate all components, manually check the ICA’s, and only discard clear artefactual ones.
129 channels is oversampling the inherent spatial resolution of EEG. 20 components indeed seems low, perhaps increase it to capture 99% of variation? (ICA(n_components=0.99)).
Events can definitely overlap and that is an issue. First I would restrict the analysis to non-overlapping events only, if you have enough events like that to create a stable ERP, just to get an idea of what it should look like. Then, in order to use all data, you could look into some preprocessing method that can deal with overlapping signals, such as XDawn: mne.preprocessing.Xdawn — MNE 1.12.1 documentation
Re: Advice on preprocessing dual EEG (129 channels)/eye-tracking
Working with synchronized EEG and eye-tracking data is definitely complex, but a few practical considerations should guide your preprocessing pipeline:
Channel management: 129 channels is substantial but manageable. I’d recommend documenting exactly which montage you’re using upfront—whether that’s 10-20 extended, a custom cap layout, or something else. This matters enormously when you move to source localization later. Have you already identified which channels are problematic or noisy in your specific setup.
Temporal alignment: Make sure your triggers or sync pulses between the two systems are rock solid. Eye-tracking systems often drift slightly over long sessions, and even 10-20ms misalignment can cause issues in time-locked analyses. Did your setup include hardware sync or are you relying on software timestamps.
Artifact handling: Blink artifacts will appear in both modalities—which is actually useful for validation. I’d suggest preprocessing EEG and eye-tracking somewhat independently first, then using blink detection from one system to validate the other. For the 129-channel EEG, ICA tends to work well, but you might need 30-40 components to adequately capture blink and eye-movement artifacts before they contaminate your neural signal.
Practical workflow: Clean the eye-tracking data first (velocity thresholds, blink detection), then use those blink epochs to inform EEG preprocessing windows. This reduces the chance of over-aggressive EEG filtering that might remove legitimate neural activity.
What analysis are you ultimately targeting—ERPs, oscillations, or behavioral correlation.
I’d be happy to help with your dual EEG and eye-tracking preprocessing pipeline. Working with 129 channels across two systems is definitely complex, but manageable with a structured approach.
A few practical considerations:
Synchronization first. Before any filtering or artifact removal, establish a reliable clock sync between your EEG systems and eye tracker. Even 50ms drift compounds quickly over a long session. Most modern systems output timestamps—use those as your ground truth, not sample counts. If you’re using two separate EEG amplifiers, you’ll likely need external TTL pulses or a master clock signal to keep them aligned.
Channel mapping matters. Document your 129-channel layout carefully—note which subset comes from each system, their electrode positions, and impedance baselines. Preprocessing decisions (filter ranges, ICA components, artifact thresholds) sometimes need adjustment per-system if your amplifiers have different noise floors.
Eye-tracking integration. Rather than preprocessing EEG and eye-tracking completely separately, flag periods of blink artifacts and saccades during your ICA decomposition step. You can regress out these components more intelligently when you know exactly when they occur.
Practical workflow: I’d suggest independent component analysis on each system separately first, then decide whether cross-system ICA is warranted (usually not necessary). For 129 channels, 20-25 components typically captures major artifacts without over-fitting.
What’s your current preprocessing software (EEGLAB, FieldTrip, MNE)? That’ll affect specific recommendations for handling multi-system data.
Reply to: Advice on preprocessing dual EEG (129 channels)/eye-tracking
Working with synchronized EEG and eye-tracking data at that channel density requires some careful planning. Here are the practical considerations I’d prioritize:
Channel handling: 129 channels is substantial. Before preprocessing, confirm your reference scheme—are you using an average reference, linked mastoids, or something else. This choice affects downstream analyses more than people realize. If you’re doing ICA later, I’d recommend down-sampling spatially to ~64 channels using interpolation if possible, as computational demands scale poorly with 129.
Synchronization timing: Make sure your trigger pulses or synchronization codes are rock-solid between systems. Even 50ms drift will cause artifact correlation issues. Test this with a simple pulse generator before collecting real data if you haven’t already.
Artifact removal strategy: Eye-tracking and EEG have different artifact profiles. I’d suggest preprocessing them separately first, then aligning them. For EEG specifically, consider whether you want to regress out eye-movement components (using ICA or direct EOG) before correlating with your eye-tracking data. This prevents circular reasoning if eye movements are your variable of interest.
Sampling rates: What frequencies are you recording at. If they differ significantly, interpolation during alignment can introduce artifacts. Make sure both systems are synced to a common clock if possible.
What’s your primary research question here—are you looking at eye-movement correlates of neural activity, or using eye-tracking as a nuisance regressor?