<font><font><font><font><font><p class="MsoNormal" style="color: rgb(255, 255, 255); font-family: verdana, sans-serif; font-size: small; "><span><span style="font-size:10.5pt;font-family:Constantia;color:#5F5F5F">Dear Sirs,</span></span></p>
<p class="MsoNormal" style="color: rgb(255, 255, 255); font-family: verdana, sans-serif; font-size: small; "><span><span style="font-size:10.5pt;font-family:Constantia;color:#5F5F5F"><br></span></span></p><p class="MsoNormal" style="color: rgb(255, 255, 255); font-family: verdana, sans-serif; font-size: small; ">
<span><span style="font-size:10.5pt;font-family:Constantia;color:#5F5F5F">I found the same issue to be a bit troubling, in as much as the opposite problem arises too: a Kurtosis threshold 5 can sometimes reject channels which are in fact quite acceptable once averaged in ERPs, at least according to my research purposes. I think this has to do with the nature of the Kurtosis measure of dispersion's probability. </span></span><span class="Apple-style-span" style="color: rgb(95, 95, 95); font-family: Constantia; font-size: 14px; ">That is the reason why I ended up using a joint approach Kurtosis threshold 15 and ERPLAB absolute threshold and step-like AR functions performed on each of the neural channels. </span><span class="Apple-style-span" style="color: rgb(95, 95, 95); font-family: Constantia; font-size: 14px; ">I place a marker when channels are exceeding a defined threshold in microVs, and I then consider the number of those markers along with the Kurtosis value, for each channel. You will need to play around with these thresholds too, according to your purposes and to your data, but this works fine for me.</span></p>
<p class="MsoNormal" style="color: rgb(255, 255, 255); font-family: verdana, sans-serif; font-size: small; "><span><span style="font-size:10.5pt;font-family:Constantia;color:#5F5F5F"><br></span></span></p><p class="MsoNormal" style="color: rgb(255, 255, 255); font-family: verdana, sans-serif; font-size: small; ">
<span><span style="font-size:10.5pt;font-family:Constantia;color:#5F5F5F">Cheers,</span></span></p><p class="MsoNormal" style="color: rgb(255, 255, 255); font-family: verdana, sans-serif; font-size: small; "><span><span style="font-size:10.5pt;font-family:Constantia;color:#5F5F5F"><br>
</span></span></p><p class="MsoNormal" style="color: rgb(255, 255, 255); font-family: verdana, sans-serif; font-size: small; "><span><span style="font-size:10.5pt;font-family:Constantia;color:#5F5F5F">Mahesh</span></span></p>
</font></font></font>
<br clear="all"></font></font><div style="text-align:right"><font class="Apple-style-span" color="#999999" face="verdana, sans-serif" size="1"><br></font></div><div style="text-align:right"><span style="border-collapse:collapse"><div style="font-size:13px;font-family:arial, sans-serif">
<font><span style="font-size:x-small"><font face="verdana, sans-serif" color="#999999">Mahesh M. Casiraghi</font></span></font></div><div style="font-size:13px;font-family:arial, sans-serif"><span style="font-size:x-small"><font face="verdana, sans-serif" color="#999999">PhD candidate - Cognitive Sciences</font></span></div>
<div><font size="1" face="verdana, sans-serif" color="#999999">Roberto Dell'Acqua Lab, University of Padova</font></div><div><font size="1" face="verdana, sans-serif" color="#999999">Pierre Jolicoeur Lab, Univesité de Montréal</font></div>
<div style="color:rgb(192, 192, 192)"><font size="1" face="verdana, sans-serif"><a href="mailto:mahesh.casiraghi@umontreal.ca" target="_blank">mahesh.casiraghi@umontreal.ca</a></font></div></span></div><div style="text-align:right">
<font size="1" face="verdana, sans-serif" color="#C0C0C0"><br></font></div><div style="text-align:right"><font size="1" face="verdana, sans-serif" 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.</font></div>
<div style="text-align:right"><font size="1" face="verdana, sans-serif" color="#999999">Claude Bernard</font></div><div style="text-align:right"><font color="#CCCCCC" face="constantia, 'hoefler text', 'palatino linotype', serif" size="1"><span style="border-collapse:collapse;line-height:24px"><br>
</span></font></div><br>
<br><br><div class="gmail_quote">On Wed, May 11, 2011 at 5:14 PM, Tarik S Bel-Bahar <span dir="ltr"><<a href="mailto:tarikbelbahar@gmail.com">tarikbelbahar@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Greetings, I am wondering why as well. <br>In particular, does anyone have an EEGLAB-based algorithm<br>that catches these extremely bad channels, or very noisy ones without big amplitude changes, in either continuous or epoched data ?<br>
<br>Andrew, the bad channel rejection probably works differently if you are using continuous or epoched data.<br>I bet that the epoched (or windowed) data bad channel detection would catch the big bad channel.<div><div></div>
<div class="h5"><br>
<br><br><div class="gmail_quote">On Mon, May 9, 2011 at 4:34 PM, Andrew Hill <span dir="ltr"><<a href="mailto:andrewhill@ucla.edu" target="_blank">andrewhill@ucla.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex">
<div style="word-wrap:break-word">Thanks James - Exactly what I needed. <div><br></div><div>Another question for the list about automagic channel rejection.</div><div>This picture shows some EEG and the channels that are marked as bad with kurtosis / probability thresholds of 5:</div>
<div><a href="http://salamander.net/stage/pastebin/autorejects.jpg" target="_blank">http://salamander.net/stage/pastebin/autorejects.jpg</a></div><div><br></div><div>You will notice it doesn't remove channels that are wildly out of range - even dropping the thresholds on the methods to 2 or under, those extremely bad channels aren't "caught"... </div>
<div><br></div><div>Anyone have an idea why?</div><div><br></div><div>Best,</div><div>Andrew</div><div><div></div><div><div><br></div><div><div><div>On May 9, 2011, at 6:10 AM, James Desjardins wrote:</div><br>
<blockquote type="cite"><div>Hi Andrew,<br><br>The outputs listed in the pop_rejchan help text can be added following <br>the EEG output at the command line as follows:<br><br>[EEG,indelec] = pop_rejchan(EEG,'elec',1:64], ...<br>
'threshold',5,'norm','on','measure','kurt');<br><br>Then used in eeg_interp as follows:<br>EEG = eeg_interp(EEG,indelec)<br><br><br>Also, it may be good practice to store that vector in the EEG <br>
structure so you can keep the information when you subsequently save <br>the dataset. Other rejection variables are stored in the EEG.reject <br>field.<br><br>The following should work nicely and the marked channels will be <br>
stored when you save the dataset:<br><br>[EEG,EEG.reject.indelec] = pop_rejchan(EEG,'elec',1:64], ...<br>'threshold',5,'norm','on','measure','kurt');<br><br>EEG = eeg_interp(EEG,EEG.reject.indelec)<br>
<br><br>I have been using a procedure similar to this in my data processing <br>stream where I interpolate bad channels then include them in my <br>average reference (the interpolation allows for a consistent and <br>
spatially balanced average reference channel across participants <br>
regardless of what channels are marked bad). I keep track of which <br>channels have been interpolated (in the case above using the <br>EEG.reject.indelect field) and then I do not include them in <br>procedures where interpolation is inappropriate (eg. ICA).<br>
<br>I hope that this is helpful.<br><br>ps. I am going to use the term "automagically" regularly from now on.<br><br>James Desjardins<br>Technician, MA Student<br>Department of Psychology, Behavioural Neuroscience<br>
Cognitive and Affective Neuroscience Lab<br>Brock University<br>500 Glenridge Ave.<br>St. Catharines, ON, Canada<br>L2S 3A1<br><a href="tel:905-688-5550" value="+19056885550" target="_blank">905-688-5550</a> x4676<br><br>
<br>Quoting Andrew Hill <<a href="mailto:andrewhill@ucla.edu" target="_blank">andrewhill@ucla.edu</a>>:<br><br><blockquote type="cite">Hi folks,<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">
I'm trying to figure out how to first automagically detect bad <br></blockquote><blockquote type="cite">channels and then interpolate them on the fly, before saving my EEG <br></blockquote><blockquote type="cite">
data set.<br></blockquote><blockquote type="cite">Using pop_rejchan seems to do what it should:<br></blockquote><blockquote type="cite">...<br></blockquote><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">
EEG = pop_rejchan(EEG ,'threshold',5,'norm','on','measure','kurt');<br></blockquote></blockquote></blockquote><blockquote type="cite">Computing kurtosis for channels...<br></blockquote>
<blockquote type="cite">4 electrodes labeled for rejection<br></blockquote><blockquote type="cite">Removing 4 channel(s)...<br></blockquote><blockquote type="cite">...<br></blockquote><blockquote type="cite"><br></blockquote>
<blockquote type="cite">But these are of course not removed - just marked as red in the plot <br></blockquote><blockquote type="cite"> and I'm assuming labeled in the EEG object somewhere.<br></blockquote><blockquote type="cite">
<br></blockquote><blockquote type="cite">I see an output parameter "indelec" in the pop_rejchan help, but <br></blockquote><blockquote type="cite">after running pop_rejchan I don't see an "indelec" variable created, <br>
</blockquote><blockquote type="cite"> nor a EEG.indelec one.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Ideally I'd like to take the indices of any marked-bad channels and <br>
</blockquote>
<blockquote type="cite">then immediately interpolate, maybe something like this?<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">EEG = pop_rejchan(EEG, 'elec',[1:64] <br></blockquote>
<blockquote type="cite">,'threshold',5,'norm','on','measure','kurt');<br></blockquote><blockquote type="cite">EEG = eeg_interp(EEG, EEG.indelec)<br></blockquote><blockquote type="cite">
<br></blockquote><blockquote type="cite">But that of course isn't syntatically correct - how/where is this <br></blockquote><blockquote type="cite">information stored?<br></blockquote><blockquote type="cite">Is anyone else doing something like this?<br>
</blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Also, does the pop_reref function know enough to exclude channels <br></blockquote><blockquote type="cite">that have been marked bad?<br></blockquote>
<blockquote type="cite">I couldn't see anything relevant in the function help.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Thanks,<br></blockquote><blockquote type="cite">Andrew<br>
</blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">_______________________________________________<br></blockquote><blockquote type="cite">Eeglablist page: <a href="http://sccn.ucsd.edu/eeglab/eeglabmail.html" target="_blank">http://sccn.ucsd.edu/eeglab/eeglabmail.html</a><br>
</blockquote><blockquote type="cite">To unsubscribe, send an empty email to <a href="mailto:eeglablist-unsubscribe@sccn.ucsd.edu" target="_blank">eeglablist-unsubscribe@sccn.ucsd.edu</a><br></blockquote><blockquote type="cite">
For digest mode, send an email with the subject "set digest mime" to <br></blockquote><blockquote type="cite"> <a href="mailto:eeglablist-request@sccn.ucsd.edu" target="_blank">eeglablist-request@sccn.ucsd.edu</a><br>
</blockquote><blockquote type="cite"><br></blockquote><br><br><br><br>_______________________________________________<br>Eeglablist page: <a href="http://sccn.ucsd.edu/eeglab/eeglabmail.html" 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><br>
</div></blockquote></div><br></div></div></div></div><br>_______________________________________________<br>
Eeglablist page: <a href="http://sccn.ucsd.edu/eeglab/eeglabmail.html" 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><br></blockquote></div><br>
</div></div><br>_______________________________________________<br>
Eeglablist page: <a href="http://sccn.ucsd.edu/eeglab/eeglabmail.html" 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">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">eeglablist-request@sccn.ucsd.edu</a><br></blockquote></div><br>