[FieldTrip] data segmenting and frequency analysis (Tzvetan Popov)

Richard Bethlehem rb643 at medschl.cam.ac.uk
Thu May 21 14:02:53 CEST 2015


Hi Tzvetan and others,

Thanks for all the wonderful feedback and links to resources! I did manage to sort out the redefine trials issue now to split the trial up in smaller segments. As for faulty channels, I found the option to repair channels (which I would prefer to keep the matrix sizes the same). When looking at the data this does seem to adequately resolve the one faulty channel I had with the specific subject I was looking at. For some reason however this seems to cause some errors in later on displaying the ICA topoplots (the ICA itself still seems to run fine, but when inspecting the components I only see the timecourses and not the topoplots)? An error in matlabs surf function in using complex numbers is all I get back?

As for the frequencies of interest: I would ideally like to use wavelet decomposition rather than fourier transformations to obtain a specific power. I assume I can set this in cfg_foi and then run ft_freqanalysis on the different bands, but at what point would you collapse or average the windows together?

As for the connectivity analysis, the reason I would like to use wpli is precisely to get around the volume conduction issue and the fact that I only have the elecrode level metrics. It does seem however as though something is missing in my pipeline before that as the cross and power spectra contains a lot of NaN's? I am also not sure about when to average over the wavelet windows or frequency 'timepoints' (going from the 3D wpli spectrum to a vector or a 2 matrix)? Related to that last point was my question about the adjacency matrix, the connectivity analysis output just list all the wpl indices per channel pair, but I would rather have the 2D matrix (with nothing trilled off) that lists all channels against all channels?

Just to sum up my remaining questions:
1. Why would channelrepair result in issues with ICA's topoplot and how to fix that (it would be good to see if the noise from the one faulty channel is really gone)?
2. How to obtain a metric per frequency band (using wavelets)/or alternatively at what point in the analysis should the wavelet decomposition be averaged?
3. How to obtain a 64*64 matrix (all channels*all channels) of the wpl indices?

For reference, my entire (under construction) code is here: https://github.com/rb643/fieldtrip_restingState/blob/master/restingstate.m 

Cheers,

Richard
________________________________________
From: fieldtrip-bounces at science.ru.nl [fieldtrip-bounces at science.ru.nl] on behalf of fieldtrip-request at science.ru.nl [fieldtrip-request at science.ru.nl]
Sent: 21 May 2015 11:00
To: fieldtrip at science.ru.nl
Subject: fieldtrip Digest, Vol 54, Issue 18

Send fieldtrip mailing list submissions to
        fieldtrip at science.ru.nl

To subscribe or unsubscribe via the World Wide Web, visit
        http://mailman.science.ru.nl/mailman/listinfo/fieldtrip
or, via email, send a message with subject or body 'help' to
        fieldtrip-request at science.ru.nl

You can reach the person managing the list at
        fieldtrip-owner at science.ru.nl

When replying, please edit your Subject line so it is more specific
than "Re: Contents of fieldtrip digest..."


Today's Topics:

   1. data segmenting and frequency analysis (Richard Bethlehem)
   2. Re: Tiggers added manually (Stephen Politzer-Ahles)
   3. Reading/importing .daq files (Melissa Smith)
   4. Re: Reading/importing .daq files (Max Cantor)
   5. Re: data segmenting and frequency analysis (Tzvetan Popov)
   6. Re: cluster-based permutation test on WPLI (Zsolt Turi)


----------------------------------------------------------------------

Message: 1
Date: Wed, 20 May 2015 10:34:32 +0000
From: Richard Bethlehem <rb643 at medschl.cam.ac.uk>
To: "fieldtrip at science.ru.nl" <fieldtrip at science.ru.nl>
Subject: [FieldTrip] data segmenting and frequency analysis
Message-ID:
        <3188FAB8621D294696F13E80A7BBC97EFF4759E5 at me-mbx3.medschl.cam.ac.uk>
Content-Type: text/plain; charset="iso-8859-1"

Dear Fieldtrippers,

