[Mne_analysis] Time-frequency PSD with CWT (morlet wavelet) in a single trial

Arnaud Ferre arnaud.ferre.pro at gmail.com
Mon Apr 28 05:06:48 EDT 2014
Search archives:

Hi Denis,

Thank. In fact, you change the value of the number of cycles according to
fundamental frequency. It was my main problem (in fact, it's interesting to
see the problem with displaying some wavelets).
In consequence, I have correct results now, but it seems difficult to have
a really good resolution on my frequency band (1Hz to 130Hz)... If I
correctly understood, to improve this resolution, I must continue to find
better value for the number of cycles. But maybe that the CWT method has
his limits.

I focus on the adaptation of my particular data in "Raw object" and maybe
after, I will test with the S-transform.

Best,
Arnaud


2014-04-24 15:58 GMT+02:00 Denis-Alexander Engemann <
denis.engemann at gmail.com>:

> Hi Arnaud,
>
> here's your example with my edits
>
> https://gist.github.com/dengemann/11255522
>
> Best,
> Denis
>
>
>
> On Thu, Apr 24, 2014 at 10:52 AM, Arnaud Ferre <arnaud.ferre.pro at gmail.com
> > wrote:
>
>> Ok, so I'm not far!
>> In fact, I think that what I see as "residual band" is the correct thing,
>> but not correctly align with the correct frequency in the y-axis. The high
>> power band in the bottom could be an artefact in the edge.
>> So, I'm interested by your edits.
>> Thank
>>
>>
>> 2014-04-23 18:17 GMT+02:00 Denis A. Engemann <denis.engemann at gmail.com>:
>>
>> I was playing a bit with you example and got reasonable results with a
>>> clear 10 hz modulation using the  single trial tfr function.
>>> I can share my edits later with you. Btw. why don't we meet at Neurospin
>>> at some point for lunch or a coffee --- maybe things are easier to tackle
>>> then.
>>> For raw and epochs and evoked API take a look here:
>>>
>>>
>>> http://martinos.org/mne/stable/auto_examples/plot_from_raw_to_epochs_to_evoked.html
>>>
>>>
>>> Best,
>>> Denis
>>>
>>> On Apr 23, 2014, at 4:58 PM, Arnaud Ferre <arnaud.ferre.pro at gmail.com>
>>> wrote:
>>>
>>> Hi Denis,
>>>
>>> I have tested with single_trial_power() but I obtain exactly the same
>>> results that my use with _time_frequency(). Here is my code:
>>> https://gist.github.com/arnaudferre/11215335. I don’t understand what
>>> the problem is. With a sinusoid, I must have a band of high power around
>>> the fundamental frequency of the sinusoid, right?
>>>
>>>
>>> For the GUI, I don’t find documentation on the use with Windows. But
>>> ok, I must compile the sources with the makefile. It’s been a long time
>>> that I didn’t play with C! But I will try (I believe that I must download
>>> the software Make to begin). But in fact, I don’t know why I spoke of GUI,
>>> sorry. I think that I thought at a possibility to play with data directly
>>> with a GUI in the way that I want.
>>>
>>>
>>> I’m not sure to understand what you name “Raw object”. Is it the name of
>>> an existing object from MNE? But, with the knowledge of this object, I can
>>> write a function which return this directly. My problem is that I’m not an
>>> expert on the data and her format. But if it’s substantially a problem of
>>> parsing, I can step in the discussion.
>>>
>>>
>>> I read your link on the S-transform. Yes, it could be very interesting
>>> to test my data with this method. But I must already test older results
>>> from a study with Fourier Transform. In literature, the wavelet transform
>>> with morlet wavelet seems to be adequate to my project (Phase-Amplitude
>>> coupling then cross-frequency coupling). So, I want finish with this method
>>> to have my first result. But thank you, I keep it in a corner for later.
>>>
>>> Best,
>>> Arnaud
>>>
>>>
>>> 2014-04-23 11:22 GMT+02:00 Denis-Alexander Engemann <
>>> denis.engemann at gmail.com>:
>>>
>>>> Hi Arnaud,
>>>>
>>>>
>>>> On Wed, Apr 23, 2014 at 10:54 AM, Arnaud Ferre <
>>>> arnaud.ferre.pro at gmail.com> wrote:
>>>>
>>>>> Hi Denis,
>>>>> Thanks for the fast reply.
>>>>>
>>>>> Yes I can share my test. Here:
>>>>> https://gist.github.com/arnaudferre/11206945.
>>>>>
>>>>>
>>>> Thanks, will have a look later.
>>>>
>>>>
>>>>>  Ok, I will try to use single_trial_power() function now.
>>>>>
>>>>> For the GUI, unfortunately, I must develop a ‘biologists-friendly’
>>>>> software. In consequence (and with others constraints), I must develop on
>>>>> Windows and the GUI doesn’t work on Windows if I have correctly understood.
>>>>>
>>>>>
>>>> Which GUI? The MNE C GUI indeed compile on Windows. However,
>>>> `mne.gui.coregistration` in Python is supposed to work on Windows.
>>>>
>>>>
>>>>
>>>>>  For my file format, I have already develop my own functions to parse
>>>>> the original data (my goal: adapt raw signal to can use just the useful
>>>>> data). This format can be ‘CED Spike2 SMR files’ or an alternative in TXT
>>>>> from Local Field Potential acquisition. So, I store the data of a single
>>>>> trial in a dictionary, then in a pickle file (maybe not a good idea…).
>>>>>
>>>>
>>>> I agree. I would strongly encourage you to write a custom constructor
>>>> function that returns a Raw object from your data. We're happy assist you
>>>> with that Also it would be a great test case for new tools we're about to
>>>> develop that aim at making exactly this task easier. In fact I need to
>>>> write a couple of functions very soon that allow me to read in data stored
>>>> in Mat files. Sounds like that would follow the same logic.
>>>>
>>>>
>>>>> I do this certainly with my personal way. For these reasons, I tried
>>>>> to adapt the MNE-Python script to read my data. It seems not far yet! But I
>>>>> don’t know if I can really add idea in your conversation due to these
>>>>> specific data.
>>>>>
>>>>>
>>>> I think you can. See above. Also we're happy to add support to
>>>> additional EEG / electrophysiology formats.
>>>>
>>>> Anyway, it seems that MNE contains all the tools what we need here.
>>>>> It’s very encouraging yeah. But, I think we need time to know to use these
>>>>> tools.
>>>>>
>>>>> Arnaud
>>>>>
>>>>>
>>>> FYI something I'm working on at the moment that might also be of
>>>> interest to you:
>>>>
>>>> https://github.com/mne-tools/mne-python/pull/1233
>>>>
>>>> Best,
>>>> Denis
>>>>
>>>>
>>>>>
>>>>>
>>>>> 2014-04-19 12:34 GMT+02:00 Denis-Alexander Engemann <
>>>>> denis.engemann at gmail.com>:
>>>>>
>>>>> Hi Arno,
>>>>>>
>>>>>> let my reply inline,
>>>>>>
>>>>>> On Fri, Apr 18, 2014 at 6:55 PM, Arnaud Ferre <
>>>>>> arnaud.ferre.pro at gmail.com> wrote:
>>>>>>
>>>>>>> Hi all,
>>>>>>> I work on EEG data in behavioral field. I understand the basics of
>>>>>>> signal processing and I’m not so bad in Python. But for a beginner like me,
>>>>>>> MNE-Python is pretty huge. I was advised to use MNE knowing my constraints,
>>>>>>> but I’m starting to think that it’s maybe too evolved for a non-expert
>>>>>>> scientist in this field like me.
>>>>>>>
>>>>>>  I’m just trying to draw a time-frequency PSD from a single trial
>>>>>>> with a CWT (with morlet wavelets). I thought to have found what functions
>>>>>>> used, but in testing my script, I don’t obtain correct result.
>>>>>>>
>>>>>>
>>>>>>> In fact, I tested with a simple sinusoid function with a frequency
>>>>>>> of 10Hz on 1sec (1000points). I expected to see a lot of "red blobs"
>>>>>>> aligned on the 10Hz in y-axis but not. I have a continuous and very thin
>>>>>>> band around 1.5 Hz and a residual band around the 90Hz. I looked the
>>>>>>> wavelets and it seems fine. What is strange is that I see the correct
>>>>>>> number of blob, so I think it’s not so far of correct result. In first, I
>>>>>>> thought of a problem in adjusting my display, but it seems not.
>>>>>>>
>>>>>>
>>>>>> Could you share an example script, e.g. using
>>>>>> https://gist.github.com/
>>>>>> That would be very helpful.
>>>>>>
>>>>>>
>>>>>>>
>>>>>>> I use mainly the function _time_frequency(data, Ws), one of the
>>>>>>> functions in tfr.py in mne.time_frequency where data is a 2D-array
>>>>>>> containing only my signal in data[0].
>>>>>>>
>>>>>>> I read this link:
>>>>>>> http://martinos.org/mne/stable/auto_examples/stats/plot_cluster_1samp_test_time_frequency.html,
>>>>>>> but as I don’t use data with the standard format, it seemed to me
>>>>>>> complicated. Moreover, I think that _time_frequency(data, Ws) is just
>>>>>>> needed to do what I want. And yet, maybe that the specificities of the
>>>>>>> function single_trial_power in tfr.py is the solution…
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> In fact `single_trial_power` would be the way to go. (
>>>>>> http://martinos.org/mne/dev/generated/mne.time_frequency.single_trial_power.html#mne.time_frequency.single_trial_power
>>>>>> )
>>>>>> In general it's not recommended not use functions starting with
>>>>>> underscores unless you know exactly what you do. Things are much easier
>>>>>> once you use the top-level API. Is your file format that prevents you from
>>>>>> doing this? What kind of EEG  data do you use? We're currently working on
>>>>>> improving support for custom data:
>>>>>>
>>>>>> https://github.com/mne-tools/mne-python/issues/1229
>>>>>>
>>>>>> Please feel free to participate in the discussion on Github and tell
>>>>>> us more about your use case.
>>>>>>
>>>>>>
>>>>>>> Thanks in advance
>>>>>>> Arnaud
>>>>>>>
>>>>>>>
>>>>>> I hope we can encourage you to keep exploring the new terrain ;-)
>>>>>>
>>>>>> Denis
>>>>>>
>>>>>> _______________________________________________
>>>>>>> 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
>>>>>>
>>>>>>
>>>>>> 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
>>>>>
>>>>>
>>>>> 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
>>>>
>>>>
>>>> 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
>>>
>>>
>>> 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
>>>
>>>
>>> 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
>>
>>
>> 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
>
>
> 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.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.nmr.mgh.harvard.edu/pipermail/mne_analysis/attachments/20140428/406a51e4/attachment.html 


More information about the Mne_analysis mailing list