I’m searching for some input in the following matter:
The study I’m working on is using a paradigm with spoken sentences wich have two signalwords (the triggers). I’m epoching and averaging each trigger seperately so I’m missing a timeperiod to use for baseline correction in front of the second trigger since it is in the middle of a spoken sentence.
I tried using baseline.rescale on the initial raw object with a timeperiod at the beginning of the measurement. It works but is kind of defeating the purpose of a baselinecorrection close to every epoch in a somewhat 30 min measurement with 180 of said sentences.
Is there a method or does someone has an idea for this?
I would simply create epochs with a pre-stimulus period that reaches back to the baseline you want to use, then use this baseline period (not the entire pre-stimulus period!) for baseline correction, and then crop the epochs to the time period you actually want to analyze.
Thank you very much!
I didn’t realise there is a crop method for epochs.
There is no fixed time between the first and the second trigger, but I think it’s manageable to find a way to set the baseline before the first trigger.
Oh, this is a non-trivial issue then, as MNE expects the baseline period to be the same across epochs, and all epochs must have the same duration.
I may have an idea on how to hack around this, though.
Do you always have both triggers in all of your epochs / trials?
Ah yes, I know. It would be a little bit of an ugly solution, but I just thought I will be able to find a baseline period that works for all trials.
Yes (at least in an ideal scenario). I tried to visualize it :
(The black boxes are the words.)
I’d love to hear your idea!
@richard , did you find a solution for this ?
I have a similar situation. I need to baseline correct each of my events from the “fixed” or inter-trial-interval (ITI ) epoch. All events need to be subtracted from the ITI occuring at EACH trial.
I think this got answered during live office hours today. @apoorva6262 can you post the solution you came up with?
epochs = mne.Epochs(raw_tmp, events, tmin= -2.0, tmax=1.0, event_id=event_dict,baseline=None,
start_data_baseline=mne.baseline.rescale(start_stim_data, start_stim_times, baseline=(-2.0,0), mode='zscore')
I didn’t test this, but I believe a cleaner solution that is also shorter would be to use
epochs = mne.Epochs(
raw=raw_tmp, events=events, tmin=-2.0, tmax=1.0, event_id=event_dict,
It’s seem that the problem has been solved by using Epochs.apply_function. However, I didn’t get why apply_function provides baseline period data before the first trigger to epoch 2.
Can anyone explain this to me?
I am stuck with the same issue. I need to correct epochs (post-stimulus) from offset to response, but the periods before the epochs of interest are the stimulus itself… I have difficulties understanding how I can do that. According to me it’s not possible to use the periods pre stimulus.
Pre-stimulus----- I STIMULUS I ********************I
Onset Offset Response Trigger
I have a similar question as @Sherry and @WilliamLabCea , could someone please explain how the apply_function provides the baseline period data for epoch 2 too? tagging @richard as you provided the answer. Thank you
For sake of completeness, the follow-up questions are in a new thread, here: Using a separate condition as baseline (e.g., a resting state)