Being somewhat new to using fieldtrip I was hoping someone would be able to help me sort out some parcellation and data-handling issues. In short: I'm working with resting state EEG data, recorded with a 64-channel BioSemi system and would like to do some graph based analyses on this. The data is 4 minutes (eyes-open, eyes-closed 1-minute epochs) and ideally I would like to split these two 1 minute eyes-closed parts into 30*4s epochs. After this I would like to run a wavelet decomposition for the frequency analysis and obtain the adjacency matrix based on weighted phase lag index.

Thus, my questions are:
1. How to handle parcellating data? Shoud I use a)"toi" in ft_freqanalysis as a sliding window or b) split at trial definition?
If a: how does freqanalysis handle multiple trials? I currently use this:
    cfg.method = 'wavelet';
    cfg.output = 'powandcsd';
    cfg.channel = 1:64;
    cfg.foilim = [0 70];
    cfg.toi = [5 10 15 20 25 30 35 40 45 50 55]
    [freq_data] = ft_freqanalysis(cfg, data_iccleaned) % run over ICA cleaned data

Which does give me 11 fragments, but I am not sure how the two 1-minute epochs/trials are handled in this or if they are adequately handles in the subsequent ft_connectivityanalysis?

If b: how can you split trial in different epochs of a certain length and how does ft_freqanalysis handle multiple trials?

2. How to deal with faulty or noisy channels? If there are some noisy channels, do you remove these? Removing channels does not seem ideal as it would mean having to deal with uneven graphs (graphs with different numbers of nodes). Leaving them in might bias the wpli estimation?

3. Can you set the interval length for ft_freqanalysis (and if so, how)? It currently takes 0.02Hz increments, is that standard?

4. Is it necessary to tell ft_connectivityanalysis to use mutliple trials/segments? I currently get the message saying it needs more than 1 trial, even though ft_freqanalysis returns an x*x*11 matrix (and I'm assuming the 11 are the windows set for the wavelet decomposition). I am just using this:

    cfg.method = 'wpli';
    wpli_data = ft_connectivityanalysis(cfg, freq_data);

5. Is it possible to automatically obtain the wpli adjacency matrix per frequency band?
    Is there a fieldtrip function to average over a range of frequencies (and/or timepoints/trils) from the ft_connectivity analysis output?
    Is there a fieldtrip function to convert individal wpli's back to a complete channel*channel matrix as opposed to the 1D vector is seems to return (that lists each individual wpli)?

Any help would be much appreciated!

Cheers,

Richard
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20150520/4ce4064d/attachment-0001.html>

------------------------------

Message: 2
Date: Wed, 20 May 2015 06:44:22 -0400
From: Stephen Politzer-Ahles <spa268 at nyu.edu>
To: fieldtrip at science.ru.nl
Subject: Re: [FieldTrip] Tiggers added manually
Message-ID:
        <CAJT2k_-wqW7A9ddO_WVz=5DL2rJLQV3AFbbChk9SffEnPyJmDQ at mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

Hi Emilie,

You could add new rows to the trial definition matrix (cfg.trl) to add new
triggers. See http://www.fieldtriptoolbox.org/reference/ft_definetrial for
information on how cfg.trl is organized. There  might be more efficient
built-in ways to do it, but this is how I add triggers at least.

Best,
Steve


> ------------------------------
>
> Message: 3
> Date: Wed, 20 May 2015 08:20:57 +0000
> From: "Caspar, Emilie" <e.caspar at ucl.ac.uk>
> To: "fieldtrip at science.ru.nl" <fieldtrip at science.ru.nl>
> Subject: [FieldTrip] Tiggers added manually
> Message-ID: <C560DBF5-8559-44C1-BCB6-C15CFFD33B09 at live.ucl.ac.uk>
> Content-Type: text/plain; charset="us-ascii"
>
> Dear Fieldtrippers,
>
> I have continuous EEG data and I have to add manually new triggers at
some point in the signal. I have checked on the website but did not find
anything relevant. I was thus wondering whether or not it was possible to
add manually triggers with Fieldtrip and if yes (and if there are several
ways to do it), what is the most convenient/efficient method.
>
> Many thanks in advance!
>
> Emilie
>
>
> ------------------------------
>
> _______________________________________________
> fieldtrip mailing list
> fieldtrip at donders.ru.nl
> http://mailman.science.ru.nl/mailman/listinfo/fieldtrip
>
> End of fieldtrip Digest, Vol 54, Issue 17
> *****************************************
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20150520/c1235e14/attachment-0001.html>

------------------------------

Message: 3
Date: Wed, 20 May 2015 11:34:33 -0700
From: Melissa Smith <melissa.ralston at gmail.com>
To: fieldtrip at science.ru.nl
Subject: [FieldTrip] Reading/importing .daq files
Message-ID:
        <CAG6vbS8A=d0jB59MWPA5o9gY2XzcptwGjr-c-11WGy1rrkyCrQ at mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

Hi Fieldtrip community,

My name is Melissa and I have a very basic question as I am just starting
to use the Fieldtrip toolbox.

I am analyzing EEG data recorded with g.tec amplifiers. I am recording 64
channels. So, each trial has four .daq data files (one for each amplifier
containing 16 channels).

What is the best way to import and read this data for analysis using
Fieldtrip?

Thanks in advance for your time!

Best,
Melissa
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20150520/9799bfd2/attachment-0001.html>

------------------------------

Message: 4
Date: Wed, 20 May 2015 14:51:02 -0400
From: Max Cantor <mcantor at umich.edu>
To: FieldTrip discussion list <fieldtrip at science.ru.nl>
Subject: Re: [FieldTrip] Reading/importing .daq files
Message-ID:
        <CAFTjRaXDSfz6_FWeORuoG4u+nC3Akd8fYrhd_74qzwFeCtNXxw at mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

I don't know about g.tec amps or .daq files specifically, but one way I can
think to do it would be to load them each in separately and then use
ft_appenddata. Coincidentally, I'm actually heading to Seattle tomorrow to
visit a friend of mine at University of Washington! Great place :)

