Size: 5415
Comment:
|
← Revision 47 as of 2024-04-11 13:09:14 ⇥
Size: 8448
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
= Bad channels and bad segments = ''Authors: Francois Tadel, Elizabeth Bock'' |
= Tutorial 11: Bad channels = ''Authors: Francois Tadel, Elizabeth Bock, Sylvain Baillet'' It is common during the acquisition to have a few sensors that are recording values that will not be usable in the data analysis. In MEG, a sensor can be damaged or unstable. In EEG, the quality of the connection between the electrode and the scalp is sometimes too low to record anything interesting. It is important to identify the sensors with poor signal quality at an early stage of the pre-processing, because the efficiency of the artifact removal will depend on it. If you try to remove blink and cardiac artifacts with some bad sensors it may not work very well, and worse, it will propagate the bad signals to all the channels. This tutorial will explain the various ways we have to handle the bad channels. Note that the recordings from this auditory experiment do not contain any bad sensors, therefore the entire tutorial is optional. If you are not interested, you can skip it and will still be able to follow the next tutorials. |
Line 6: | Line 12: |
= From auditory = == Bad channels == * During the visual exploration, some channels appeared generally noisier than the others. Example: |
<<TAG(Advanced)>> |
Line 10: | Line 14: |
{{http://neuroimage.usc.edu/brainstorm/Tutorials/Auditory?action=AttachFile&do=get&target=badchannel02.gif|badchannel02.gif|height="200",width="456",class="attachment"}} * Right-click on '''Run01 '''> Good/bad channels > Mark some channels as bad > '''MRT51, MLO52''' * Right-click on '''Run02 '''> Good/bad channels > Mark some channels as bad > '''MRT51, ''''''MLO52, MLO42, MLO43''' |
== Identifying bad channels == Some bad channels are easy to detect, their signals look either completely off or totally flat compared with the other surrounding sensors. Some others are more difficult to identify. The examples below are taken from other datasets. |
Line 16: | Line 17: |
= From CTF = == Bad channels == If you find out that a sensor has unexpected values, that are not coherent with the other surrounding sensors, you can choose to ignore it in the displays and in the source estimation process. In the channel file, each channel has a flag which indicates if it is good or bad. You may also import recordings files that already have some bad channels defined. |
* The power spectrum density (PSD) is usually a good way to spot a few bad channels, this is why we always recommend to compute it for all the datasets:<<BR>><<BR>> {{attachment:psd_neck.gif||height="146",width="423"}} {{attachment:bad_psd.gif||height="140",width="213"}} |
Line 20: | Line 19: |
* Select a few channels with one of the method described above: click on the time series, click on the sensors dots, right-click and move to select a group of sensors. Then right-click in one of the figures and check out the '''Channels''' sub-menu: . {{http://neuroimage.usc.edu/brainstorm/Tutorials/TutExploreRecodings?action=AttachFile&do=get&target=channelMenu.gif|channelMenu.gif|class="attachment"}} * '''View selected''': Show the time series of the selected sensors |
* Simply looking at the signals traces, some channels may appear generally noisier than the others: <<BR>><<BR>> {{attachment:bad_signal.gif||height="122",width="266"}} * Looking at a 2D sensor topography, if one sensor shows very different values from its neighbors for extended periods of time, you can doubt of its quality: <<BR>><<BR>> {{attachment:bad_topo.gif||height="128",width="335"}} |
Line 24: | Line 22: |
* '''Mark selected as bad''': Remove sensors from the display and all the further computations | <<TAG(Advanced)>> |
Line 26: | Line 24: |
* '''Mark non-selected as bad''': Keep only the selected channels | == Selecting sensors == * Double-click on the recordings for run #01 to open the MEG sensors. * Right-click on the time series figure > View topography (or press Ctrl+T). * Right-click on the topography figure > Channels > Display sensors (or press Ctrl+E). * If you can't see anything because the topography figure is too small, you can change the way the figures are automatically arranged. In the top-right corner of the Brainstorm figure, select the menu "Window layout options > Tiled". * You can select one channel by clicking on its signal or on the dot representing it in the topography figure. Note that the sensor selection is automatically reported to the other figure. <<BR>><<BR>> {{attachment:select_channel.gif||height="155",width="470"}} * You can select multiple sensors at the same time the topography figure. <<BR>>Right-click on the figure, then hold the mouse button and move the mouse. <<BR>><<BR>> {{attachment:select_multiple.gif||height="133",width="206"}} * Select a few sensors, then right-click on one of the figures and check out the Channels menu: <<BR>><<BR>> {{attachment:select_popup.gif||height="191",width="533"}} * '''View selected''': Show the time series of the selected sensors. * '''Mark selected as bad''': Remove sensors from the display and all the further computations. * '''Mark non-selected as bad''': Keep only the selected channels. * '''Reset selection''': Unselect all the selected sensors. * '''Mark all channels as good''': Brings back all the channels to display. * '''Edit good/bad channels''': Opens an interface that looks like the channel editor, but with one extra column to edit the status (good or bad) of each channel. |
Line 28: | Line 39: |
* '''Reset selection''': Unselect all the selected sensors | <<TAG(Advanced)>> |
Line 30: | Line 41: |
* '''Mark all channels as good''': Brings back all the channels to display | == Marking bad channels == * Select a few channels, right-click > Channels > '''Mark selected as bad''' (or press the '''Delete '''key). * The selected channels disappear from the two views. In the time series figure, the signals are not visible anymore, in the topography the corresponding dots disappear and the values of the magnetic fields around the missing sensors get re-interpolated based on what is left.<<BR>><<BR>> {{attachment:select_delete.gif||height="167",width="472"}} * With the time series figure, you can display the signals that have been tagged as bad.<<BR>>In the Record tab, select the '''montage "Bad channels"'''. <<BR>>In this view, you cannot select the channels, they are not available anymore. <<BR>><<BR>> {{attachment:bad_montage.gif||height="163",width="493"}} * Right-click on a figure > Channels > '''Edit good/bad channels'''.<<BR>>This menu open a window very similar to the Channel Editor window, with additional green and red dots to indicate the status of each channel. Click on the dot to switch it to good or bad. <<BR>><<BR>> {{attachment:bad_edit.gif||height="127",width="392"}} |
Line 32: | Line 47: |
* '''Edit good/bad channels''': Opens an interface that looks like the channel editor, but with one extra column to edit the status (good or bad) of each channel. | <<TAG(Advanced)>> |
Line 34: | Line 49: |
* '''Mark channels as bad''': Right-click > ''Channels > Mark selected as bad'', or press ''Delete ''key. The sensors should disappear in all figures, and the topography view (2D sensors cap) is updated so that the interpolation on the 2D surface now ignores the bad channels. . {{http://neuroimage.usc.edu/brainstorm/Tutorials/TutExploreRecodings?action=AttachFile&do=get&target=channelSetBad.gif|channelSetBad.gif|class="attachment"}} |
== From the database explorer == Many options to change the list of bad channels are available from the database explorer. |
Line 37: | Line 52: |
* '''Get the channels back''': two options * Right-click on figure > ''Channels > Mark all channels as good<<BR>> '' |
* The menus are available if you right-click one data file (or link to raw file). In this case, the selected operation is applied only on the selected file. <<BR>><<BR>> {{attachment:bad_popup_file.gif||height="140",width="488"}} * The same menus are also available for all the folders. In this case, the selected operation is applied recursively to all the data files (and links to raw files) that are found in the folder. <<BR>><<BR>> {{attachment:bad_popup_db.gif||height="120",width="438"}} * With this batching ability of the database explorer, you can quickly tag some bad channels in all the recordings of a subject or for the entire protocol. You can also get a quick overview of all the bad channels in all the files at once with the menu '''View all bad channels'''. <<BR>><<BR>> {{attachment:bad_view.gif||height="119",width="671"}} * '''Restore all the good channels''' before moving to the next tutorial. For instance, right-click on the protocol folder TutorialIntroduction > Good/bad channels > '''Mark all channels as good'''. |
Line 40: | Line 57: |
* Right-click on figure ''> Channels > Edit good/bad channels...'' : this menu open a window very similar to the Channel Editor window introduced in previous tutorials, but without the annoying location and orientation values, and with green and red dots. Click on the dots to mark a channel as good or bad. ''' {{http://neuroimage.usc.edu/brainstorm/Tutorials/TutExploreRecodings?action=AttachFile&do=get&target=channelEditGoodBad.gif|channelEditGoodBad.gif|class="attachment"}} ''' * Note that if you click on a row in this window, it will select the corresponding channel in the time series and topography figures. * Close this window to save the changes. |
<<TAG(Advanced)>> |
Line 45: | Line 59: |
* '''Batching this from the database explorer''': * You will find a "Channels" menu for any node in the tree that contains recordings. * If you do this on the level of a node, the operation will be applied recursively to all the recordings contained in the node. This way, you can quickly set that the channel 63 is always bad, or that electrode 43 is not working for subject #12, without having to visualize all the recordings one after the other. * The'' View all bad channels'' command displays the list of all the bad channels in all the files in the ''Messages ''tab, in main Brainstorm window. {{http://neuroimage.usc.edu/brainstorm/Tutorials/TutExploreRecodings?action=AttachFile&do=get&target=channelTreePopup.gif|channelTreePopup.gif|class="attachment"}} |
== Epoching and averaging == The list of bad channels is saved separately for each dataset. |
Line 50: | Line 62: |
* '''Important notes''': * The good/bad channel flags are stored in the recordings files, not in the channel files. So if you marked some channels as ''bad ''in the ''ERF ''data file, there are still considered as ''good ''in the ''Std ''data file. |
At this stage of the analysis, the database contains only links to continuous files. When you import epochs from a continuous file, the list of bad channels will be copied from the raw file to all the imported data files. |
Line 53: | Line 64: |
{{{ ADD BAD CHANNEL MONTAGE }}} = From auditory = == Bad segments == * At this point, you should review the entire files, by pages of a few seconds scrolling with the F3 key, to identify all the bad channels and the noisy segments of recordings. Do this with the the EOG channel open at the same time to identify saccades or blinks that were not completely corrected with the SSP projectors. As this is a complicated task that requires some expertise, we have prepared a list of bad segments for these datasets. * Open '''Run01'''. In the Record tab, select '''File > Add events from file''': * File name: sample_auditory/data/S01_AEF_20131218_01_notch/'''events_bad_01.mat ''' * File type: Brainstorm (events*.mat) * It adds '''12 bad segments''' to the file. |
Then you will be able to redefine this list for each epoch individually, tagging more channels as bad, or including back the ones that are ok. This way it is possible to exclude from the analysis the channels that are too noisy in a few trials only, for instance because of some movement artifacts. |
Line 64: | Line 66: |
* Open '''Run02'''. In the Record tab, select '''File > Add events from file''': * File name: sample_auditory/data/S01_AEF_20131218_02_notch/'''events_bad_02.mat ''' * File type: Brainstorm (events*.mat) * It adds '''9 bad segments''' and '''16 saccades''' to the file. |
When averaging, if an epoch contains one bad channel, this bad channel is excluded from the average but all the other channels are kept. If the same channel is good in other trials, it will be considered as good in the average. This means that not all the channels have the same number of trials for calculating the average. This may cause the different channels of an averaged file to have different signal-to-noise ratios, which may lead to confusing results. However, we decided to implement the average in this way to be able to keep more data in the studies with a low number of trials and a lot of noise. <<TAG(Advanced)>> == On the hard drive == The list of bad channels is saved for each data file separately, in the field '''ChannelFlag'''. <<BR>>This vector indicates for each channel #i if it is good (ChannelFlag(i)=''' 1''') or bad (ChannelFlag(i)=''' -1'''). Right-click on a link to a continuous file > File > View file contents: {{attachment:bad_file.gif||height="273",width="402"}} For '''raw''' data files, this information is duplicated in the sFile structure (F field) in order to be passed easily to the low-level reading functions. If you are planning to modify the list of bad channels manually, you need to change two fields: '''mat.ChannelFlag''' and '''mat.F.channelflag'''. For '''imported''' data, you just need to modify the field '''mat.ChannelFlag'''. <<HTML(<!-- END-PAGE -->)>> <<EmbedContent("http://neuroimage.usc.edu/bst/get_prevnext.php?prev=Tutorials/ArtifactsFilter&next=Tutorials/ArtifactsDetect")>> <<EmbedContent(http://neuroimage.usc.edu/bst/get_feedback.php?Tutorials/BadChannels)>> |
Tutorial 11: Bad channels
Authors: Francois Tadel, Elizabeth Bock, Sylvain Baillet
It is common during the acquisition to have a few sensors that are recording values that will not be usable in the data analysis. In MEG, a sensor can be damaged or unstable. In EEG, the quality of the connection between the electrode and the scalp is sometimes too low to record anything interesting.
It is important to identify the sensors with poor signal quality at an early stage of the pre-processing, because the efficiency of the artifact removal will depend on it. If you try to remove blink and cardiac artifacts with some bad sensors it may not work very well, and worse, it will propagate the bad signals to all the channels.
This tutorial will explain the various ways we have to handle the bad channels. Note that the recordings from this auditory experiment do not contain any bad sensors, therefore the entire tutorial is optional. If you are not interested, you can skip it and will still be able to follow the next tutorials.
Contents
Identifying bad channels
Some bad channels are easy to detect, their signals look either completely off or totally flat compared with the other surrounding sensors. Some others are more difficult to identify. The examples below are taken from other datasets.
The power spectrum density (PSD) is usually a good way to spot a few bad channels, this is why we always recommend to compute it for all the datasets:
Simply looking at the signals traces, some channels may appear generally noisier than the others:
Looking at a 2D sensor topography, if one sensor shows very different values from its neighbors for extended periods of time, you can doubt of its quality:
Selecting sensors
- Double-click on the recordings for run #01 to open the MEG sensors.
Right-click on the time series figure > View topography (or press Ctrl+T).
Right-click on the topography figure > Channels > Display sensors (or press Ctrl+E).
If you can't see anything because the topography figure is too small, you can change the way the figures are automatically arranged. In the top-right corner of the Brainstorm figure, select the menu "Window layout options > Tiled".
You can select one channel by clicking on its signal or on the dot representing it in the topography figure. Note that the sensor selection is automatically reported to the other figure.
You can select multiple sensors at the same time the topography figure.
Right-click on the figure, then hold the mouse button and move the mouse.
Select a few sensors, then right-click on one of the figures and check out the Channels menu:
View selected: Show the time series of the selected sensors.
Mark selected as bad: Remove sensors from the display and all the further computations.
Mark non-selected as bad: Keep only the selected channels.
Reset selection: Unselect all the selected sensors.
Mark all channels as good: Brings back all the channels to display.
Edit good/bad channels: Opens an interface that looks like the channel editor, but with one extra column to edit the status (good or bad) of each channel.
Marking bad channels
Select a few channels, right-click > Channels > Mark selected as bad (or press the Delete key).
The selected channels disappear from the two views. In the time series figure, the signals are not visible anymore, in the topography the corresponding dots disappear and the values of the magnetic fields around the missing sensors get re-interpolated based on what is left.
With the time series figure, you can display the signals that have been tagged as bad.
In the Record tab, select the montage "Bad channels".
In this view, you cannot select the channels, they are not available anymore.
Right-click on a figure > Channels > Edit good/bad channels.
This menu open a window very similar to the Channel Editor window, with additional green and red dots to indicate the status of each channel. Click on the dot to switch it to good or bad.
From the database explorer
Many options to change the list of bad channels are available from the database explorer.
The menus are available if you right-click one data file (or link to raw file). In this case, the selected operation is applied only on the selected file.
The same menus are also available for all the folders. In this case, the selected operation is applied recursively to all the data files (and links to raw files) that are found in the folder.
With this batching ability of the database explorer, you can quickly tag some bad channels in all the recordings of a subject or for the entire protocol. You can also get a quick overview of all the bad channels in all the files at once with the menu View all bad channels.
Restore all the good channels before moving to the next tutorial. For instance, right-click on the protocol folder TutorialIntroduction > Good/bad channels > Mark all channels as good.
Epoching and averaging
The list of bad channels is saved separately for each dataset.
At this stage of the analysis, the database contains only links to continuous files. When you import epochs from a continuous file, the list of bad channels will be copied from the raw file to all the imported data files.
Then you will be able to redefine this list for each epoch individually, tagging more channels as bad, or including back the ones that are ok. This way it is possible to exclude from the analysis the channels that are too noisy in a few trials only, for instance because of some movement artifacts.
When averaging, if an epoch contains one bad channel, this bad channel is excluded from the average but all the other channels are kept. If the same channel is good in other trials, it will be considered as good in the average. This means that not all the channels have the same number of trials for calculating the average.
This may cause the different channels of an averaged file to have different signal-to-noise ratios, which may lead to confusing results. However, we decided to implement the average in this way to be able to keep more data in the studies with a low number of trials and a lot of noise.
On the hard drive
The list of bad channels is saved for each data file separately, in the field ChannelFlag.
This vector indicates for each channel #i if it is good (ChannelFlag(i)= 1) or bad (ChannelFlag(i)= -1).
Right-click on a link to a continuous file > File > View file contents:
For raw data files, this information is duplicated in the sFile structure (F field) in order to be passed easily to the low-level reading functions. If you are planning to modify the list of bad channels manually, you need to change two fields: mat.ChannelFlag and mat.F.channelflag. For imported data, you just need to modify the field mat.ChannelFlag.