[FieldTrip] ft_componentanalysis component timecourse

Kanal Eliezer ekanal at cmu.edu
Fri Mar 4 19:55:43 CET 2011

Hello Jörn -

Thank you for your detailed response. I just spent a while discussing this with a coworker, and I think my confusion stems from how these components are represented in the data. It looks like the ft_componentanalysis function looks for components in the *sensor* space; i.e., which weighting of sensor configurations provide the components with the largest power. These configurations are visible with ft_topoplotIC, or alongside the trial data using ft_componentbrowser.

My question is now, though, what if my data (or noise) is not represented as a pattern in "channel space," but rather as a temporal pattern? Is it possible to use ft_componentanalysis to obtain temporal components as well?

I think this question makes more sense phrased mathematically. Currently, we seem to be doing the following (note comp = components for berevity):

[(time * trials) x comp] [comp x chan] = (time * trials) x chan,
             ||                ||                 ||
       comp.trials    X    comp.topo   =         data

where (time * trials) represents a concatenation of all timeseries for all trials for a given channel. Why can't this be rearranged to have 

[(chan * trials) x comp] [comp x time] = (chan * trials) x time,

where the components represent temporal features of the data?

(As a separate question, we could also find the components for a single trial at a time,
	[chan x comp] [comp x time] = chan x time,
and then examine the different components that arise across trials for similarities? At least for noise reduction, it's much more likely that a particularly strong within-trial signal will be a noise signal - e.g., heartbeat, eyeblink, muscle motion - than anything else.)

This has gotten long, so just to reiterate, my main questions is: can ft_componentanalysis be used to find temporal components as well as sensor ones? Thanks -


On Mar 4, 2011, at 9:31 AM, Jörn M. Horschig wrote:

> Dear Eliezer,
> There seems to be some confusion. component.topo is actually NxM, where N is the number of sensors and M the number of components you computed. M is equal to N if your channels are independent from each other, thus your data is full rank (this may not be the case if there e.g. is a gel-bridge or channels did not record a signal - please correct me if I am wrong).
> Anyway, as you pointed out, [quote] "component.trials" is numTrials x sensors x time [/quote], actually it is numTrials x components x time, which means you get one time course for each component per trial. components.topo contains the (un)mixing matrix, i.e. the weighting of the individual channels per component (that is probably what you mean, when you referred to 'components').
> So, dependent on what you want, these are the two field of interest. If you want to know your components, you have to use component.topo, if you want to look at the time courses, use component.trials.
> Hope this helps!
> Best regards,
> Jörn
> On 3/4/2011 3:10 PM, Kanal Eliezer wrote:
>> Hello  -
>> I'm trying to use the ft_componentanalysis function to remove a motion artifact in my dataset, but I'm confused as to how this function works. If called as
>> component = ft_componentanalysis(cfg, data),
>> the output seems to be in two fields, component.topo and component.trials. However, neither of these seems to contain the actual components. "component.topo" holds some an NxN matrix, where N is the number of sensors; I would expect the components to be "N x time". "component.trials" is numTrials x sensors x time, which seems to represent many more components than were actually calculated. How do I get the actual component timecourses?
>> Thanks,
>> Eliezer
>> _______________________________________________
>> fieldtrip mailing list
>> fieldtrip at donders.ru.nl
>> http://mailman.science.ru.nl/mailman/listinfo/fieldtrip
> -- 
> Jörn M. Horschig
> PhD Student
> Donders Institute for Brain, Cognition and Behaviour
> Centre for Cognitive Neuroimaging
> Radboud University Nijmegen
> P.O. Box 9101
> NL-6500 HB Nijmegen
> The Netherlands
> Contact:
> E-Mail: jm.horschig at donders.ru.nl
> Tel:    +31-(0)24-36-68493
> Web: http://www.ru.nl/fcdonders
> Visiting address:
> Trigon, room 2.30
> Kapitelweg 29
> NL-6525 EN Nijmegen
> The Netherlands
> _______________________________________________
> fieldtrip mailing list
> fieldtrip at donders.ru.nl
> http://mailman.science.ru.nl/mailman/listinfo/fieldtrip

More information about the fieldtrip mailing list