2628
Comment:
|
7058
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
= CTF electric phantom with single dipole = | = MEG current phantom (CTF) = |
Line 4: | Line 4: |
This tutorial explains how to use recordings from the CTF electric phantom to test dipole fitting functions. | This tutorial explains how to use recordings from the CTF current phantom to test dipole fitting functions. |
Line 9: | Line 9: |
'''[TODO]''' Pictures | '''CTF Current Phantom''' <<BR>> {{attachment:phantom_image_full.jpg|CTF Current Phantom}} {{attachment:phantom_image_closeup.jpg|CTF Current Phantom dipole (black wires)}} {{attachment:phantom_image_inMEG.jpg|CTF Current Phantom positioned under the MEG sensors}} |
Line 11: | Line 11: |
'''[TODO]''' Nature of the dipole that is generated | '''The dipole'''<<BR>> The dipole itself is constructed of two gold spheres about 2 mm in diameter, separated by 9.0 mm center to center. The dipole moment can be calculated by the equation: |
Line 13: | Line 13: |
'''[TODO]''' References | . '''m=IL''' where I is the dipole current and L is the length of the dipole (0.009 m). The location of the dipole is recorded relative to the center of the sphere (0,0,0)m, where X is positive toward the nasion, Y is positive toward the left ear and Z is positive toward the top of the head (see the [[CoordinateSystems]] tutorial for more details) In this tutorial we used two dipole currents: ||'''Current''' ||'''Moment''' ||'''Frequency''' ||'''Location''' || ||20uA ||180nAm ||23Hz ||(0, -0.018, 0.049)m || ||200uA ||1800nAm ||7Hz ||(0, -0.018, 0.049)m || ''' References''' VSM/CTF documentation: PN900-0018, Revision 3.2, 23 November 2006 |
Line 31: | Line 45: |
* Right-click on the subject folder > '''Review raw file'''. <<BR>>Select the file format: "'''MEG/EEG: CTF (*.ds)'''" <<BR>>Select all the folders in: '''Sub01/MEEG'''. <<BR>><<BR>> {{attachment:phantom_review.gif||height="197",width="512"}} * The recordings were acquired on different days, the position of the phantom in the MEG helmet is not the same for the two runs. Left = noise (2015-06-03), Right = clean (2015-07-09)<<BR>><<BR>> {{attachment:phantom_registration.gif||height="189",width="417"}} |
* Right-click on the subject folder > '''Review raw file'''. <<BR>>Select the file format: "'''MEG/EEG: CTF (*.ds)'''" <<BR>>Select all the folders in: '''sample_phantom'''. <<BR>><<BR>> {{attachment:phantom_review.gif||height="197",width="512"}} * Each folder corresponds to one dataset: * '''emptyroom_20150709_01.ds''': Phantom inside the MEG helmet, but not plugged in * '''phantom_20uA_20150603_03.ds''': Phantom active, 23Hz, 20uA, [0,-1.8,4.9]cm * '''phantom_200uA_20150709_01.ds''': Phantom active, 7Hz, 200uA, [0,-1.8,4.9]cm * The recordings were acquired on different days, the position of the phantom in the MEG helmet is not the same for the two runs. Left = 20uA, Right = 200uA<<BR>><<BR>> {{attachment:phantom_registration.gif||height="189",width="417"}} |
Line 36: | Line 54: |
* Mark events: The sinusoidal signal is generated by the CTF hardware on channel HDAC006. While there are some automatic trigger events generated by the system that can be used for importing (event type HDAC006), we will have a more precise event average if the events are detected again offline. * Put the two phantom raw links in the Process1 box, click '''Run > Events > Detect events above threshold''': Event name=stim, Channel name=HDAC006, All file, Max thresh=0.5, units None, no filter, uncheck absolute value, check remove DC. * Then add the process '''Events > Convert to simple event''': Event names=stim, select Keep the middle of the events * Import the stim event: * Put the two phantom raw links in the Process1 box, click '''Run > Import recordings > Import MEG/EEG: Events''': Subject name=Phantom, Event names=stim, All file, Epoch time=[-70,70]ms, uncheck Create one condition, check the last three boxes * Add the process '''Pre-process > Remove DC offset''': All file, Sensor types=MEG, check overwrite * Add the process '''Average > Average files''': By trial group (folder average) |
|
Line 37: | Line 63: |
* Using the emptyroom recording * Right-click on the '''Link to raw file > Noise covariance > Compute from recordings''': Baseline=[0,998.3]ms, select Block by block, Full matrix * Right-click on the '''Noise covariance: MEG > Copy to other folders''' |
|
Line 38: | Line 68: |
* Compute head model: for each phantom recording, right-click on the respective channel files > Compute head model: MRI volume, MEG method=Overlapping spheres, Regular grid (isotropic)=2mm * Compute sources: right click the head model > Compute sources [2015] > Dipole modeling, NP performance index * GLSp into Process1, Sources > Dipole scanning: All file |
|
Line 39: | Line 73: |
<<TAG(Advanced)>> == Digitized head points == The head points collected with the Brainstorm digitizer are usually copied to the .ds folders and imported automatically when loading the recordings. We decided not to include them in this example because in the case of this current phantom, there is no ambiguity in the definition of the anatomical fiducials. As this refined registration with the .pos files is not part of the standard CTF workflow, not including it will make it easier to compare the workflow and results with other programs. For additional testing purposes, the .pos file for the phantom is included in the sample_phantom.zip package, but you have to add it manually to the recordings. Do not use these points to refine automatically the registration: the fitting algorithm may fail finding the best rotation around the Z axis because the phantom is completely spherical, and the registration is already close to perfection. * Right-click on one of the channel files (20uA or 200uA) > '''Digitized head points > Add points'''.<<BR>>Select the file format: "'''EEG: Polhemus'''"<<BR>>Select file: sample_phantom/'''phantom_20160222_01.pos'''<<BR>><<BR>><<BR>> {{attachment:phantom_pos.gif||height="165",width="608"}} * Right-click on the channel file > '''MRI registration > Check'''. <<BR>><<BR>> {{attachment:phantom_check.gif||height="215",width="543"}} |
|
Line 41: | Line 85: |
Available in the Brainstorm distribution: '''brainstorm3/toolbox/script/tutorial_phantom.m ''' | Available in the Brainstorm distribution: '''brainstorm3/toolbox/script/tutorial_phantom.mm''' |
MEG current phantom (CTF)
Authors: Francois Tadel, Elizabeth Bock
This tutorial explains how to use recordings from the CTF current phantom to test dipole fitting functions.
Contents
Phantom description
CTF Current Phantom
The dipole
The dipole itself is constructed of two gold spheres about 2 mm in diameter, separated by 9.0 mm center to center. The dipole moment can be calculated by the equation:
m=IL
where I is the dipole current and L is the length of the dipole (0.009 m). The location of the dipole is recorded relative to the center of the sphere (0,0,0)m, where X is positive toward the nasion, Y is positive toward the left ear and Z is positive toward the top of the head (see the CoordinateSystems tutorial for more details)
In this tutorial we used two dipole currents:
Current |
Moment |
Frequency |
Location |
20uA |
180nAm |
23Hz |
(0, -0.018, 0.049)m |
200uA |
1800nAm |
7Hz |
(0, -0.018, 0.049)m |
References
VSM/CTF documentation: PN900-0018, Revision 3.2, 23 November 2006
Download and installation
Requirements: You have already followed all the introduction tutorials and you have a working copy of Brainstorm installed on your computer.
Go to the Download page of this website, and download the file: sample_phantom.zip
- Unzip it in a folder that is not in any of the Brainstorm folders (program folder or database folder)
- Start Brainstorm (Matlab scripts or stand-alone version)
Select the menu File > Create new protocol. Name it "TutorialPhantom" and select the options:
"No, use individual anatomy",
"No, use one channel file per acquisition run (MEG)".
Generate anatomy
In the Matlab command window: type "generate_ctf_phantom".
This creates a new subject Phantom and generates the "anatomy" for this device: one volume and a few surfaces representing the geometry of the phantom.
You can display the MRI and surfaces as presented in the introduction tutorials.
Access the recordings
- Switch to the "functional data" view.
Right-click on the subject folder > Review raw file.
Select the file format: "MEG/EEG: CTF (*.ds)"
Select all the folders in: sample_phantom.
- Each folder corresponds to one dataset:
emptyroom_20150709_01.ds: Phantom inside the MEG helmet, but not plugged in
phantom_20uA_20150603_03.ds: Phantom active, 23Hz, 20uA, [0,-1.8,4.9]cm
phantom_200uA_20150709_01.ds: Phantom active, 7Hz, 200uA, [0,-1.8,4.9]cm
The recordings were acquired on different days, the position of the phantom in the MEG helmet is not the same for the two runs. Left = 20uA, Right = 200uA
For each of the three runs: right-click on "Link to raw file" > Switch epoched/continuous
Import recordings
- Mark events: The sinusoidal signal is generated by the CTF hardware on channel HDAC006. While there are some automatic trigger events generated by the system that can be used for importing (event type HDAC006), we will have a more precise event average if the events are detected again offline.
Put the two phantom raw links in the Process1 box, click Run > Events > Detect events above threshold: Event name=stim, Channel name=HDAC006, All file, Max thresh=0.5, units None, no filter, uncheck absolute value, check remove DC.
Then add the process Events > Convert to simple event: Event names=stim, select Keep the middle of the events
- Import the stim event:
Put the two phantom raw links in the Process1 box, click Run > Import recordings > Import MEG/EEG: Events: Subject name=Phantom, Event names=stim, All file, Epoch time=[-70,70]ms, uncheck Create one condition, check the last three boxes
Add the process Pre-process > Remove DC offset: All file, Sensor types=MEG, check overwrite
Add the process Average > Average files: By trial group (folder average)
Noise covariance
- Using the emptyroom recording
Right-click on the Link to raw file > Noise covariance > Compute from recordings: Baseline=[0,998.3]ms, select Block by block, Full matrix
Right-click on the Noise covariance: MEG > Copy to other folders
Source modeling
Compute head model: for each phantom recording, right-click on the respective channel files > Compute head model: MRI volume, MEG method=Overlapping spheres, Regular grid (isotropic)=2mm
Compute sources: right click the head model > Compute sources [2015] > Dipole modeling, NP performance index
GLSp into Process1, Sources > Dipole scanning: All file
Dipole fitting with FieldTrip
Digitized head points
The head points collected with the Brainstorm digitizer are usually copied to the .ds folders and imported automatically when loading the recordings. We decided not to include them in this example because in the case of this current phantom, there is no ambiguity in the definition of the anatomical fiducials. As this refined registration with the .pos files is not part of the standard CTF workflow, not including it will make it easier to compare the workflow and results with other programs.
For additional testing purposes, the .pos file for the phantom is included in the sample_phantom.zip package, but you have to add it manually to the recordings. Do not use these points to refine automatically the registration: the fitting algorithm may fail finding the best rotation around the Z axis because the phantom is completely spherical, and the registration is already close to perfection.
Right-click on one of the channel files (20uA or 200uA) > Digitized head points > Add points.
Select the file format: "EEG: Polhemus"
Select file: sample_phantom/phantom_20160222_01.pos
Right-click on the channel file > MRI registration > Check.
Scripting
Generate Matlab script
Available in the Brainstorm distribution: brainstorm3/toolbox/script/tutorial_phantom.mm