[Eeglablist] Reference point location and Cleanline issue

Cedric Cannard ccannard at protonmail.com
Wed Jan 24 10:04:45 PST 2024


Hi Makoto,

Looking forward to that paper. I have been wondering about that for a while, although I typically lowpass below power line frequency most of the time since I am rarely looking at higher frequencies. 

But, yes, I also have been pretty happy with the results when I played with CleanLine a few times. 

Thanks,

Cedric



On Tuesday, January 23rd, 2024 at 2:08 PM, Makoto Miyakoshi via eeglablist <eeglablist at sccn.ucsd.edu> wrote:

> Hi Tim,
> 
> > CleanLine uses EEGLAB's Welch's method for FFT (if I remember correctly)
> 
> to evaluate the spectrum, so the data needs to be high-pass filtered. See
> Nima Bigdely-Shamlo's PREP pipeline paper for detail.
> 
> I wrote this in the past, but I think Tim (Mullen) immediately corrected me
> that CleanLine does not require the high-pass filter. I thought I was wrong
> then.
> But when I checked it now if I was really wrong, fair enough I found the
> following description in Nima's PREP reference paper (p.4).
> 
> > Extensive tests showed that the line-noise removal algorit hms do not
> 
> perform well if done without prior high-pass filtering or trend removal. As
> with other Fourier transform approaches, multi-taper spectral estimation
> assumes signal stationarit y, and therefore removal of long-term trend
> prior to spectral estimation can improve estimation and interpretation of
> the signal spectrum.
> 
> So, my comment above was actually backed up by this description.
> Empirically, I also experience that EEGLAB's spectopo() fails when (very)
> large DC+infraslow drift are present in the data.
> I don't have time or energy to investigate this issue now, but if you don't
> want to avoid the risk it's better to apply a high-pass filter.
> 
> In fact, PREP adds back all the infralow frequency contents after all the
> processes to avoid ERP researcher's criticism for using >0.1 Hz high-pass
> 
> filter, if I remember correctly. This means high-pass filter was necessary
> even only for these processes.
> 
> Hi
> 
> Cedric
> 
> 
> ,
> 
> > There is also the zapline plugin that might give better results. I don't
> 
> know if anyone compared them.
> 
> Yasuhisa "Yaß" Maruyama from Tokyo Institute of Technology (at that time)
> and I are now writing a technical paper on the comparison of line-noise
> removal algorithms: notch (narrow), notch (wide), CleanLine (Mullen 2012),
> spectral interpolation (Leske and Dalal 2019), BLASST (Ball et al. 2017),
> ZapLine (de Cheveigne, 2020), and ZapLine Plus (Klug and Kloosterman,
> 2022). CleanLine's performance is not bad.
> 
> By the way, CleanLine's history has a bit of confusion. I briefly mentioned
> it in my past paper (Miyakoshi et al., 2021 Frontiers), but the default
> distribution had an apparent problem and did not work as designed. Hence in
> my paper I recommended to use the one in PREP. After that, EEGLAB's default
> was updated, which I haven't checked. I hope Arno took care of the issue.
> If someone can confirm it, it would be useful for everyone... Anyone
> want to try the comparison?
> 
> Makoto
> 
> 
> On Tue, Jan 23, 2024 at 1:23 PM Cedric Cannard via eeglablist <
> eeglablist at sccn.ucsd.edu> wrote:
> 
> > Hi,
> > 
> > Also, try p-value = 0.05 instead of 0.01. And I believe the CleanLine from
> > the Prep Pipeline has more recent improvements, but that's just something I
> > heard, not seen the code.
> > 
> > There is also the zapline plugin that might give better results. I don't
> > know if anyone compared them.
> > 
> > Hope this helps.
> > 
> > Cedric
> > 
> > On Monday, January 22nd, 2024 at 10:22 AM, Tim Curran via eeglablist <
> > eeglablist at sccn.ucsd.edu> wrote:
> > 
> > > Hi Chester,
> > > I recently tried to use cleanLine and benefitted from the following
> > > advice from Makoto in 2016.
> > > Best,
> > > Tim
> > > 
> > > From: eeglablist-bounces at sccn.ucsd.edumailto:
> > > eeglablist-bounces at sccn.ucsd.edu <eeglablist-bounces at sccn.ucsd.edumailto:
> > > eeglablist-bounces at sccn.ucsd.edu> on behalf of Makoto Miyakoshi
> > > <mmiyakoshi at ucsd.edumailto:mmiyakoshi at ucsd.edu>
> > > 
> > > Date: Tuesday, April 5, 2016 at 3:09 PM
> > > To: Eric HG <erichg2013 at gmail.commailto:erichg2013 at gmail.com>
> > > 
> > > Cc: eeglablist <eeglablist at sccn.ucsd.edumailto:eeglablist at sccn.ucsd.edu>
> > > 
> > > Subject: Re: [Eeglablist] Question about Cleanline
> > > Dear Eric,
> > > 
> > > First of all, did you apply it on the high-pass filtered data? CleanLine
> > > uses EEGLAB's Welch's method for FFT (if I remember correctly) to evaluate
> > > the spectrum, so the data needs to be high-pass filtered. See Nima
> > > Bigdely-Shamlo's PREP pipeline paper for detail.
> > > 
> > > Did you average reference the data? It may help, especially if your data
> > > are not re-referenced at all (like Biosemi's data).
> > > 
> > > Another thing is that you can expect a small improvement by doing this
> > > 
> > > 'SlidingWinLength',4,'SlidingWinStep',4
> > > 
> > > If these does not work, I recommend you band-pass filter your data
> > > 45-55Hz to see stationarity of your 'line noise'-- is it really it??
> > > 
> > > Makoto
> > > 
> > > On Fri, Mar 4, 2016 at 2:14 AM, Eric HG <erichg2013 at gmail.commailto:
> > > erichg2013 at gmail.com> wrote:
> > > 
> > > Hi everybody,
> > > 
> > > I've been trying to apply Cleanline instead of a notch filter but there
> > > seems to be a problem with some of the subjects. Cleanline doesn't seem to
> > > remove all the line noise (at 50 Hz) (see picture). Before I use cleanline
> > > I use the function pop_firwsord to high- and low-pass the EEG.
> > > 
> > > I use cleanline with the following settings:
> > > 
> > > [EEG, Sorig, Sclean, f, amps, freqs, g] = pop_cleanline(EEG,
> > > 'Bandwidth',2,'ChanCompIndices',[1:EEG.nbchan], ...
> > > 
> > > 'SignalType','Channels','ComputeSpectralPower',true, ...
> > > 
> > > 'LineFrequencies',[50] ,'NormalizeSpectrum',false, ...
> > > 
> > > 'LineAlpha',0.01,'PaddingFactor',2,'PlotFigures',false, ...
> > > 
> > > 'ScanForLines',true,'SmoothingFactor',100,'VerboseOutput',1, ...
> > > 
> > > 'SlidingWinLength',4,'SlidingWinStep',2);
> > > Does anyone know what might need to be changed to fix this?
> > > 
> > > Best,
> > > 
> > > Eric
> > > 
> > > [Inline image 1]
> > > 
> > > _______________________________________________
> > > Eeglablist page: http://sccn.ucsd.edu/eeglab/eeglabmail.html
> > > To unsubscribe, send an empty email to
> > > eeglablist-unsubscribe at sccn.ucsd.edumailto:
> > > eeglablist-unsubscribe at sccn.ucsd.edu
> > > 
> > > For digest mode, send an email with the subject "set digest mime" to
> > > eeglablist-request at sccn.ucsd.edumailto:eeglablist-request at sccn.ucsd.edu
> > > 
> > > From: eeglablist eeglablist-bounces at sccn.ucsd.edu on behalf of
> > > chester20080 via eeglablist eeglablist at sccn.ucsd.edu
> > > 
> > > Date: Monday, January 22, 2024 at 10:30 AM
> > > To: Deepa Gupta deepag1 at umbc.edu
> > > 
> > > Cc: eeglablist at sccn.ucsd.edu eeglablist at sccn.ucsd.edu
> > > 
> > > Subject: Re: [Eeglablist] Reference point location and Cleanline issue
> > > Thank you for the prompt response.
> > > 
> > > I'm in Europe, so the interference here is at multiples of 50Hz and the
> > > signal was recorded on the scalp externally. Cleanline unfortunately did
> > > not work, I used it at 50Hz and at 100Hz but it did nothing, the
> > > interference remains for both frequencies. I forgot to mention that the
> > > patient is at resting state and is considered healthy. Perhaps I should low
> > > pass at 75Hz or even at 40-50Hz? I guess I don't expect any gamma activity
> > > at resting state. Alternatively, could I just use a notch for 50Hz (as a
> > > bandwidth fir @ 48-52Hz)?
> > > 
> > > For the reference, G2 is not included in the file, in the lookup, so
> > > even if I name an additional channel G2 and click on look up locs, it
> > > cannot load the coordinates since this point is not a standard besa 4-shell
> > > dipfit point I think, and I don't have any locations file to use as source.
> > > However, could I use Cz itself as the reference point instead, since G2
> > > (the actual reference point for which I don't have any other data/info) is
> > > so close to Cz? And use the procedure described in the link to append
> > > another Cz channel only to use it as reference? In case I do just that, do
> > > I need to run average re-referencing based on Cz as well or just set Cz as
> > > the reference channel in the Channel locations window?
> > > 
> > > Thank you again in advance. Στις Δευτέρα 22 Ιανουαρίου 2024 στις
> > > 02:45:16 π.μ. EET, ο χρήστης Deepa Gupta deepag1 at umbc.edu έγραψε:
> > > 
> > > Hi Chester,
> > > Thankyou for using EEGLAB. Please see the responses below:
> > > regarding your query#1 - are you not seeing a harmonic at 60Hz? If not
> > > then yes, it could be harmonic. It also depends on where this was recorded.
> > > you may preferably consider using cleanline (more than once if needed)
> > > among other possible techniques. regarding your query#2 - Please check this
> > > if you haven't already:
> > > https://urldefense.com/v3/__https://nam10.safelinks.protection.outlook.com/?url=https*3A*2F*2Furldefense.com*2Fv3*2F__https*3A*2F*2Feeglab.org*2Ftutorials*2F05_Preprocess*2Frereferencing.html__*3B!!Mih3wA!EfAh3J2UBkVkGF_y_CzGvue6XCKLeprgZhPzRWRdKZzx25SgLurqW9H5PA_0dwnoF-aKHiUJ07F38M8Qnats3piCaRtNFg*24&data=05*7C02*7Ctim.curran*40colorado.edu*7Cafe750751cbd4b2153d708dc1b6fc9eb*7C3ded8b1b070d462982e4c0b019f46057*7C1*7C0*7C638415414159631317*7CUnknown*7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0*3D*7C3000*7C*7C*7C&sdata=7y*2FLhNYfAtCfZhvqAy6hDrDuqEJvcFPoRi05tsNxIBo*3D&reserved=0__;JSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUl!!Mih3wA!HD_n2xGDMuYmp3_Jnl1fqPqkMUZY-FOsnzG52g4fJgKinlr8ZNsDIR-UUGXWx4M5tGtk_NHK4zmYEkYPoGAQr8jIKcJbQA$
> > > https://urldefense.com/v3/__https://eeglab.org/tutorials/05_Preprocess/rereferencing.html__;!!Mih3wA!EfAh3J2UBkVkGF_y_CzGvue6XCKLeprgZhPzRWRdKZzx25SgLurqW9H5PA_0dwnoF-aKHiUJ07F38M8Qnats3piCaRtNFg$
> > > and check for Look up locsBasically you would need to go to Edit -> channel
> > > locations - then please append channel as per the documentation if you must
> > > followed by Look up locs to get the coordinates for G2 and then have it as
> > > set reference. Once that's done, you may re-refer by going to Tools →
> > > Re-reference the data
> > > 
> > > Hope that helpsSincerely
> > > Deepa GuptaPostdoc Scholar, SCCN, SDSC, INC, UCSDPh.D. , Dr. Choa's Lab,
> > > CSEE, UMBC
> > > 
> > > On Sun, Jan 21, 2024 at 2:30 PM chester20080 via eeglablist
> > > eeglablist at sccn.ucsd.edu wrote:
> > > 
> > > Hello all,
> > > I am a postgraduate student in biomedical engineering and this is my
> > > first time analyzing EEG signals in eeglab. The recording is from a healthy
> > > person at resting state. The montage is based on the International 10-20
> > > system and has 19 electrodes (no location file, the locations are
> > > automatically recognized with BESA 4shell dipfit). The recording was done
> > > with reference to point G2 set 1 cm under Cz at a sampling rate (frequency)
> > > of 256 Hz.
> > > 
> > > 1) When I plot the spectrum I see two big peaks at 50Hz and 100Hz, while
> > > the 100Hz is higher than 50Hz. Is this harmonic power line interference?
> > > The problem is that the cleanline plugin does not remove this artifact at
> > > all, it does nothing, the interference remains at both frequencies
> > > unchanged, unattenuated.
> > > 
> > > 2) The second problem is that I don't know how to use the information
> > > about the reference point G2 located 1cm under Cz. I have Cz coordinates in
> > > both polar and cartesian. "Under" means inside the brain vertically so Z
> > > coordinate needs to decrease by 10mm or does it mean externally following
> > > the spherical curvature of the head or something, in which case both X and
> > > Z change, but then it gets very complicated, what are the exact coordinates
> > > for G2? And then I have to create such a channel manually, insert the G2
> > > coordinates and run re-reference? I'm lost.
> > > 
> > > Can you please help me? Thank you in advance.
> > > _______________________________________________
> > > Eeglablist page:
> > > https://urldefense.com/v3/__https://nam10.safelinks.protection.outlook.com/?url=http*3A*2F*2Fsccn.ucsd.edu*2Feeglab*2Feeglabmail.html&data=05*7C02*7Ctim.curran*40colorado.edu*7Cafe750751cbd4b2153d708dc1b6fc9eb*7C3ded8b1b070d462982e4c0b019f46057*7C1*7C0*7C638415414159640220*7CUnknown*7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0*3D*7C3000*7C*7C*7C&sdata=G6KyDV1JSUN*2FWtJKz*2Fs387E1HpiK1tShyUFggjmKfWA*3D&reserved=0__;JSUlJSUlJSUlJSUlJSUlJSUlJSUlJSU!!Mih3wA!HD_n2xGDMuYmp3_Jnl1fqPqkMUZY-FOsnzG52g4fJgKinlr8ZNsDIR-UUGXWx4M5tGtk_NHK4zmYEkYPoGAQr8iWvEtrkw$
> > > http://sccn.ucsd.edu/eeglab/eeglabmail.html
> > > 
> > > To unsubscribe, send an empty email to
> > > eeglablist-unsubscribe at sccn.ucsd.edu
> > > For digest mode, send an email with the subject "set digest mime" to
> > > eeglablist-request at sccn.ucsd.edu
> > > 
> > > _______________________________________________
> > > Eeglablist page:
> > > https://urldefense.com/v3/__https://nam10.safelinks.protection.outlook.com/?url=http*3A*2F*2Fsccn.ucsd.edu*2Feeglab*2Feeglabmail.html&data=05*7C02*7Ctim.curran*40colorado.edu*7Cafe750751cbd4b2153d708dc1b6fc9eb*7C3ded8b1b070d462982e4c0b019f46057*7C1*7C0*7C638415414159645907*7CUnknown*7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0*3D*7C3000*7C*7C*7C&sdata=0p4We7O2D6Wt6xd9jSkuUU6RFP7bpBFINdkuAeWX*2FAg*3D&reserved=0__;JSUlJSUlJSUlJSUlJSUlJSUlJSUlJQ!!Mih3wA!HD_n2xGDMuYmp3_Jnl1fqPqkMUZY-FOsnzG52g4fJgKinlr8ZNsDIR-UUGXWx4M5tGtk_NHK4zmYEkYPoGAQr8jAbqtimQ$
> > > http://sccn.ucsd.edu/eeglab/eeglabmail.html
> > > 
> > > To unsubscribe, send an empty email to
> > > eeglablist-unsubscribe at sccn.ucsd.edu
> > > For digest mode, send an email with the subject "set digest mime" to
> > > eeglablist-request at sccn.ucsd.edu
> > > _______________________________________________
> > > Eeglablist page: http://sccn.ucsd.edu/eeglab/eeglabmail.html
> > > To unsubscribe, send an empty email to
> > > eeglablist-unsubscribe at sccn.ucsd.edu
> > > For digest mode, send an email with the subject "set digest mime" to
> > > eeglablist-request at sccn.ucsd.edu
> > > _______________________________________________
> > > Eeglablist page: http://sccn.ucsd.edu/eeglab/eeglabmail.html
> > > To unsubscribe, send an empty email to
> > > eeglablist-unsubscribe at sccn.ucsd.edu
> > > For digest mode, send an email with the subject "set digest mime" to
> > > eeglablist-request at sccn.ucsd.edu
> 
> _______________________________________________
> Eeglablist page: http://sccn.ucsd.edu/eeglab/eeglabmail.html
> To unsubscribe, send an empty email to eeglablist-unsubscribe at sccn.ucsd.edu
> For digest mode, send an email with the subject "set digest mime" to eeglablist-request at sccn.ucsd.edu


More information about the eeglablist mailing list