Anandanadarajah Nishanth, Talukder Amlan, Yeung Deryck, Li Yuanyuan, Umbach David M, Fan Zheng, Li Leping
Biostatistics and Computational Biology Branch, National Institute of Environmental Health Sciences, Research Triangle Park, NC 27709, USA.
Division of Sleep Medicine, Department of Neurology, University of North Carolina at Chapel Hill, Chapel Hill, NC 27514, USA.
Signals (Basel). 2024 Dec;5(4):690-704. doi: 10.3390/signals5040038. Epub 2024 Oct 22.
Polysomnography (PSG) measures brain activity during sleep via electroencephalography (EEG) using six leads. Artifacts caused by movement or loose leads distort EEG measurements. We developed a method to automatically identify such artifacts in a PSG EEG trace. After preprocessing, we extracted power levels at frequencies of 0.5-32.5 Hz with multitaper spectral analysis using 4 s windows with 3 s overlap. For each resulting 1 s segment, we computed segment-specific correlations between power levels for all pairs of leads. We then averaged all pairwise correlation coefficients involving each lead, creating a time series of segment-specific average correlations for each lead. Our algorithm scans each averaged time series separately for "bad" segments using a local moving window. In a second pass, any segment whose averaged correlation is less than a global threshold among all remaining good segments is declared an outlier. We mark all segments between two outlier segments fewer than 300 s apart as artifact regions. This process is repeated, removing a channel with excessive outliers in each iteration. We compared artifact regions discovered by our algorithm to expert-assessed ground truth, achieving sensitivity and specificity of 80% and 91%, respectively. Our algorithm is an open-source tool, either as a Python package or a Docker.
多导睡眠图(PSG)通过使用六个导联的脑电图(EEG)来测量睡眠期间的大脑活动。由运动或导联松动引起的伪迹会扭曲脑电图测量结果。我们开发了一种方法来自动识别PSG脑电图记录中的此类伪迹。预处理后,我们使用4秒窗口、重叠3秒的多锥谱分析提取了0.5 - 32.5赫兹频率下的功率水平。对于每个得到的1秒片段,我们计算了所有导联对之间功率水平的片段特定相关性。然后,我们对涉及每个导联的所有成对相关系数进行平均,为每个导联创建一个片段特定平均相关性的时间序列。我们的算法使用局部移动窗口分别扫描每个平均时间序列以查找“不良”片段。在第二轮扫描中,任何平均相关性低于所有其余良好片段中的全局阈值的片段都被声明为异常值。我们将两个相距少于300秒的异常值片段之间的所有片段标记为伪迹区域。重复此过程,在每次迭代中移除具有过多异常值的通道。我们将算法发现的伪迹区域与专家评估的地面真值进行比较,分别实现了80%的灵敏度和91%的特异性。我们的算法是一个开源工具,可以作为Python包或Docker使用。