= 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. <> == Phantom description == '''CTF Current Phantom''' The current dipole phantom simulates brain sources of magnetic fields. The dipole consists of a current source and an adjacent current sink surrounded by a conducting saline solution in a spherical container. <
> {{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}} '''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 [[http://neuroimage.usc.edu/brainstorm3_register/download.php|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. <
><
> {{attachment:phantom_anat.gif||height="178",width="208"}} * You can display the MRI and surfaces as presented in the introduction tutorials. <
><
> {{attachment:phantom_mri.gif||height="314",width="281"}} {{attachment:phantom_surfaces.gif||height="314",width="341"}} == 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'''. <
><
> {{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<
><
> {{attachment:phantom_registration.gif||height="189",width="417"}} * For each of the three runs: right-click on "Link to raw file" > '''Switch epoched/continuous''' <
><
> {{attachment:phantom_continuous.gif}} == 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'''<
><
><
> {{attachment:phantom_pos.gif||height="165",width="608"}} * Right-click on the channel file > '''MRI registration > Check'''. <
><
> {{attachment:phantom_check.gif||height="215",width="543"}} == Scripting == ==== Generate Matlab script ==== Available in the Brainstorm distribution: '''brainstorm3/toolbox/script/tutorial_phantom.mm'''