Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...


IMPORTANT: check no bad channel remains in tsss file. If any, go back to raw data, identify it and rerun maxfilter with bad channel specified.

Preprocessing with Fieldtrip


Before processing ICA for blink correction, main artefacts must be identified.
subject1, run1_trans_tsss : MAG and GRAD ok
subject1, run2_trans_tsss : 88.5-89 (jump mag + grad) 169-171 (muscle mag + grad)
These info can be retrieved in subject_1/MEG/stim01_trans_tsss.txt and subject_1/MEG/stim02_trans_tsss.txt
and must be updated in run_ica_all.m before running run_ica_all.m
Then you should select the ICA componenets to remove:
muse stim01_trans_tsss.fif ft/stim01_trans_tsss_ft_componentanalysis_runica_trial_1.mat to identify a single blink component : #2
muse stim02_trans_tsss.fif ft/stim02_trans_tsss_ft_componentanalysis_runica_trial_1.mat to identify two blink components : #3 and #4
and remove the identified components (script run_ica_all.m)
WARNING : the function ft_rejectcomponenet change the ordering of the channels !! ft_rejectcomponent is called inside remove_ica_components_base.m and followed by a call to the function reorder_channels.m
check each corrected run of each subject and note remaining artefats you want to remove for the average

Update (id of the conditions, run filenames, bad segments and ica components to remove for each subject) and run average_erp_all.m to create the ERP for the 2 conditions

To inspect visually the ERP :

Code Block
matlab
matlab

review_erp('subject_1','SOM_L')
review_erp('subject_2','SOM_L')
review_erp('subject_1','SOM_R')
review_erp('subject_2','SOM_R')

Preparation of the anatomy with Freesurfer/MNE

Code Block
bash
bash

source mne_process_subjects.sh
process_subject subject_1
process_subject subject_2
process_subject subject_3

mne_process_subjects.sh
http://martinos.org/mne/stable/manual/cookbook.html#setting-up-the-source-space
http://martinos.org/mne/stable/manual/cookbook.html#creating-the-bem-model-meshes
http://martinos.org/mne/stable/manual/cookbook.html#setting-up-the-head-surface-triangulation-files
http://martinos.org/mne/stable/manual/c_reference.html#mne-setup-forward-model

New Files :

Code Block
bash
bash

[lemarechal@pclx12 tuto]$ s=1
[lemarechal@pclx12 tuto]$ diff -r subject_${s}/IRM/subject_${s} subject_${s}/IRM/subject_${s}_SAVE/
Only in subject_1/IRM/subject_1/bem: subject_1-5120-bem.fif
Only in subject_1/IRM/subject_1/bem: subject_1-5120-bem-sol.fif
Only in subject_1/IRM/subject_1/bem: subject_1-head.fif
Only in subject_1/IRM/subject_1/bem: subject_1-inner_skull-5120.pnt
Only in subject_1/IRM/subject_1/bem: subject_1-inner_skull-5120.surf
Only in subject_1/IRM/subject_1/bem: subject_1-inner_skull.surf
Only in subject_1/IRM/subject_1/bem: subject_1-oct-6-lh.dip
Only in subject_1/IRM/subject_1/bem: subject_1-oct-6-lh.pnt
Only in subject_1/IRM/subject_1/bem: subject_1-oct-6-lh.w
Only in subject_1/IRM/subject_1/bem: subject_1-oct-6-rh.dip
Only in subject_1/IRM/subject_1/bem: subject_1-oct-6-rh.pnt
Only in subject_1/IRM/subject_1/bem: subject_1-oct-6-rh.w
Only in subject_1/IRM/subject_1/bem: subject_1-oct-6-src.fif
Only in subject_1/IRM/subject_1/bem: subject_1-outer_skin.surf
Only in subject_1/IRM/subject_1/bem: subject_1-outer_skull.surf
Only in subject_1/IRM/subject_1/bem: watershed
Only in subject_1/IRM/subject_1/scripts: mne_setup_forward_model.log
Only in subject_1/IRM/subject_1/scripts: mne_setup_source_space.log
Only in subject_1/IRM/subject_1/scripts: mne_watershed_bem.log

Prepare the source space for BS:

Code Block
bash
bash

# mne python
export PATH=/lena13/home_users/users/lemarechal/cluster_data/anaconda/bin:$PATH
source activate mne_python_dev
ipython create_cortex.py

Source Localization within BS

Export EP for BS : avg_FT_2_BS_all.m

Source Localization within BS

Code Block
matlab
matlab

addpath /lena13/home_users/users/lemarechal/cluster_data/brainstorm/brainstorm_141210/brainstorm3
brainstorm

