<font size="2"><font face="verdana,sans-serif">Dear Jason,</font></font><div><font size="2"><font face="verdana,sans-serif"><br></font></font></div><div><font size="2"><font face="verdana,sans-serif">thank you for all the useful hints provided along with your response.</font></font></div>
<div><font size="2"><font face="verdana,sans-serif"><br></font></font></div><div><font size="2"><font face="verdana,sans-serif">I see your points, but I am still not sure on how performing ICA on arbitrarily sampled subgroups of trials can be methodologically proof. I try with a simple example: let's suppose we have to run an ICA for artifact rejection in one experiment with 5 conditions with 100 trials each, and for some reasons the physical features of the stimuli in condition 3 dramatically increase the probability of eyeblinks in those trials where those stimuli are present. Let's consider the extreme situation in which all the blinks would be concentrated only in 100% of trials belonging to the experimental condition 3. </font></font><span class="Apple-style-span" style="font-family: verdana, sans-serif; ">Then we run, according to what reported above, 5 independent ICAs, each one on 100 trials. </span></div>
<div><span class="Apple-style-span" style="font-family: verdana, sans-serif; "><br></span></div><div><span class="Apple-style-span" style="font-family: verdana, sans-serif; ">Now, if we do not care about the proportion of trials per condition in each of the 5 ICAs, we can end up with two prototypical situations:</span></div>
<div><span class="Apple-style-span" style="font-family: verdana, sans-serif; "><br></span></div><div><span class="Apple-style-span" style="font-family: verdana, sans-serif; ">- one where we will have the 100 trials of the critical condition 3 all in one ICA (and thus we will be likely to observe a big "blink component" accounting for a lot of variance),</span></div>
<div><span class="Apple-style-span" style="font-family: verdana, sans-serif; "><br></span></div><div><span class="Apple-style-span" style="font-family: verdana, sans-serif; ">- and one where we will have 20 trials of condition 3 (and so with blinks) in each one of the 5 ICAs, and we will therefore likely to observe 5 blink components explaining approximately 1/5 of the big blink component above, but this time in each one 5 ICAs.</span></div>
<div><span class="Apple-style-span" style="font-family: verdana, sans-serif; "><br></span></div><div><font class="Apple-style-span" face="verdana, sans-serif">The point is: as far as the sum of the accounted variances by each of the 5 components is not identical to the one accounted by the single big component, we know that we introduce a bias in performing solution 1 rather than solution 2. Perhaps that does not imply that this difference reflects the amount of neural activity we erroneously removed from one condition rather than from another, but as far as our subgroups are not balanced condition-wise, it means that we will introduce some artifactual condition-related variability in our data.</font></div>
<div><font class="Apple-style-span" face="verdana, sans-serif"><br></font></div><div><font class="Apple-style-span" face="verdana, sans-serif">In line, the question is: should we concern about the proportion of trials per experimental condition introduced in each of the "subgroup ICAs", whenever we would need to decompose the ICA as a consequence of processing constraints? </font></div>
<div><font class="Apple-style-span" face="verdana, sans-serif"><br></font></div><div><font class="Apple-style-span" face="verdana, sans-serif">And, if we do, to what extent our final backprojected data will eventually be equal to the output of a big global ICA?</font></div>
<div><font class="Apple-style-span" face="verdana, sans-serif"><br></font></div><div><font class="Apple-style-span" face="verdana, sans-serif">Third and last question: </font></div><div><span class="Apple-style-span" style="font-family: verdana, sans-serif; ">I see you write:</span></div>
<div><font class="Apple-style-span" face="verdana, sans-serif"><br></font></div><div><font class="Apple-style-span" face="verdana, sans-serif"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 15px; border-collapse: collapse; "><i>It would also be possible to modify the ICA algorithm to swap out data from the disk, but as I said, I doubt using all the data would improve the results over using as much data as you can load into memory. </i></span></font></div>
<div><font class="Apple-style-span" face="verdana, sans-serif"><br></font></div><div><font class="Apple-style-span" face="verdana, sans-serif">Is there a function (or in alternative a relatively easy way) to run runica like that, or to run it in parallel on multiple machines - cores in a Cluster-GPU like manner, maybe making use of the parallel processing toolbox?</font></div>
<div><font class="Apple-style-span" face="verdana, sans-serif"><br></font></div><div><font class="Apple-style-span" face="verdana, sans-serif">Hope I did not abuse of your helpfulness with all those kind of issues.</font></div>
<div><font class="Apple-style-span" face="verdana, sans-serif"><br></font></div><div><font class="Apple-style-span" face="verdana, sans-serif">Cheers,</font></div><div><font class="Apple-style-span" face="verdana, sans-serif"><br>
</font></div><div><font class="Apple-style-span" face="verdana, sans-serif">Mahesh</font></div><div><font class="Apple-style-span" face="verdana, sans-serif"><br></font></div><div><font class="Apple-style-span" face="verdana, sans-serif">       </font></div>
<div><font size="2"><font face="verdana,sans-serif"><br></font></font></div><div><div style="text-align:right"><span class="Apple-style-span" style="font-family: verdana, sans-serif; font-size: x-small; border-collapse: collapse; color: rgb(153, 153, 153); ">Mahesh M. Casiraghi</span></div>
<div style="text-align:right"><span style="border-collapse: collapse; "><div style="color: rgb(0, 0, 0); font-family: arial, sans-serif; font-size: 13px; "><font color="#999999"><span style="font-size:x-small"><font face="verdana, sans-serif">PhD candidate - Cognitive Sciences</font></span></font></div>
<div style="color: rgb(0, 0, 0); font-family: arial, sans-serif; font-size: 13px; "><font color="#999999"><span style="font-size:x-small"><font face="verdana, sans-serif">Roberto Dell'Acqua Lab, University of Padova</font></span></font></div>
<div style="color: rgb(0, 0, 0); font-family: arial, sans-serif; font-size: 13px; "><font size="2"><font face="verdana,sans-serif"><font color="#C0C0C0"><font color="#999999"><span style="font-size:x-small">Pierre Jolicoeur Lab, Univesité de Montréal</span></font></font></font></font></div>
<div style="color: rgb(0, 0, 0); font-family: arial, sans-serif; font-size: 13px; "><font size="2"><font face="verdana,sans-serif"><font color="#C0C0C0"><font color="#999999"><span style="font-size:x-small"><a href="mailto:mahesh.casiraghi@umontreal.ca" target="_blank">mahesh.casiraghi@umontreal.ca</a></span></font></font></font></font></div>
</span></div><div style="text-align:right"><font color="#999999" face="verdana, sans-serif"><span style="font-size:x-small"><br></span></font></div><div style="text-align:right"><span style="font-family:verdana, sans-serif;font-size:x-small;color:rgb(153, 153, 153)">I have the conviction that when Physiology will be far enough advanced, the poet, the philosopher, and the physiologist will all understand each other.</span></div>
<font color="#999999"><div style="text-align:right"><span style="font-family:verdana, sans-serif;font-size:x-small">Claude Bernard</span></div></font><br>
<br><br><div class="gmail_quote">On Mon, Dec 13, 2010 at 4:36 PM, Jason Palmer <span dir="ltr"><<a href="mailto:japalmer29@gmail.com">japalmer29@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div lang="EN-US" link="blue" vlink="purple"><div><p class="MsoNormal"><span style="font-size:11.0pt;color:black">Hi Mahesh,</span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:black"> </span></p><p class="MsoNormal">
<span style="font-size:11.0pt;color:black">Merging the results by simple averaging probably won’t work since the components are returned in random order (even after the variance sorting, components won’t necessarily have the same index.) Using matcorr() or a similar component matching algorithm before averaging is one possibility.</span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:black"> </span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:black">But it seems to me that averaging will not improve anything in your situation. As long as you have enough data in each data block that ICA runs on, then the components you get should be well determined, allowing you to remove the artifacts separately, and use the separate unmixing matrices to decompose the different subsets.</span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:black"> </span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:black">I’m not sure what kind of analysis you’re doing, but for many purposes, you want to identify brain components of interest and then analyze the activations and possibly localize them. In this case you only need to match up the components of interest in the separate decompositions, e.g. a frontal midline ERN component, and collect all the trials with the activations produced by the respective ICA unmixing matrices.</span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:black"> </span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:black">Again, as long as you use as much data as you can load (possibly overlapping data blocks), the decompositions should be good by themselves. Comparing the components of interest across decompositions will give you an idea of how stable the components you’re looking at really are in your dataset. You might also look into characterizing the variance of the component maps in a bootstrapping sense, using a large number of resampled blocks.</span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:black"> </span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:black">It would also be possible to modify the ICA algorithm to swap out data from the disk, but as I said, I doubt using all the data would improve the results over using as much data as you can load into memory. To me it makes more sense to verify the stability of the components you’re interested in, and use the separate ICA unmixing/sphere matrices on their corresponding data blocks, and separately back-project the components of interest, and then collect all the trials for the final analysis.</span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:black"> </span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:black">Hope this is useful.</span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:black"> </span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:black">Best,</span></p><p class="MsoNormal"><span style="font-size:11.0pt;color:black">Jason</span></p><div class="im"><p class="MsoNormal"><span style="font-size:11.0pt;color:black"> </span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;color:black"> </span></p><p class="MsoNormal"><b><span style="font-size:10.0pt">From:</span></b><span style="font-size:10.0pt"> <a href="mailto:eeglablist-bounces@sccn.ucsd.edu" target="_blank">eeglablist-bounces@sccn.ucsd.edu</a> [mailto:<a href="mailto:eeglablist-bounces@sccn.ucsd.edu" target="_blank">eeglablist-bounces@sccn.ucsd.edu</a>] <b>On Behalf Of </b>Mahesh Casiraghi<br>
<b>Sent:</b> Saturday, December 11, 2010 6:34 PM<br><b>To:</b> <a href="mailto:eeglablist@sccn.ucsd.edu" target="_blank">eeglablist@sccn.ucsd.edu</a><br><b>Subject:</b> [Eeglablist] How to correctly break down AR runica() in case of huge sets.</span></p>
<p class="MsoNormal"> </p></div><p class="MsoNormal"><span style="font-size:10.0pt">Dear more experienced EEGLabbers and ICA experts,</span></p><div><div></div><div class="h5"><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal">
 </p></div><div><p class="MsoNormal"><span style="font-size:10.0pt">supposing one has to work with quite large datsets (several channels, very high sample rate, long record lengths) and would therefore be unable to load in memory several gigs of data altogether:</span></p>
