- MNE version: 1.1.0
- operating system: Windows 10
Hi erverybody !
First of all I want to deeply thank everybody who contributes to this forum and the different tutorials available on the website
I started from scratch few days ago and, little by little, I get to have an overview of all the possibilities MNE gives us !
Iām working on some EEG datas recorded from one subject performing some hand motor imagery (IM) (wrist extension) and physical practice (PP) of the same mouvement.
My first objective is to visualize / compare the PSD for some band of frequency in different areas of the brain, but mainly over C3, CZ, C4 in the condition of PP vs the condition of IM.
To begin I load my raw data using a gdf file : 59 minutes recording (!), 32 channels EEG.
First problem : I probably have some kind of unit conversion problem somewhere between recording and data loading ! when I simply plot the raw data (see below), the signal amplitude is really low ! I have to zoom in before seeing a signal, or to re define the value of āeegā in dict_plot (usually set on 20e-6, I have to set it to 20e-11 in order to have a signal without zooming).
For some reason I have 50 channels, but channels 33 to 50 show an horrible signal that doesnāt look like anything (see below).
So I added them to bad channels.
My GDF file does not contain any information about EEG electrodes location, so I used a generic (built-in) standard montage using
mne.channels.make_standard_montage('biosemi32')
I renamed the channels name using raw.rename
and was then able to set this standard montage to my raw data using raw.set_montage
These first steps allowed me to plot the PSD of the raw signal for each channels
Then I filtered my signal using a low pass (40Hz) and high pass filter (1Hz)
Second question : I am well below the power-line frequency (50 Hz) so I donāt need any notch filter, right ?
Next step was to create Epochs object based on this raw file.
I donāt have a stim channels, but do have 3 types of annotations corresponding to : āBeginning of Mental imageryā, āBeginning of physical practiceā, āstopā.
Using mne.Events_from_annotations
, I was able to āextractā the event of interest, which gave me 162 events:
- 12 tasks of PP,
- 69 tasks of IM,
- and 81 āstopā annotations
From this events, I was able to āepochā my data (5 seconds epochs, from -1s to +4s around the event of interest), and I used a rejection criteria to reject any epoch where peak-to-peak signal amplitude is beyond reasonable limit.
I saved the 69 epochs correspond to IM in a new objects āmi_epochsā and the 12 epochs corresponding to PP in an object āpp_epochsā
To clean up my signal, Iām kindoff confused on the next steps to operate.
I do not have EOG channel or ECG channels which make it difficult to remove these artifacts.
Is it always necessary to set a reference electrode ? If no such electrode had been set during recordings, should I use an average reference ?
Can I apply ICA to remove blink artifact using ica.find_bads_eog, using the channel Fp1 ?
Is there any other way to improve the signal / noise ratio in my case ?
Then, iām going to get an estimate of evoked responses for the 2 conditions (MI and PP) by averaging together the epochs created using epochs.average()
And I will be able to plot some data from this epoch / evoked objects such as psd, psd topomap, evoked difference etc.
It might be a good start to compare both conditionsā¦
But before that, iām really not sure of which preprocessing steps I have to go through for a good preparation of my data ā¦
Some help would be greatly appreciated