Best,
Max

On Wed, May 20, 2015 at 2:34 PM, Melissa Smith <melissa.ralston at gmail.com>
wrote:

> Hi Fieldtrip community,
>
> My name is Melissa and I have a very basic question as I am just starting
> to use the Fieldtrip toolbox.
>
> I am analyzing EEG data recorded with g.tec amplifiers. I am recording 64
> channels. So, each trial has four .daq data files (one for each amplifier
> containing 16 channels).
>
> What is the best way to import and read this data for analysis using
> Fieldtrip?
>
> Thanks in advance for your time!
>
> Best,
> Melissa
>
> _______________________________________________
> fieldtrip mailing list
> fieldtrip at donders.ru.nl
> http://mailman.science.ru.nl/mailman/listinfo/fieldtrip
>



--
Max Cantor
Lab Manager
Computational Neurolinguistics Lab
University of Michigan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20150520/1f9a9d37/attachment-0001.html>

------------------------------

Message: 5
Date: Wed, 20 May 2015 21:23:26 +0200
From: Tzvetan Popov <tzvetan.popov at uni-konstanz.de>
To: FieldTrip discussion list <fieldtrip at science.ru.nl>
Subject: Re: [FieldTrip] data segmenting and frequency analysis
Message-ID: <D2E6E89A-E6A4-4CB3-8CD5-268983EB1BA7 at uni-konstanz.de>
Content-Type: text/plain; charset="windows-1252"

Dear Richard,


> Dear Fieldtrippers,
>
> Being somewhat new to using fieldtrip I was hoping someone would be able to help me sort out some parcellation and data-handling issues. In short: I'm working with resting state EEG data, recorded with a 64-channel BioSemi system and would like to do some graph based analyses on this.
you might check this page that illustrates a way to do this. It is in source space yet in your case you?ll stay on the electrode level.

http://www.fieldtriptoolbox.org/tutorial/networkanalysis

Keep in mind that sensor/electrode level connectivity metrics, regardless of the metric, come with some difficulties that are not trivial to solve. Maybe is good if you consult this lecture first:

