[Eeglablist] Reference point location and Cleanline issue

Makoto Miyakoshi mmiyakoshi at ucsd.edu
Tue Jan 23 14:08:31 PST 2024


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


More information about the eeglablist mailing list