[Mne_analysis] Difference between mne_make_movie & python apply_inverse?

acgt2 at cam.ac.uk acgt2 at cam.ac.uk
Fri Jan 25 06:35:49 EST 2013
Search archives:

Hi Alex,

Thanks for your reply - 

I have re-run the python results, and adding in the baseline doesn't really
affect them (I'm doing single trial analysis so this is probably to be
expected), so there remains a difference between the outputs of the two sets
of code.

Do I understand from your (first) reply that, to the best of your knowledge,
the two bits of code I have below should do absolutely identical things
(assuming I've added the baseline to the python code)? I'm very pleased with
the python results, but a lot of people in my group are using code
similar/identical to my original and were under the impression there was no
difference between the commandline functions and their 'equivalent' python
versions, so I would like to be sure. If the reason the two outputs are
different is due to the fact that the underlying python functions are an
improvement on the equivalent commandline functions (even in some seemingly
trivial way, like using hanning windows instead of rectangular windows or
something), then this might explain the difference (and is a good reason for
us to move to mne_python!). I should be clear that, if there are
differences, I'm not asking for a breakdown of what they are! Just
confirmation (or otherwise) that the two pieces of code are not expected to
give out exactly the same results.

You asked about the data: it is EEG+MEG combined. 

Thanks for all your help with this, much appreciated.

Andy

-----Original Message-----
From: Alexandre Gramfort [mailto:gramfort at nmr.mgh.harvard.edu] 
Sent: 24 January 2013 20:57
To: acgt2 at cam.ac.uk
Cc: mne_analysis at nmr.mgh.harvard.edu
Subject: Re: [Mne_analysis] Difference between mne_make_movie & python
apply_inverse?

hi Andy,

my bad you're right "baseline=(-0.2, 0)" should do it. If you high-passed
the data is very possible that baseline correction is not mandatory, even
better without.

Best,
Alex

> I will try adding in the baseline now and report back - although if this
is
> the difference it would mean that the result is worse when one adds it in
> (which is possible, but would be a bit strange).
>
> You say I should use 'baseline=(-0.2, None)' to match my make_movie
command,
> but I thought that 'baseline=(-0.2, 0)' would be closer,  wouldn't 'None'
in
> the second parameter make the baseline from -0.2 to the end of my evoked
> file? (the code says 'end of the interval' but I'm not sure what that
refers
> to).
>
> Andy
>
>
>
> -----Original Message-----
> From: Alexandre Gramfort [mailto:gramfort at nmr.mgh.harvard.edu]
> Sent: 24 January 2013 12:44
> To: acgt2 at cam.ac.uk
> Cc: mne_analysis at nmr.mgh.harvard.edu
> Subject: Re: [Mne_analysis] Difference between mne_make_movie & python
> apply_inverse?
>
> hi Andy,
>
> the only obvious difference is the bmin/bmax.
>
> To match the mne_make_movie code you should do:
>
> evoked = Evoked('Participant_1_EvokedAuditory.fif', baseline=(-0.2, None))
>
> do you have MEG only? or EEG + MEG?
>
> HTH
> Alex
>
> On Thu, Jan 24, 2013 at 12:34 PM,  <acgt2 at cam.ac.uk> wrote:
>>
>>
>> Hi MNE-ers
>>
>>
>>
>> I have just switched from using the mne_make_movie command (version
>> 2.7.3) to compute-the-inverse-solution-and-morph-to-average, to using
>> the python 'apply inverse' operator and the 'morph_data_precomputed'
>> to do the same thing. I am pleased to find that the results are now
>> similar (as one would hope), but noticeably better (my experiments
>> involve auditory data, and results that were about a centimeter away
>> from Heschls Gyrus, had now moved to exactly on top of Heschls Gyrus).
>> Obviously I'm delighted, but I just wanted to check that the python
>> version should be expected to give better results - as I had assumed
>> the two results would be the same. Should  they be?
>>
>>
>>
>> As far as I can work out, both my two pieces of codes applied the same
>> parameters. (although smoothing and bmin/max don't make an appearance
>> in the python code, the python log says '5 smoothing iterations done',
>> so I assume this is the default)
>>
>>
>>
>> The command line version (split onto several lines for easier reading):
>>
>>
>>
>> mne_make_movie
>>
>> --inv /inverse-operators/3L-loose0.2-nodepth-reg-inv.fif
>>
>> --meas Participant_1_EvokedAuditory.fif
>>
>> --morph average
>>
>> --morphgrade
>>
>> --subject Participant_1
>>
>> --stc Participant_1_EvokedAuditory.stc
>>
>> --smooth 5
>>
>> --snr 1
>>
>> --bmin -200
>>
>> --bmax 0
>>
>> --picknormalcomp
>>
>>
>>
>>
>>
>> Python:
>>
>>
>>
>> snr = 1.0
>>
>> lambda2 = 1.0 / snr ** 2
>>
>>
>>
>> # Make inverse solution
>>
>>
>>
>> inverse_operator =
>> read_inverse_operator('/inverse-operators/3L-loose0.2-nodepth-reg-inv.
>> fif')
>>
>> evoked = Evoked('Participant_1_EvokedAuditory.fif')
>>
>> stc_from = apply_inverse(evoked, inverse_operator, lambda2, "MNE",
>> pick_normal=True)
>>
>>
>>
>> # First compute morph matices for participant
>>
>> subject_to = 'average'
>>
>> subject_from = 'Participant_1'
>>
>> vertices_to = mne.grade_to_vertices(subject_to, grade=4,
>> subjects_dir=subjects_dir)
>>
>> morph_mat = mne.compute_morph_matrix(subject_from, subject_to,
>> stc_from.vertno, vertices_to, subjects_dir=subjects_dir)
>>
>>
>>
>> # Morph to average
>>
>> stc_morphed = mne.morph_data_precomputed(subject_from, subject_to,
>> stc_from, vertices_to, morph_mat)
>>
>> stc_morphed.save('Participant_1_EvokedAuditory.stc')
>>
>>
>>
>>
>>
>> Thanks for any help,
>>
>>
>>
>> Andy
>>
>>
>> _______________________________________________
>> Mne_analysis mailing list
>> Mne_analysis at nmr.mgh.harvard.edu
>> https://mail.nmr.mgh.harvard.edu/mailman/listinfo/mne_analysis
>>
>>
>> The information in this e-mail is intended only for the person to whom
>> it is addressed. If you believe this e-mail was sent to you in error
>> and the e-mail contains patient information, please contact the
>> Partners Compliance HelpLine at http://www.partners.org/complianceline
>> . If the e-mail was sent to you in error but does not contain patient
>> information, please contact the sender and properly dispose of the
>> e-mail.
>>
>
> _______________________________________________
> Mne_analysis mailing list
> Mne_analysis at nmr.mgh.harvard.edu
> https://mail.nmr.mgh.harvard.edu/mailman/listinfo/mne_analysis




More information about the Mne_analysis mailing list