https://www.youtube.com/watch?v=ZBwh0Vm4fh4
> The data is 4 minutes (eyes-open, eyes-closed 1-minute epochs) and ideally I would like to split these two 1 minute eyes-closed parts into 30*4s epochs.
cfg = [];
cfg.dataset              = ?yourdataset';
cfg.trialdef.triallength = 4;
cfg.trialdef.ntrials     = Inf;
cfg = ft_definetrial(cfg);
cfg.channel     = {?EEG'};
data = ft_preprocessing(cfg);
If you generate several of these data structures corresponding to your 1-minute epochs you can do data = ft_appenddata([],data1,data2). This way you combine them in one data structure.


> After this I would like to run a wavelet decomposition for the frequency analysis and obtain the adjacency matrix based on weighted phase lag index.
>
> Thus, my questions are:
> 1. How to handle parcellating data? Shoud I use a)"toi" in ft_freqanalysis as a sliding window or b) split at trial definition?
> If a: how does freqanalysis handle multiple trials? I currently use this:
>     cfg.method = 'wavelet';
>     cfg.output = 'powandcsd';
>     cfg.channel = 1:64;
>     cfg.foilim = [0 70];
>     cfg.toi = [5 10 15 20 25 30 35 40 45 50 55]
>     [freq_data] = ft_freqanalysis(cfg, data_iccleaned) % run over ICA cleaned data
>
> Which does give me 11 fragments, but I am not sure how the two 1-minute epochs/trials are handled in this or if they are adequately handles in the subsequent ft_connectivityanalysis?

Then for a given frequency in this example 8-12 Hz you could do this:
cfg            = [];
cfg.method     = 'mtmfft';
cfg.output     = 'fourier';
cfg.keeptrials = 'yes';
cfg.tapsmofrq  = 2;
cfg.foi        = 10;
freq_data = ft_freqanalysis(cfg, data);
and subsequently use ft_connectivityanalysis with the metric of your choice.
>
> If b: how can you split trial in different epochs of a certain length and how does ft_freqanalysis handle multiple trials?