Creation of new protocol tuto_FUSION
New subject: subject_1
Anatomy
Import MRI: subject_1/IRM/subject_1/mri/T1.mgz
Import surfaces:

  • subject_1/IRM/subject_1/bem/watershed/subject_1_outer_skin_surface
  • subject_1/IRM/subject_1/bem/watershed/subject_1_outer_skull_surface
  • subject_1/IRM/subject_1/bem/watershed/subject_1_inner_skull_surface
  • subject_1/IRM/subject_1/bem/subject_1-oct-6-src.surf and Set surface type -> Cortex

Functional data:
subject_1 -> Import channel file -> subject_1/MEG/stim01_trans_tsss.fif and Refine registration
subject_1 -> Intra-subject -> Compute head model

Code Block
matlab
matlab

s1_nc=load('subject_1/MEG/ft/noise_covariance_prestim.mat');
s1_nc=s1_nc.cov;

subject_1 -> Intra-subject -> Noise covariance -> Import from Matlab -> s1_nc

Code Block
matlab
matlab

s1_l=load('subject_1/MEG/ft/avg_SOM_L_FT_2_BS.mat');
s1_r=load('subject_1/MEG/ft/avg_SOM_R_FT_2_BS.mat');

tuto_FUSION(subjects) -> Add condition -> SOM_L
tuto_FUSION(subjects) -> Add condition -> SOM_R

subject_1 -> SOM_L -> File -> Import from Matlab -> s1_l
subject_1 -> SOM_R -> File -> Import from Matlab -> s1_r

Copy subject_1 -> Intra-subject -> Neuromag channels (325), Overlapping spheres and Noise covariance (Matlab) to subject_1 -> SOM_L and subject_1 -> SOM_R
subject_1 -> Compute sources

:tuto_fusion_bs.png?200|
and same processing for subject_2:
:tuto_fusion_bs_subject2.png?200|
and subject_3:
:tuto_fusion_bs_subject3.png?200|

Group analysis:
In Functional data (sorted by conditions), select SOM_L -> subject_1 -> Average -> MN: MEG ALL(Constr), SOM_L -> subject_2 -> Average -> MN: MEG ALL(Constr) and SOM_L -> subject_3 -> Average -> MN: MEG ALL(Constr) and drag-drop them in Files to process: Results
Click RUN -> Average -> Average files and select By trial group (grand average) and Average absolute values: mean(abs(error))
SOM_L -> Group analysis -> Avg(abs): Average (3 files) is created.
and repeat for the SOM_R condition

:tuto_fusion_bs_group.png?200|

Preprocessing with MNE-Python

Code Block
bash
bash

export PATH=/lena13/home_users/users/lemarechal/cluster_data/anaconda/bin:$PATH
source activate mne_python_0_10
ipython --pylab qt
Code Block
python
python

import mne_subjects
import mne_preprocess_run
import mne_average_subject

subject = mne_subjects.subject_1

mne_preprocess_run.mne_preprocess_run  ( subject.runs[0] )
mne_preprocess_run.mne_preprocess_run  ( subject.runs[1] )
mne_average_subject.mne_average_subject( subject )
mne_average_subject.mne_review_subject_erp( subject )

Once the 3 subjects have been averaged, create a report : report_evoked_potentials.html

Code Block
python
python

import mne_average_subject
# creates report_evoked_potentials.html
mne_average_subject.make_report()

Source Localization with MNE-Python

Coregistration:
http://martinos.org/mne/stable/generated/mne.gui.coregistration.html#mne-gui-coregistration\\
HOWTO:
http://fr.slideshare.net/mne-python/mnepython-coregistration\\

DON'T SPECIFY QT BACKEND !!! (maybe because Coregistration GUI works with vtk...)

Code Block
bash
bash

ipython
Code Block
python
python

import mne_localize
import mne_subjects
mne_localize.mne_coregister_subject(mne_subjects.subject_1)

In the "MRI Fiducials" panel:

  • select Lpa and click the fiducial in the 3D View
  • select Nasion and click the fiducial in the 3D View
  • select Rpa and click the fiducial in the 3D View

"Lock" the fiducials

In the "Head Shape to MRI Coregistration" panel, "Fit Head Shape"
"Save As..." the coregistration in default file : subject_1/MEG/subject_1-trans.fif

Create the forward solution:

Code Block
python
python

mne_localize.mne_make_forward_solution(mne_subjects.subject_1)

Compute the noise covariance:
http://martinos.org/mne/stable/faq.html#how-should-i-regularize-the-covariance-matrix

Code Block
python
python

mne_localize.mne_compute_noise_covariance(mne_subjects.subject_1)

Create inverse operator, compute source estimates and plot the results:

Code Block
python
python

mne_localize.mne_make_inverse_operator(mne_subjects.subject_1)
mne_localize.mne_source_estimate(mne_subjects.subject_1)

...