</div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal"><span style="font-size:10.0pt">A) Is it methodologically problematic to run independent ICAs on subgroups of trials and then separately perform AR (blinks and scalp detected ECG components rejection) on each of them?</span></p>
</div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal"><span style="font-size:10.0pt">B) Assuming it would not be</span><span><span>, as I tend indeed to think, </span></span><span style="font-size:10.0pt">a so recommendable way, is there a methodologically proof way to combine all the obtained - and presumably heterogeneous - sphere, weights and weights(-1) matrices in 3 single Sph, W, and W(-1) </span><span><span>matrices and then use these new to backproject after component rejection?</span></span></p>
</div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal"><span><span>C) More precisely, let's suppose we have 700 trials and we run 7 independent ICAs each time on 100 of them. </span></span></p></div><div>
<p class="MsoNormal"> </p></div><div><p class="MsoNormal"><span><span>a) I would proceed in picking-up separately (subjective criteria, adjust, faster or whatever one may prefer) the to-be-rejected components, independently from each subgroup of trials.  </span></span></p>
</div><div><p class="MsoNormal"><span><span>b) I would then remove subgroup by subgroup the respective w(-1) columns and EEG.icaact rows according to the discarded components.</span></span></p></div><div><p class="MsoNormal">
<span><span>c) I would merge the obtained 7 EEG.icasphere, the 7 EEG.icaweights, and the 7 EEG.icawinv, in 3 single matrices of equal dimensions, averaging through nanmean (given the fact we are likely to pick up a different amount of components from each of the trial subgroups and we would need consistent matrix dimensions).  </span></span></p>
</div><div><p class="MsoNormal"><span><span>d) I would finally independently backproject subgroup by subgroup using the same averaged EEG.icawinv and EEG.icasphere and each time the EEG.icaact of the current subgroup of trials.</span></span></p>
</div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal"><span><span>According to my first speculations, following a->b->c->d we should come up with something analogous to the output of a big global ICA.</span></span></p>
</div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal"><span><span>Am I wrong?</span></span></p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal"><span><span>D) Did someone among you already try to run something like that and is perhaps willing to provide some feedbacks-impressions?</span></span></p>
</div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal"><span><span>Cheers,</span></span></p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal"><span><span>Mahesh</span></span></p>
</div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal"><span><span> </span></span></p></div><div><p class="MsoNormal"><span><span>  </span></span></p></div><div><p class="MsoNormal"> </p></div><div><p class="MsoNormal" align="right" style="text-align:right">
<span><span style="font-size:10.0pt;color:#999999">Mahesh M. Casiraghi</span></span></p><div><p class="MsoNormal" align="right" style="text-align:right"><span style="font-size:10.0pt;color:#999999">PhD candidate - Cognitive Sciences</span><span style="font-size:10.0pt;color:black"></span></p>
</div><div><p class="MsoNormal" align="right" style="text-align:right"><span style="font-size:10.0pt;color:#999999">Roberto Dell'Acqua Lab, University of Padova</span><span style="font-size:10.0pt;color:black"></span></p>
</div><div><p class="MsoNormal" align="right" style="text-align:right"><span style="font-size:10.0pt;color:#999999">Pierre Jolicoeur Lab, Univesité de Montréal</span><span style="font-size:10.0pt;color:black"></span></p></div>
<div><p class="MsoNormal" align="right" style="text-align:right"><span style="font-size:10.0pt;color:#999999"><a href="mailto:mahesh.casiraghi@umontreal.ca" target="_blank">mahesh.casiraghi@umontreal.ca</a></span><span style="font-size:10.0pt;color:black"></span></p>
</div><p class="MsoNormal" align="right" style="text-align:right"> </p><p class="MsoNormal" align="right" style="text-align:right"><span style="font-size:10.0pt;color:#999999">I have the conviction that when Physiology will be far enough advanced, the poet, the philosopher, and the physiologist will all understand each other.</span></p>
<p class="MsoNormal" align="right" style="text-align:right"><span style="font-size:10.0pt;color:#999999">Claude Bernard</span><span style="color:#999999"></span></p><p class="MsoNormal"> </p></div></div></div></div></div>
</blockquote></div><br></div>