there are two functions you might want to check: ft_redefinetrial and ft_selectdata
>
> 2. How to deal with faulty or noisy channels? If there are some noisy channels, do you remove these? Removing channels does not seem ideal as it would mean having to deal with uneven graphs (graphs with different numbers of nodes). Leaving them in might bias the wpli estimation?
I would definitely remove the channel but there are certainly other opinions on that.
>
> 3. Can you set the interval length for ft_freqanalysis (and if so, how)? It currently takes 0.02Hz increments, is that standard?
You can-  cfg.foi = [0:1:100] gives you 0 to 100 Hz in steps of 1 Hz. Whether or not your frequency resolution is 1 Hz is different issue. You might check out this lecture too:
https://www.youtube.com/watch?v=vwPpSglPJTE
>
> 4. Is it necessary to tell ft_connectivityanalysis to use mutliple trials/segments? I currently get the message saying it needs more than 1 trial, even though ft_freqanalysis returns an x*x*11 matrix (and I'm assuming the 11 are the windows set for the wavelet decomposition). I am just using this:
>
>     cfg.method = 'wpli';
>     wpli_data = ft_connectivityanalysis(cfg, freq_data);
see above
>
> 5. Is it possible to automatically obtain the wpli adjacency matrix per frequency band?
no, you have to decide what value corresponds to a connection = 1 and what not =0
>     Is there a fieldtrip function to average over a range of frequencies (and/or timepoints/trils) from the ft_connectivity analysis output?
ft_selectdata with cfg.avgoverfreq = ?yes'
>     Is there a fieldtrip function to convert individal wpli's back to a complete channel*channel matrix as opposed to the 1D vector is seems to return (that lists each individual wpli)?
I don?t get that one.

Good luck
tzvetan

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20150520/4a10c29b/attachment-0001.html>

------------------------------

Message: 6
Date: Wed, 20 May 2015 22:24:38 +0200
From: Zsolt Turi <zsoltturi at gmail.com>
To: FieldTrip discussion list <fieldtrip at science.ru.nl>
Subject: Re: [FieldTrip] cluster-based permutation test on WPLI
Message-ID:
        <CAO_Ky_mM0Q+AzKkFjjXh6A23qCkKCGSqs1a6rOwVjD15-xsM3w at mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

Dear Chris,

thanks again for your comment.

Cheers,
Zsolt

2015-05-19 12:47 GMT+02:00 Cristiano Micheli <michelic72 at gmail.com>:

>
> Dear Zsolt,
> please find an answer below.
> Regards
> Cris
>
> On Mon, May 18, 2015 at 11:33 AM, Zsolt Turi <zsoltturi at gmail.com> wrote:
>
>> Hi Tzvetan and Chris,
>>
>> thanks for your emails.
>> Removing channelcmb and adding a new one called label solved my problem.
>>
>> Chris:
>> I'ld like to compare the WPLI difference of two conditions, congruent and
>> incongruent ones by using a within-subjects design (so not a between trials
>> comparison).
>> From your email I may infer  that after running wpli, I should still have
>> my trials. However, I do not have repetitions (trials) anymore in the
>> output structure. Am I doing an illegitimate step during wPLI calculation
>> or miss one specification?
>>
>
> You did it correctly.
> After running the wPLI metric ( I suggest the unbiased version of it, use
> the  'wpli_debiased' method in ft_connectivityanalysis) you are left with
> no trials. This is because the trials dimension (and tapers) are used to
> estimate the phase lag index. If I left that implied in the previous mail,
> I did not communicate it very well. What I meant to say is to be careful in
> the contrast of two conditions, because the subtraction (or ratio, or
> else...) will generate fake effects (or false positives) if the trials in
> condition 1 and condition 2 BEFORE wPLI calculation are different.
>
> I hope this helps
> Cris
>
>
>> cfg                = [];
>> cfg.method     = 'wpli';
>> dataWPLI       = ft_connectivityanalysis(cfg,TFRhann);
>>
>>
>>  labelcmb: {9x2 cell}
>>      dimord: 'chan_freq_time'
>> wplispctrm: [9x43x16 double]
>>           freq: [1x43 double]
>>           time: [-0.5000 -0.4004 -0.3008 -0.1992 -0.0996 0 0.0996 0.1992
>> 0.3008 0.4004 0.5000 0.5996 0.6992 0.8008 0.9004 1]
>>            cfg: [1x1 struct]
>>
>> Thanks for your help!
>>
>> Best,
>> Zsolt
>>
>>
>>
>>
>> 2015-05-18 8:18 GMT+02:00 Tzvetan Popov <tzvetan.popov at uni-konstanz.de>:
>>
>>> Hi Zsolt,
>>>
>>>
>>> Hi Tzvetan,
>>>
>>> thanks for your suggestions.
>>> I am still stucked at the ft_freqstatistics, as I keep on receiving the
>>> following error and would be glad if you could make a comment on this as
>>> well:
>>>
>>> ####
>>> Reference to non-existent field 'label'.
>>>
>>> Error in ft_freqgrandaverage (line 123)
>>>         cfg.channel = ft_channelselection(cfg.channel,
>>> varargin{i}.label);
>>> ###
>>>
>>> Is it because I have labelcomb in the WPLI data?
>>>
>>> yes
>>>
>>>
>>> labelcmb: {9x2 cell}
>>>         dimord: 'chan_freq_time'
>>>     wplispctrm: [9x7x16 double]
>>>           freq: [3 4 5 6 7 8 9]
>>>           time: [-0.5000 -0.4004 -0.3008 -0.1992 -0.0996 0 0.0996 0.1992
>>> 0.3008 0.4004 0.5000 0.5996 0.6992 0.8008 0.9004 1]
>>>            cfg: [1x1 struct]
>>>
>>> And this is my specification (I couldn't fine the option cfg.channelcmb
>>> for ft_freqgrandaverage in the reference documentation):
>>>
>>> again try to give cell arrays as input to ft_freqanalysis. I?m still
>>> considering the case you mentioned in your initial e-mail, one channel etc.
>>> e.g. cfg.channel = ?FCzF3?;
>>>        cfg.parameter = ?wplispctrm?;
>>>        cfg.neighbours = []; % this will force clustering over time and
>>> freq dimension
>>>
>>> best
>>> tzvetan
>>>
>>>
>>> cfg                          = [];
>>> cfg.keepindividual    = 'yes';
>>> cfg.cfg.foilim           = 'all';
>>> cfg.toilim                = 'all';
>>> cfg.channel            = 'all';
>>> cfg.parameter         = 'wplispctrm';
>>>
>>> Thanks again for the answer in advance!
>>>
>>> Best,
>>> Zsolt
>>>
>>> ps.I can provide other parts of my code but I don't want to make this
>>> mail too long :
>>>
>>>
>>>
>>> 2015-05-13 19:14 GMT+02:00 Tzvetan Popov <tzvetan.popov at uni-konstanz.de>
>>> :
>>>
>>>> Hi Zsolt,
>>>>
>>>>
>>>> Dear all,
>>>>
>>>>
>>>> I would like to perform a cluster-based permutation test on weighted
>>>> phase lag index values by using a within-subjects experimental design. I
>>>> have two conditions (congruent and incongruent one) and my goal is to
>>>> compute WPLI between certain channel combinations (FCz and F3 for instance)
>>>> and see the WPLI change let?s say in 3-9 Hz and -100 to 500 ms between the
>>>> two conditions.
>>>>
>>>>
>>>> I experienced some difficulties after the point when I calculated the
>>>> WPLI data for each participant. To perform the above-mentioned comparison,
>>>> shall I use ?ft_freqstatistics?for the cluster-based permutation test?
>>>>
>>>> You could. Stick with the tutorial you are currently working with. You
>>>> should organize your data into cell arrays and call ft_freqstatistics like
>>>> this: stat = ft_freqstatistics(cfg, congruent{:}, incongruent{:}).
>>>> Furthermore you should specify cfg.parameter = ?wplispctrm? otherwise
>>>> ft_freqstatistics will default to ?powspctrm? which will be not present in
>>>> the data.
>>>> good luck
>>>> tzvetan
>>>>
>>>>
>>>> _______________________________________________
>>>> fieldtrip mailing list
>>>> fieldtrip at donders.ru.nl
>>>> http://mailman.science.ru.nl/mailman/listinfo/fieldtrip
>>>>
>>>
>>>
>>>
>>> --
>>> ************************************************************
>>> Ph.D.
>>> Department of Clinical Neurophysiology
>>> Georg-August University, G?ttingen
>>> Robert-Koch-Str. 40
>>> 37075 Goettingen
>>> Web: http://www.uni-goettingen.de/en/222525.html
>>> ************************************************************
>>>  _______________________________________________
>>> fieldtrip mailing list
>>> fieldtrip at donders.ru.nl
>>> http://mailman.science.ru.nl/mailman/listinfo/fieldtrip
>>>
>>>
>>>
>>> _______________________________________________
>>> fieldtrip mailing list
>>> fieldtrip at donders.ru.nl
>>> http://mailman.science.ru.nl/mailman/listinfo/fieldtrip
>>>
>>
>>
>>
>> --
>> ************************************************************
>> Ph.D.
>> Department of Clinical Neurophysiology
>> Georg-August University, G?ttingen
>> Robert-Koch-Str. 40
>> 37075 Goettingen
>> Web: http://www.uni-goettingen.de/en/222525.html
>> ************************************************************
>>
>> _______________________________________________
>> fieldtrip mailing list
>> fieldtrip at donders.ru.nl
>> http://mailman.science.ru.nl/mailman/listinfo/fieldtrip
>>
>
>
> _______________________________________________
> fieldtrip mailing list
> fieldtrip at donders.ru.nl
> http://mailman.science.ru.nl/mailman/listinfo/fieldtrip
>



--
************************************************************
Ph.D.
Department of Clinical Neurophysiology
Georg-August University, G?ttingen
Robert-Koch-Str. 40
37075 Goettingen
Web: http://www.uni-goettingen.de/en/222525.html
************************************************************
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20150520/0af4b30b/attachment-0001.html>

------------------------------

_______________________________________________
fieldtrip mailing list
fieldtrip at donders.ru.nl
http://mailman.science.ru.nl/mailman/listinfo/fieldtrip

End of fieldtrip Digest, Vol 54, Issue 18
*****************************************




More information about the fieldtrip mailing list