<div dir="ltr">Dear Melinna,<div><br></div><div><div style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">> I can understand the rank deficiency problem that caused by interpolating or components removing. However, I cann't understand if it is the rank deficiency that leads to the poor running speed. </div><div style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">If ICA tries to decompose 100 ICs out of rank==99 data, it could slow down the process, I think. I haven't tested it yet.</div><div style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">> Under the rank deficiency condition, My original command script is "EEG=pop_runica(EEG,'extended',1,'interupt','on')"; It runs very slow, in ages.</div><div style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">Infomax could slow down for several things. If you have huge outliers in your data, it can also slow down the process. Check your continuous data using trimOutlier() which is one of the plugins. Using 'extended', 1 slightly slows the process too.</div><div style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">> If I change it to,</div><div style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">ranknumbs=n;% the actual deficient rank <br></div><div style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><span style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">EEG=pop_runica(EEG,'extended',1,'interupt','on','pca',<span> </span><span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">ranknumbs</span>);</span></div><div style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">It works again, the processing speed become normal and acceptable.</div><div style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">That sounds good. However, check also your data stationarity (i.e., no terrible outliere etc.)</div><div style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">> Or if I change it to, </div><div style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial">ranknumbs=n; <span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">% the actual deficient rank </span></div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial"><span style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">EEG=pop_runica(EEG,'extended',1,'interupt','on','ncomps',<span> </span><span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">ranknumbs</span>);</span></div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial">It works sometimes.</div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial">Sounds like rank issue is certainly the part of the problem.</div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial">> By the way, this problem happens in the version eeglab 13.5.4. In the previous version I used (eeglab 10.2.5), it seldom occured this running problem. I noticed that there is minimal difference in the two versions of runica function, and I am not sure whether it is the reason that make the difference.</div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial">I don't think the version difference makes much of performance difference (as long as I know... I did not hear anything about the changes in infomax algorithm in SCCN, but I could be wrong.)</div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial">> So, to summarize the question here again: would the rank deficiency lead to severe running prolbem in ICA? if it is neccessary to put addition parameter in the input box to call the function properlly, such as('pca',or 'ncomps')?</div></div><div><br></div><div>To summarize my advice,</div><div><ol><li>Check if the data are full-ranked</li><li>Check with trimOutlier() whether your data have outlier (extremely large value or continuous zeros) in channel data.</li></ol><div>Makoto</div></div><br><br><div class="gmail_quote"><div dir="ltr">On Mon, Jul 16, 2018 at 5:50 PM 梅晓林 <<a href="mailto:melinna.sysu@gmail.com">melinna.sysu@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Dear Makoto,<div><br></div><div>It is an honor to have your reply! I read your wiki many times, the website is really detailed and helpful in instructing how to do ICA.</div><div><br></div><div>I can understand the rank deficiency problem that caused by interpolating or components removing. However, I cann't understand if it is the rank deficiency that leads to the poor running speed. </div><div><br></div><div>Under the rank deficiency condition, </div><div>My original command script is "EEG=pop_runica(EEG,'extended',1,'interupt','on')";</div><div>It runs very slow, in ages.<br></div><div><br></div><div>If I change it to,</div><div><br></div><div>ranknumbs=n;% the actual deficient rank </div><div><span style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">EEG=pop_runica(EEG,'extended',1,'interupt','on','pca',
<span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">ranknumbs</span>);</span></div><div>

It works again, the processing speed become normal and acceptable.</div><div><br></div><div>Or if I change it to,</div><div><br></div><div>

<div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial">ranknumbs=n; <span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">% the actual deficient rank </span>

</div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial"><span style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">EEG=pop_runica(EEG,'extended',1,'interupt','on','ncomps',<span> </span><span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">ranknumbs</span>);</span></div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial">It works sometimes.</div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial">By the way, this problem happens in the version eeglab 13.5.4. In the previous version I used (eeglab 10.2.5), it seldom occured this running problem. I noticed that there is minimal difference in the two versions of runica function, and I am not sure whether it is the reason that make the difference.</div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial">So, to summarize the question here again: would the rank deficiency lead to severe running prolbem in ICA? if it is neccessary to put addition parameter in the input box to call the function properlly, such as('pca',or 'ncomps')?</div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial">Thanks a lot!</div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial">Best,</div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial">Melinna</div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial"><div style="font-size:14px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">Department of Psychology</div><div style="font-size:14px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">Sun-Yat Sen University</div><div style="font-size:14px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">China</div><div class="m_-5271693984128110158gmail-yj6qo" style="font-size:14px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"></div><br class="m_-5271693984128110158gmail-Apple-interchange-newline">

<br></div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial"><br></div><div style="font-size:small;text-decoration-style:initial;text-decoration-color:initial"><br></div><br class="m_-5271693984128110158gmail-Apple-interchange-newline">

<br></div><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2018-07-17 4:58 GMT+08:00 Makoto Miyakoshi <span dir="ltr"><<a href="mailto:mmiyakoshi@ucsd.edu" target="_blank">mmiyakoshi@ucsd.edu</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Dear Melinna,<div><br></div><div>Very interesting point. I was also surprised that my wiki page did not explain it. I added an explanation to it. I believe it answers your questions. If not let me know.</div><div><a href="https://sccn.ucsd.edu/wiki/Makoto%27s_preprocessing_pipeline#Rejecting_ICs_to_improve_the_next_ICA.3F_Or_what_is_rank_and_linear_algebra_.2807.2F16.2F2018_updated.29" target="_blank">https://sccn.ucsd.edu/wiki/Makoto%27s_preprocessing_pipeline#Rejecting_ICs_to_improve_the_next_ICA.3F_Or_what_is_rank_and_linear_algebra_.2807.2F16.2F2018_updated.29</a><br></div><div><br></div><div>Makoto</div></div><br><div class="gmail_quote"><div><div class="m_-5271693984128110158h5"><div dir="ltr">On Sun, Jul 15, 2018 at 9:10 PM 梅晓林 <<a href="mailto:melinna.sysu@gmail.com" target="_blank">melinna.sysu@gmail.com</a>> wrote:<br></div></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="m_-5271693984128110158h5"><div dir="ltr">Dear all,<div><br></div><div>There are prolbems of running speed that I have met when I am doing ICA analysis, and I really need your help.</div><div><br></div><div>The data I have is in 66 channels (64 EEG channels and 2 EOG channels). The preprocess procedure here only involves filtering (high pass, 0.1HZ), rejecting bad epochs manually, and interpolating 

<span style="font-size:small;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">bad channel<span>s (method, 'sphereral')</span></span>. </div><div><br></div><div>I found that:</div><div>1, if the bad channels have been removed and interpolated, then the following ICA on this data is rather time costing, it would take 1~2 hours to start the learning rate, and 7 hours later, it only went 50 steps.</div><div><br></div><div>However, if I choose reference the data before ICA or doing ICA without those interpolated channels, the speed of running ICA become normal, and the data of one subject can be processed in one hour.</div><div><br></div><div>2, if I have removed one component (usually the eye blick), after that, when I am trying to re-run ICA, the probelm comes again: the starting learning rate is low, and it takes ages to run the data.</div><div><br></div><div>The weired thing is that the problem happened here exists in most of the subjects (30of40), but for others, it is okay to re-run without any change.</div><div><br></div><div>I do have tried your other suggestions that set the 'icatype' to 'pca' in the second run if some components have been removed, or define the 'ncomps' as the number of the decreased dimension. The former change ('pca') can re-speed the ICA but the latter won't (define ncomps).</div><div><br></div><div>I become more and more confused. As the problem mentioned above, my question here is:</div><div><br></div><div>1, Can I run ICA if some channels are correlated to others? if there are correlated channels, the ICA running seems doesn't work.</div><div><br></div><div>2, After removing one component in the first run, is it possible to ru-run ICA without any additional parameter setting? I can understand that the number of  data demension has been reduced after substracting components, but I don't understand why it can work in some subjects and not work for all.</div><div><br></div><div>Your reply is really of great value for this work. Looking forward to it.</div><div>Thanks a lot.</div><div><br></div><div>Best,</div><div><br></div><div>Melinna </div><div>Department of Psychology</div><div>Sun-Yat Sen University</div><div>China</div><div><br></div><div><br></div><div><br></div><div>  </div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div> </div></div></div></div>
_______________________________________________<br>
Eeglablist page: <a href="http://sccn.ucsd.edu/eeglab/eeglabmail.html" rel="noreferrer" target="_blank">http://sccn.ucsd.edu/eeglab/eeglabmail.html</a><br>
To unsubscribe, send an empty email to <a href="mailto:eeglablist-unsubscribe@sccn.ucsd.edu" target="_blank">eeglablist-unsubscribe@sccn.ucsd.edu</a><br>
For digest mode, send an email with the subject "set digest mime" to <a href="mailto:eeglablist-request@sccn.ucsd.edu" target="_blank">eeglablist-request@sccn.ucsd.edu</a></blockquote></div><span class="m_-5271693984128110158HOEnZb"><font color="#888888"><br clear="all"><div><br></div>-- <br><div dir="ltr" class="m_-5271693984128110158m_-7632834571920686846gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Makoto Miyakoshi<br>Swartz Center for Computational Neuroscience<br>Institute for Neural Computation, University of California San Diego<br></div></div>
</font></span></blockquote></div><br></div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Makoto Miyakoshi<br>Swartz Center for Computational Neuroscience<br>Institute for Neural Computation, University of California San Diego<br></div></div></div></div>