Diff for "AnalyzingData/MNE_ComputeEstimates" - Meg Wiki
location: Diff for "AnalyzingData/MNE_ComputeEstimates"
Differences between revisions 17 and 33 (spanning 16 versions)
Revision 17 as of 2010-07-16 13:25:47
Size: 3378
Editor: YaaraErez
Comment:
Revision 33 as of 2013-03-08 10:02:25
Size: 6583
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
This script applies the inverse operator to MEG data and outputs the current estimates. The current estimates are morphed to the average brain (see below), for grand-averaging (see further below). The results (*.stc-files) can be viewed in mne_analyze, and read into Matlab using mne_read_stc_file. You can get infos on your stc-files (e.g. maximum value, relevant for scaling your display) using mne_process_stc. This script applies the inverse operator to MEG data and outputs the current estimates. The current estimates are morphed to the [[#averagebrain|average brain]], for [[#grandaverage|grand-averaging]]. The results (*.stc-files) can be [[#visualisation|visualised in mne_analyze]], and [[#stcreadwritesubtract|read into Matlab]] using mne_read_stc_file. You can get infos on your stc-files (e.g. maximum value, relevant for scaling your display) using mne_analyze.
Line 6: Line 6:
The main ingredients are  The main ingredients are
Line 10: Line 10:
* the MEG data (fiff-files) * the averaged MEG data (fiff-files)
Line 14: Line 14:
The parameters below are reasonable choices for standard analyses. However, these Wiki pages are not supposed to substitute the [http://www.nmr.mgh.harvard.edu/meg/manuals/MNE-manual-2.6.pdf MNE manual], [http://imaging.mrc-cbu.cam.ac.uk/meg/MEGpapers reading papers], and [http://imaging.mrc-cbu.cam.ac.uk/imaging/ImagersInterestGroup discussions] with more experienced researchers. There are some [[#exampleestimates|examples of current estimates]] at the bottom.
Line 16: Line 16:
The parameters below are reasonable choices for standard analyses. However, these Wiki pages are not supposed to substitute the [[http://www.nmr.mgh.harvard.edu/meg/manuals/MNE-manual-2.6.pdf|MNE manual]], [[http://imaging.mrc-cbu.cam.ac.uk/meg/MEGpapers|reading papers]], and [[ImagersInterestGroup|discussions]] with more experienced researchers.
Line 20: Line 21:
Line 22: Line 22:
Line 24: Line 23:
Line 26: Line 24:
Line 28: Line 25:
Line 31: Line 27:

Line 39: Line 33:
Line 46: Line 39:

# MEG subdirectories (your directory structure may differ)      
# MEG subdirectories (your directory structure may differ)
Line 53: Line 45:
Line 55: Line 46:
Line 58: Line 48:
Line 61: Line 50:

Line 68: Line 55:
   for c in `seq 0 ${lastcond}`
 do
 
  
# Current Estimates
  mne_make_movie \
  --subject {subjects[m]} \
  
--inv ${datapath}/${subj_pre[m]}/${subj_dir[m]}/YourName_1L-MEG-loose0.2-inv.fif \
  --meas ${datapath}/${subj_pre[m]}/${subj_dir[m]}/${conds[c]}.fif \
  --morph average \

        
for c in `seq 0 ${lastcond}`
        do

                
# Current Estimates
                mne_make_movie \
                --subject ${subjects[m]} \
                
--inv ${datapath}/${subj_pre[m]}/${subj_dir[m]}/YourName_1L-MEG-loose0.2-inv.fif \
                --meas ${datapath}/${subj_pre[m]}/${subj_dir[m]}/${conds[c]}.fif \
                --morph average \
Line 79: Line 66:
  --bmin -100 \                 --bmin -100 \
Line 81: Line 68:
  --stc ${outpath}/${subj_pre[m]}_${conds[c]}
     done # conditions
                --stc ${outpath}/${subj_pre[m]}_${conds[c]}
Line 85: Line 70:
        done # conditions
Line 87: Line 73:
The --morph option produces source estimates morphed to the average brain (necessary for grand-averaging). If you don't use it, source estimates will be computed on individual cortical surfaces.

Some degree of smoothing (--smooth) is necessary for display.

The baseline definition (--bmin/bmax) can be omitted if input data are already appropriately baseline-corrected. Note that this option will not baseline-correct the source estimates.

A few CBSU users have experienced an issue with mne_make_movie. It sometimes misses some output that it is supposed to produce. It is important for you to check whether the number of output stc files matches what you expect. Re-running the script again usually solves the problem.

<<Anchor(averagebrain)>>
Line 89: Line 84:
Line 93: Line 87:
Line 96: Line 89:
"Subject1, Subject2..." etc. are the MRI sub-directories created by Freesurfer. The paths to these sub-directories have to be specified in the environment variables, e.g. "setenv SUBJECTS_DIR /MyMriDirectory/".

Use "--force" to overwrite an existing average brain, "--out" to use an output name other than the default "average".
Line 98: Line 94:
<<Anchor(visualisation)>>

= Visualising STC-files =

You can load STC files into mne_analyze and visualise them interactively (File -> Manage Overlays -> Load stc). You also need to load the brain surface used to compute the source estimates (e.g. the average across subjects, if this was used to morph the single subject results).

You can also produce JPG files or movies using mne_make_movie. Here is an example on how to do it:

{{{

mne_make_movie \
    --subject average \
    --smooth 5 \
    --stcin infile.stc \
    --tmin 0 \
    --tmax 400 \
    --tstep 10 \
    --pickrange \
    --noscalebar \
    --nocomments \
    --jpg outfile.jpg \
    --fthresh 0 --fmid 0.0666 --fmax 0.1
}}}

<<Anchor(grandaverage)>>
Line 99: Line 121:
For grand-averaging, STC-files should have been created using the --morph option in mne_make_movie (see above). You can then average them using the command  For grand-averaging, STC-files should have been created using the --morph option in mne_make_movie (see above). You can then average them using the command
Line 103: Line 126:
Line 110: Line 132:
Line 113: Line 134:
Line 119: Line 139:
Line 124: Line 143:
<<Anchor(stcreadwritesubtract)>>

== Reading, Writing, Subtracting STC-files ==
This simple Matlab script demonstrates how to read and manipulate STC-files.

{{{
data1 = mne_read_stc_file( STCfile1 ); % read STC-file 1
data2 = mne_read_stc_file( STCfile2 ); % read STC-file 2
data3 = data2; % data3 will contain subtracted data, but keep other information from STC-file 2
data3.data = data2.data - data1.data; % subtract STC-file 1 from STC-file 2
mne_write_stc_file( STCfile_out, data3 ); % Write subtracted data to STC-file
}}}


<<Anchor(exampleestimates)>>

== Examples of Current Estimates ==

{{attachment:MNE_Estimates.jpg}}

These figures show MNE current estimates for a visually evoked brain response around 170 ms for a single participant. The left presents the unsigned (intensity), the right the signed version of the estimate. Note that the intensity version ignores the cirection of current flow on the cortical surface. In the signed version, the "speckled" pattern of positive and negative values most likely results from the fact that blurring of sources results in reversed directions of current flow on opposing walls of sulci.

Compute the Source Estimates (mne_make_movie)

Applying the Inverse Operator

This script applies the inverse operator to MEG data and outputs the current estimates. The current estimates are morphed to the average brain, for grand-averaging. The results (*.stc-files) can be visualised in mne_analyze, and read into Matlab using mne_read_stc_file. You can get infos on your stc-files (e.g. maximum value, relevant for scaling your display) using mne_analyze.

The main ingredients are

* the inverse operator

* the averaged MEG data (fiff-files)

* the average cortical surface (see below)

There are some examples of current estimates at the bottom.

The parameters below are reasonable choices for standard analyses. However, these Wiki pages are not supposed to substitute the MNE manual, reading papers, and discussions with more experienced researchers.

#
## Your variables
datapath='<myMEGdatapath>'    # root directory for your MEG data
MRIpath='/myMRIdirectory/'    # where your MRI subdirectories are
outpath='/myoutpath'  # path for output files
#condition names as used in file names to which inverse operator shall be applied
conds=('cond1' 'cond2' 'cond3')
# subjects names used for MRI data
subjects=(\
        'Subject1' \
        'Subject2' \
        'Subject3' \
)
# MEG IDs (your directory structure may differ)
subj_pre=(\
        'meg10_0001' \
        'meg10_0002' \
        'meg10_0003' \
        )
# MEG subdirectories (your directory structure may differ)
subj_dir=(\
         '100001' \
         '100002' \
         '100003' \
        )
## Processing:
nsubjects=${#subjects[*]}
lastsubj=`expr $nsubjects - 1`
nconds=${#conds[*]}
lastcond=`expr $nconds - 1`
for m in `seq 0 ${lastsubj}`
do
  echo " "
  echo " Computing movies  for SUBJECT  ${subjects[m]}"
  echo " "

        for c in `seq 0 ${lastcond}`
        do

                # Current Estimates
                mne_make_movie \
                --subject ${subjects[m]} \
                --inv ${datapath}/${subj_pre[m]}/${subj_dir[m]}/YourName_1L-MEG-loose0.2-inv.fif \
                --meas ${datapath}/${subj_pre[m]}/${subj_dir[m]}/${conds[c]}.fif \
                --morph average \
                --smooth 5 \
                --bmin -100 \
                --bmax 0 \
                --stc ${outpath}/${subj_pre[m]}_${conds[c]}

        done # conditions
done # subjects

The --morph option produces source estimates morphed to the average brain (necessary for grand-averaging). If you don't use it, source estimates will be computed on individual cortical surfaces.

Some degree of smoothing (--smooth) is necessary for display.

The baseline definition (--bmin/bmax) can be omitted if input data are already appropriately baseline-corrected. Note that this option will not baseline-correct the source estimates.

A few CBSU users have experienced an issue with mne_make_movie. It sometimes misses some output that it is supposed to produce. It is important for you to check whether the number of output stc files matches what you expect. Re-running the script again usually solves the problem.

Computing the Average Cortical Surface

#
make_average_subject --subjects   Subject1 Subject2 Subject3

"Subject1, Subject2..." etc. are the MRI sub-directories created by Freesurfer. The paths to these sub-directories have to be specified in the environment variables, e.g. "setenv SUBJECTS_DIR /MyMriDirectory/".

Use "--force" to overwrite an existing average brain, "--out" to use an output name other than the default "average".

Visualising STC-files

You can load STC files into mne_analyze and visualise them interactively (File -> Manage Overlays -> Load stc). You also need to load the brain surface used to compute the source estimates (e.g. the average across subjects, if this was used to morph the single subject results).

You can also produce JPG files or movies using mne_make_movie. Here is an example on how to do it:

mne_make_movie \
    --subject average \
    --smooth 5 \
    --stcin infile.stc \
    --tmin 0 \
    --tmax 400 \
    --tstep 10 \
    --pickrange \
    --noscalebar \
    --nocomments \
    --jpg outfile.jpg \
    --fthresh 0  --fmid 0.0666  --fmax 0.1

Grand-averaging STC-files

For grand-averaging, STC-files should have been created using the --morph option in mne_make_movie (see above). You can then average them using the command

mne_average_estimates --desc <descriptionfile.txt>

where descriptionfile.txt is of the form

stc /yourpath/filetoaverage1.stc
stc /yourpath/filetoaverage2.stc
stc /yourpath/filetoaverage3.stc
deststc <youroutputfile>

You can create description files for every average you want to compute, and execute them in one script

#
mne_average_estimates --desc <descriptionfile1.txt>
mne_average_estimates --desc <descriptionfile2.txt>
mne_average_estimates --desc <descriptionfile3.txt>

Reading, Writing, Subtracting STC-files

This simple Matlab script demonstrates how to read and manipulate STC-files.

data1 = mne_read_stc_file( STCfile1 );  % read STC-file 1
data2 = mne_read_stc_file( STCfile2 );  % read STC-file 2
data3 = data2;  % data3 will contain subtracted data, but keep other information from STC-file 2
data3.data = data2.data - data1.data; % subtract STC-file 1 from STC-file 2
mne_write_stc_file( STCfile_out, data3 );  % Write subtracted data to STC-file

Examples of Current Estimates

MNE_Estimates.jpg

These figures show MNE current estimates for a visually evoked brain response around 170 ms for a single participant. The left presents the unsigned (intensity), the right the signed version of the estimate. Note that the intensity version ignores the cirection of current flow on the cortical surface. In the signed version, the "speckled" pattern of positive and negative values most likely results from the fact that blurring of sources results in reversed directions of current flow on opposing walls of sulci.

CbuMeg: AnalyzingData/MNE_ComputeEstimates (last edited 2013-03-08 10:02:25 by localhost)