eLife:一个开源、高性能的自动睡眠分期工具
摘要
近年來,對于人類睡眠的臨床和社會學測量需求越來越多,但與其它已經實現高自動化分析的醫學領域不同的是,基礎和臨床的睡眠研究仍然依賴人眼目測打分。基于人工的評估體系耗時、單調,且已被證實可能出現主觀偏倚。作者開發出了一種已經過30000+小時源于世界不同人種的多導睡眠圖記錄數據驗證的新型算法,可以提供精確匹配人工賦分準確度的睡眠分期功能。此工具簡潔易用開源免費,對計算機運行要求低,希望以此實現自動化睡眠分期。
介紹
睡眠對人體健康至關重要。充足的睡眠支持一整套生理身體功能,包括免疫、代謝和心血管系統。在大腦內部,充足的睡眠有助于最佳的學習、記憶、注意力、情緒和決策過程。因此,在研究、臨床和基于消費者的層面上量化人類睡眠的需求在過去十年中迅速增長。
多導睡眠描記術(PSG是對人類睡眠進行客觀生理量化的金標準。對夜間睡眠階段的分類提供了關于夜間睡眠的總體結構的信息,以及睡眠階段的持續時間和比例,所有這些都為睡眠障礙和特定疾病狀態的診斷提供了信息。
目前,這種睡眠評分通常由人類完成,但不同的人類睡眠評分專家看到相同的記錄,最終可能會得出不同的睡眠階段評價,甚至同一個專家看到在兩個不同時間點評估的相同記錄,也會得出不同的結果。
機器學習的進步促使人們嘗試使用自動化系統對睡眠進行分類。盡管自動化工具的數量在不斷增長,但準確的自動睡眠分期還沒有成為該領域事實上的標準。這可能有幾個原因。首先,有些算法不是免費的,或者無法公開使用。其次,其他算法需要付費軟件來運行盡管是免費的算法,比如MATLAB。第三,有些算法訓練的樣本量太小,不具有穩健性,而且/或數據來自單一睡眠中心或人群。因此,他們是否有能力推廣到其他記錄系統和/或人群,包括睡眠障礙患者或跨大年齡段的患者,一直令人擔憂。第四,設置和運行這些算法對于大多數典型的個人來說往往過于復雜,因為它們需要中等到高級的編程經驗,這為采用和廣泛使用創造了進入障礙。所有這些算法的最后一個共同限制是,它們在不同的測試數據集上進行評估,使用不同的指標,這阻止了對這些算法的性能進行直接比較,并導致了一些睡眠研究人員和臨床醫生可以理解的困惑。
為了解決所有這些問題,作者提供了一種免費、靈活、易于使用的自動睡眠分期軟件,該軟件已經對超過30000小時的PSG睡眠分期進行了訓練和評估,這些睡眠分期來自大量的獨立和異構數據集,涵蓋了廣泛的年齡、種族和健康狀況水平。并用兩種最近的睡眠分期算法對健康成年人和阻塞性睡眠呼吸暫停(OSA)患者的一致評分睡眠數據集進行了研究。
結果
描述性統計
訓練集包括超過31,000小時的PSG數據,包括來自7個不同數據集的3163個獨特的整晚PSG記錄(克利夫蘭兒童睡眠與健康研究[CCSHS], n = 414;克利夫蘭家庭研究[CFS], n = 586;兒童腺扁桃體切除術試驗[CHAT], n = 351;家庭氣道正壓[HomePAP], n = 82;動脈粥樣硬化多民族研究[MESA], n = 575;男性骨質疏松性骨折研究[mro], n = 565;睡眠心臟健康研究[SHHS], n = 590)。表1列出了培訓集的人口統計和健康數據。平均呼吸暫停-低通氣指數(AHI)為12.9±16.35(中位數為6.95,范圍為0 ~ 125)。29%的夜間AHI≥15(=中度睡眠呼吸暫停)。MESA數據集的平均AHI最高(19.2±18.1),CCSHS數據集的平均AHI最低(1.5±5.2)。
表1。訓練集和測試集的人口統計數據年齡、體重指數(BMI)、呼吸暫停-低通氣指數(AHI)以均數±標準差表示。這三個變量的p值使用Welch’s雙面t檢驗計算,效應大小參考Hedges g。所有其他類別變量都用百分比表示。采用獨立性卡方檢驗評估顯著性,效應量參考Cramer 's v。呼吸暫停嚴重程度分級如下:無= AHI <5次/小時,輕度= AHI≥5但<15、中度= AHI≥15但<30, severe = AHI≥30。p值未進行多次比較調整。
測試集1由來自6個不同數據集的585個獨特的整晚PSG記錄組成(CCSHS, n = 100;CFS, n = 99;CHAT, n = 100;MESA, n = 97;mro, n = 90;SHHS, n = 99)。總的來說,這585個測試夜晚代表了716,367個獨特的30秒周期,或大約6000小時的PSG數據。試驗集1的人口統計和健康數據見表1。重要的是,在性別比例、種族分布、失眠、抑郁或糖尿病患者的比例上沒有顯著差異。此外,AHI和輕度、輕度、中度或重度睡眠呼吸暫停患者的比例沒有差異。雖然參與者被隨機分配到訓練/測試集中,但這兩個集之間有一些顯著的差異。具體而言,與原始訓練集相比,測試組的年齡和體重指數(BMI)較低(p <0.05),盡管這些差異的效應量均低于0.17(被認為是小或可忽略)。
測試集2由來自公開的Dreem開放數據集(Dreem Open Dataset, DOD)的80個通宵PSG記錄組成(Guillot等人,2020年)。DOD包括25個晚上的健康成人(DOD-健康:年齡= 35.3±7.51歲,76%男性,BMI = 23.8±3.4)和55個晚上的阻塞性睡眠呼吸暫停障礙(OSA)患者(DOD-Obstructive: 年齡= 45.6±16.5歲,64%男性,BMI = 29.6±6.4,AHI = 18.5±16.2)。DOD數據集沒有提供個人層面的人口統計數據和病史; Guillot等人于2020年報告了年齡、BMI和AHI的組平均值。排除了5個晚上,因為PSG數據的持續時間和催眠圖的持續時間相差超過1分鐘,導致最終樣本為75個晚上(約607小時的數據)。測試集2的每個晚上都由5名注冊的睡眠技術人員評分,這樣就可以根據人類評分者的共識來測試算法(見材料和方法)。與NSRR數據集不同,NSRR數據集被分為訓練和測試子集,DOD的兩個數據集(健康和患者)只用于性能評估。這為算法的性能提供了一個更可靠的評估,該評估基于來自一個新的睡眠診所或實驗室的真實數據。
驗證結果
測試集1:NSRR
算法在測試集1上的總體性能如圖1A所示。在全部585個測試夜計算的中位準確率為87.46%。Cohen 's kappa值的中位數為0.819,表明一致性極好;Matthews相關系數的中位數為0.821。CCSHS數據庫測試集的總體準確率最高(中位數= 90.44%),MESA數據庫的總體準確率最低(中位數= 83.99%)。除了傳統的睡眠分期之外,該算法還能夠量化每個30 s時期每個睡眠階段的概率,然后可用于獲得每個時期的置信度評分。在所有測試夜,該算法的中位置信度為85.79%。平均置信度較高的夜晚,其準確度顯著較高(圖1B, r = 0.76, p<0.001)。接下來,我們測試了各個睡眠階段的分類性能(圖1C)。N3睡眠的總體靈敏度(即正確分類的時間段百分比,見資料和方法)為83.2%,因此所有測試夜的中位f1評分為0.835。快速眼動(REM)睡眠、N2睡眠和覺醒期的靈敏度均高于85% (f1評分的中位數均≥0.86)。N1睡眠的一致性最低,總體靈敏度為45.4%,f1評分的中位數為0.432,這一發現與人類睡眠評分者的一致性通常非常低(<45%)。當分別對每個數據庫進行檢查時,這些算法性能結果是一致的(圖1 -圖補充1)。對混淆矩陣的進一步檢查表明,該算法最常見的兩個錯誤是(1)將N1睡眠錯誤標記為N2睡眠(占所有真實的N1睡眠時期的27.5%)和(2)將N3睡眠錯誤標記為N2睡眠(占所有真實的N3睡眠時期的16.1%)。重要的是,該算法很少出現明顯的錯誤,例如將N3睡眠錯誤標記為快速眼動睡眠(0.2%)或將快速眼動睡眠錯誤標記為N3睡眠(0.03%)。此外,當該算法錯誤分類一個時期時,該算法預測的第二高概率階段的正確率為76.3%±12.6%。
圖1 算法在測試集1 (n = 585個夜晚)上的性能。(A)所有測試夜的準確性,按數據集分層。所有測試夜的中位準確率為87.5%。(B)算法的準確率和平均置信水平(%)的相關性。通過平均所有時期的置信度來計算每晚的總體置信度。?混淆矩陣。對角線元素表示被算法正確分類的年代的百分比(也稱為靈敏度或召回),而非對角線元素顯示被算法錯誤標記的年代的百分比。(D)人體每個階段的持續時間(紅色)和自動評分(綠色),計算每個測試夜,并表示為多導睡眠圖(PSG)記錄的總時間的比例。
圖1補充。測試集1的混淆矩陣,按數據集分層
圖2補充。測試集1中各睡眠階段的置信度評分分布
圖3補充。YASA, Stephansen等人,2018年和Perslev等人,2021年算法在DOD-Healthy測試集(n = 25名健康成人)上的性能
圖4補充。DOD-Healthy測試集(n = 25名健康成人)上每個個體人類評分者的混淆矩陣
圖5補充。stephenen等2018年和Perslev等2021年在DOD-Obstructive測試集(n = 50例阻塞性睡眠呼吸暫停患者)上的YASA算法性能
圖6補充。DOD -阻塞性測試集(n = 50例睡眠呼吸暫停患者)上每個個體人類評分者的混淆矩陣
圖7補充。分類器最重要的20個特征
測試集2:DOD -健康數據集和DOD -阻塞數據集的共識評分
接下來,作者研究了YASA在測試集2上的表現,測試集2是一個之前未見過的健康和睡眠呼吸障礙患者數據集,由5名注冊專家進行評分. 表2報告了健康成人(n = 25)的算法性能,表3報告了睡眠障礙患者的算法性能。在健康成人中,YASA與5位專家的一致評分的正確率中位數為86.6%。所有夜間的kappa值中位數為80.1%,一致性良好。所有夜間各睡眠階段f1評分的中位數和四分位距見表2。然后將YASA的表現與5名單獨的人類評分者中的每一位進行了比較,并與最近發表的兩種睡眠分期算法進行了比較。使用Holm數值代表所有25個夜晚的中位數±四分位距對多重比較進行了配對t檢驗校正. YASA專欄顯示了當前算法的性能相對于5個人類專家的共識評分(參見材料和方法)。
方法顯示,YASA在這一健康驗證數據集中的準確性與其他兩種基于深度學習的睡眠分期算法或任何單個評分者(評分者4除外,見下文或表2)無顯著差異。每個睡眠階段的f1評分在YASA、Stephansen等人2018年的算法和人類評分者1、2、3和5之間無顯著差異。評分者4對N1 (p=0.034)和N2 (p<0.001)的f1評分顯著較低,導致整體準確性較低(p=0.001)。在N1期、快速眼動睡眠期和覺醒期,Perslev等2021算法的f1評分顯著高于YASA(分別為p=0.006, p<0.001和p=0.042)。N2和N3的f1評分在YASA和Perslev等人2021算法之間無統計學差異。DOD-Healthy數據集的共識評分和3種自動算法的每晚睡眠圖見補充文件1,其中YASA與共識評分的一致性由高到低排序。每個評分者(人和算法)的混淆矩陣可以在圖1 -圖補充3和4中找到。對55例OSA (DOD-Obstructive)患者進行了同樣的分析。5位專家對YASA評分的一致性評分中位準確率為84.3%,kappa值為76.5%。所有夜間各睡眠階段f1評分的中位數和四分位距見表3。對準確度進行的兩兩比較表明,YASA與Stephansen等2018算法或人工評分者1、3、4和5無顯著差異。人類評分者2的準確率顯著較低(p=0.004),而Perslev算法的準確率顯著較高(p=0.009)。對f1評分的兩兩比較表明,YASA的表現優于Stephansen等人2018年的算法,以及N3睡眠評分的5名評分者中的4名(均p<0.01)。然而,在N1期、快速眼動期和覺醒期方面,Perslev等2021算法的評分顯著高于YASA(均p<0.011)。共識評分和三種自動算法的一致性由高到低的催眠圖見補充文件2。混淆矩陣見圖1 -圖補充部分5和6。
對合并數據集(n = 75個夜晚,健康和患者合并)的額外分析表明,第一,YASA相對于共識評分的準確性在穩定時期顯著高于過渡時期(均值±標準差:91.2±7.8 vs. 68.95±7.7,p<0.001),或在被算法標記為高置信度時期(93.9±6.0 vs. 64.1±7.0,p<0.001)。其次,5位人類專家一致同意的時代發生在穩定時代的可能性是發生在過渡時代的4倍(46.2%±12.1%所有時間段vs. 11.5%±4.9%,p<0.001),而且在算法標記為高置信區間(≥80%)的時間段發生的可能性也高出4倍(所有時間段的46.4%±12.9% vs. 11.3%±5.7%,p<0.001)。第三,YASA標記為高可信度的時間點的百分比與具有一致性的時間點的百分比之間存在顯著相關性(r = 0.561, p<0.001),這意味著YASA總體上對具有較高的評定者間一致性的記錄更有信心。
表3。在DOD-Obstructive數據集(阻塞性睡眠呼吸暫停患者,n = 50)中,比較YASA與兩種現有算法和個體人類評分者。
數值代表所有n = 50個夜晚的中位數±四分位距。YASA專欄顯示了當前算法的性能相對于5個人類專家的共識評分(參見材料和方法)。H1-H5列顯示了每個人的表現與一個無偏倚的共識(見材料和方法)。星號表示與YASA的顯著差異。使用Holm方法對p值進行了逐行多重比較校正。準確性被定義為預測睡眠階段和真實睡眠階段之間的總體一致性。F1是F1評分,為每個睡眠階段分別計算。F1-macro是所有睡眠階段f1評分的平均值。
調節分析
對于不同調節因子對睡眠分期準確性的影響,隨后的分析基于測試集1 (NSRR),與測試集2 (DOD)不同,該測試集可獲得大量個人層面的人口和健康數據。與人類睡眠評分一樣,專注于年齡這一第一個因素的分析顯示,它與準確率存在微小但顯著的負相關(r =?0.128,p=0.002,圖2A),表明準確率隨著年齡的增長存在適度的線性下降。其次,身體成分與準確性不顯著相關(r =?0.001,p=0.97,圖2B)。第三,性別也不是準確性的顯著決定因素(Welch 's T =?1.635,p=0.103,圖2C)。第四,睡眠呼吸暫停,特別是AHI,與準確率(r =?0.29,p<0.001,圖2E)和算法的總體置信度(通過整晚逐時段置信度的平均值計算,r =?0.339,p<0.001)呈負相關。這表明,在一定程度上,算法的性能和可信度在睡眠呼吸暫停指數嚴重的患者中會下降,這可能是由睡眠呼吸暫停患者的階段過渡數量增加所調節的(見上述階段過渡發現)。與后者一致,(人為定義的)階段過渡的百分比與AHI顯著相關(r = 0.427, p<0.001)。最后,種族是準確性的一個顯著預測因子(方差分析,F(3,581) = 3.281, p=0.021,圖2D)。兩兩的事后測試調整了多次比較與Tukey的方法揭示西班牙裔白人的準確性低于非西班牙裔白人(p=0.032)。然而,這種效應可能是由這兩個類別之間的樣本量的不平衡所驅動的(n = 40 vs. n = 342)。沒有其他種族類別之間的配對比較是顯著的。為了更好地理解這些調節因子如何影響精度變異性,作者在模型中包括了所有上述的人口統計變量,以及抑郁癥、糖尿病、高血壓和失眠的醫學診斷,以及從基本事實睡眠評分中提取的特征,如每個睡眠階段的百分比、記錄的持續時間和催眠圖中階段轉換的百分比。模型的結果變量是YASA相對于地面真實睡眠分期的準確性得分,每晚分別計算。測試集1中的所有夜晚都被包括在內,導致樣本量為585個獨特的夜晚。結果見補充文件3b。N1睡眠的百分比和階段轉換的百分比——兩者都是睡眠碎片化的標志——是準確性的兩個最高預測指標,占總相對重要性的40%。相比之下,年齡、性別、種族和失眠、高血壓、糖尿病和抑郁癥的醫療診斷的綜合貢獻約占總重要性的10%。
圖2 調節分析 測試夜晚的準確性作為年齡(a)、體重指數(BMI) (B)、性別?、種族(D)、呼吸暫停-低通氣指數(E)的函數,以及該時段是否在一個階段過渡(F)附近。如果根據人類評分定義的階段過渡出現在該時段前后的3分鐘內(之前1.5分鐘,之后1.5分鐘),則認為該時段在一個過渡期附近
軟件實現
該算法的實現是完全開源的,可以免費獲得。此種睡眠算法,俗稱YASA,是用Python編寫的更廣泛的睡眠分析包(或“庫”)的一部分。除了自動睡眠分期模塊之外,YASA還包括幾個附加功能,如睡眠紡錘波和慢波的自動檢測、自動偽影抑制、從催眠圖計算睡眠統計數據、譜功率估計(例如,圖3B)和相位幅值耦合。然而,使用基本的睡眠階段模塊完全不是基于想要量化這些指標。簡單地說,如果用戶希望的話,它們可以作為軟件套件中的附加工具提供。YASA附帶大量文檔,并在BSD-3條款許可下發布,這是開源計劃的一部分,可以通過Python包索引存儲庫中的一行簡單代碼直接安裝(在終端:pip install YASA)。YASA的源代碼在GitHub上是免費和公開的,用戶可以選擇忽略最新的版本,而保留代碼和登臺算法的特定版本,這對于例如,在縱向研究中,預處理和分析步驟應該隨著時間保持一致。下面描述執行自動睡眠分期的一般工作流程。此外,作者提供了在單個歐洲數據格式(EDF)文件(圖3 -圖補充1)或在包含多個EDF文件的文件夾(圖3 -圖補充2)上展示算法最簡單用法的代碼片段。首先,用戶將PSG數據加載到Python中。假設PSG數據存儲在金標準EDF中,這可以使用MNE包在一行代碼中完成,該包有一個專門的功能來加載EDF文件。第二,自動睡眠分期使用算法的睡眠分期模塊執行。唯一的要求是用戶指定他們想要應用檢測的EEG通道的名稱(優先是一個中心推導,如C4-M1)。該算法現在已經準備好對數據進行分級。如果用戶愿意,可以選擇命名EOG和EMG通道(首選下巴EMG)。如果需要的話,用戶還可以包含輔助信息,例如年齡和性別,這有助于提高算法的準確性,盡管這對于高精確度完全不是必需的(如前所述)。對于算法的處理步驟,睡眠階段是通過“預測”功能執行的。該函數自動識別并加載預先訓練的分類器,對應于用戶提供的傳感器/元數據的組合。雖然預訓練的分類器包含在算法中,但如果用戶愿意,他們可以定義自定義預訓練的分類器,這些分類器可以根據特定的用例進行定制。然而,再次強調,這只是為了使用的靈活性,并不是算法執行高精確度所必需的。順便說一句,這種靈活性還可以用于各種用例,例如,評分嚙齒類動物的睡眠數據,而不是人類的睡眠數據。除了階段評分之外,’ predict_proba '函數的實現為用戶提供了量化每個階段在每個epoch的概率確定性的能力。如果需要的話,這種概率確定性可以用來獲得一個置信度分數,盡管這對于用戶的標準睡眠階段來說也是不必要的(圖3C)。最后,如果用戶愿意,可以使用標準Python函數輕松地將預測的催眠圖和階段概率導出到文本或CSV文件中,但同樣不需要這樣做。自動化數據分析方法的一個局限性是,它們對計算量的要求很高,通常需要特定的昂貴的高端計算機系統。為了避免這種限制,當前算法通過利用Python中的高性能工具(例如Numpy的向量化和Numba編譯)設計為快速和高內存效率。因此,在一個基本的、基本標配的筆記本電腦上,一個以100赫茲采樣的一整晚PSG記錄通常在不到5秒的時間內處理完畢。
圖3 一個主題的數據和睡眠階段預測的例子。(A)健康年輕女性的預測和真實(=人類評分)催眠圖(CFS數據集,24歲,黑人,呼吸暫停-低通氣指數[AHI] <1).兩者評分的一致性為94.3%。(B)中樞腦電圖(EEG)通道對應的通宵頻譜圖。暖色表示這些頻率的能量更高。這種類型的圖可以用來很容易地識別整個睡眠結構。例如,頻率低于5hz的高功率時期很可能表明深度非快速眼動(NREM)睡眠。?算法對每個睡眠階段在每30秒的預測累積概率。黑線表示算法的置信度。請注意,在軟件中可以很容易地繪制該圖中的所有圖形。本文的在線版本包括以下圖3的圖補充:圖補充1。演示算法最簡單用法的代碼片段。圖2的補充。說明在多個歐洲數據格式(EDF)文件上使用該算法的代碼片段
討論
作者試圖開發一種睡眠分期算法(1)與人類評分者的準確性相匹配,(2)在大型異構數據集上進行了訓練,(3)容易被大多數人實現,(4)計算需求低,因此可以在基本的筆記本電腦上運行,(5)完全免費,因此很容易被研究人員、臨床醫生和商業企業采用。
表現
該算法顯示出高水平的準確性,與觀察到的人類評分者之間的一致。對比兩種最新的深度學習算法表明,在精確性上YASA與共識評分的對比與現有的兩種健康成人算法相同(即,在統計上沒有差異)。然而,YASA在OSA患者中的表現比Perslev等人的2021算法差2.4%(如“局限性和未來方向”部分所述)。
對于個體的睡眠階段,該算法對N2睡眠、N3睡眠、REM睡眠和覺醒表現出良好的分類性能,對N1睡眠的一致性中等。這些結果與人類評估者間的一致性一致,即與其他睡眠階段相比,N1睡眠階段的評估者間一致性較低。此外,該算法成功地保留了整晚睡眠階段的總體分布,從而既不會高估也不會低估特定的睡眠階段。除了基本睡眠階段分類之外,該算法的一個優勢是能夠為每個階段的每個單獨時期提供概率(即似然)值。這些概率告訴用戶算法的置信度。因此,該算法為睡眠評分提供了一個獨特的特征,它超越了睡眠分期的量化和睡眠分期的定性評估。證明了這一測量的有效性,該算法的準確性在標記為高可信的時期具有統計學上的優勢,與人類評分達到了約95%的一致性。
普適性
算法的能力和效用不僅取決于其準確性,還取決于用于訓練和驗證的基礎數據集的特征。作者在多個獨立的異構數據集中,對近4000個夜晚超過30,000小時的PSG人類睡眠記錄進行了訓練和評估。這些數據集包括了來自廣泛年齡范圍、不同地理位置、種族、性別、身體成分、健康狀況和睡眠障礙的參與者。重要的是,這些獨立研究涉及不同的記錄設備和設置(如蒙太奇、采樣率)。這種高度的異質性對于保證算法的高可靠性和通用性至關重要。調節因子分析表明,該算法的性能不受性別和身體成分的影響。此外,算法的內置靈活性允許使用不同通道的組合,應該是用戶希望的。該算法不僅具有廣泛的實用性,而且有助于研究的工作的復制,并與現有和未來的工作進行比較。
易于使用,計算需求低
為了促進睡眠界的廣泛采用,任何算法都能被相關各方(例如學生、研究人員、臨床醫師、技術人員)使用和理解,無論其專業技術水平如何,這一點至關重要。為了確保這一點,軟件的構建特別注重易用性、文檔化和透明度。首先,端到端睡眠-分期管道可以用不到10行Python代碼編寫,軟件自帶預訓練的分類器,根據所使用的通道組合自動選擇,從而限制任何錯誤的風險。其次,該軟件有廣泛的文檔,包括大量的示例數據集,允許任何用戶在將其應用到自己的數據集之前熟悉算法,如果他們希望(盡管這不是必要的)。第三,該算法使用傳統的基于特征的方法來分類睡眠階段,而不是黑箱算法。這些特征在算法的文檔和源代碼中詳細描述,并可以解釋給任何研究人員或臨床醫生在lay術語。最后,睡眠分期是在用戶的計算機上本地完成的,數據從未上傳到云或任何外部服務器,從而限制了安全和隱私風險,以及使用軟件時對任何連接的需求。
局限性和未來方向
盡管該算法有許多優點,但也有必須考慮的局限性。下面將討論這些問題,以及未來改進算法的思路。首先,雖然在健康成人中,YASA相對于共識評分的準確性與Stephansen等人,2018和Perslev等人,2021算法無顯著差異,但在OSA患者中,YASA算法顯著低于后者。Perslev等人2021年的算法使用了所有可用的EEG和兩個(雙側)EOG,而YASA的評分是基于一個中央EEG、一個EOG和一個EMG。這表明,提高這一人群表現的一種方法可能是納入更多的腦電通道和/或雙側eog。例如,使用雙側eog的負積可能會增加對REM睡眠期快速眼球運動或N1睡眠期緩慢眼球運動的敏感性。其次,目前算法廣泛采用的一個障礙是缺乏圖形用戶界面(GUI)。設計和維護開源跨平臺GUI本身就是一項艱巨的任務,需要專門的資金和軟件工程師。相反,為了促進將YASA的輸出集成到現有的睡眠gui,已經做出了大量的努力。具體來說,該算法的文檔包括如何在EDFBrowser、Visbrain和SleepTrip等幾個免費gui中加載和編輯睡眠評分的示例。第三,在整晚PSG記錄中對該算法進行測試和評估。因此,它在短時間錄音(如白天小睡)中的表現尚不清楚。因此,需要對該算法進行進一步的測試,以驗證該算法在小睡中的有效性。雖然YASA可以處理任意長度的輸入數據,但如果數據小于該算法使用的最長平滑窗口(即小于7.5分鐘),則性能可能會降低。
第四,不同于其他基于深度學習的算法,該算法目前不具備在較短分辨率下評分的能力。第五,該算法目前無法識別常見睡眠障礙的標志物(如睡眠呼吸暫停、腿部運動),因此可能不適合用于臨床目的。但需要注意的是,我們的軟件確實包括了量化睡眠期間的階段性事件(慢波、紡錘波、快速眼動、偽影)以及睡眠圖的片段化功能。因此,YASA可能為加速PSG記錄的臨床評分提供一個有幫助的起點,而不是取代臨床醫生的關鍵專業知識。此外,該軟件的未來發展應該優先考慮臨床疾病的自動評分,特別是呼吸暫停低通氣事件。
最后一個局限性是該算法是針對人類數據定制的。因此,那些想要使用YASA對人類顱內數據、動物數據,甚至來自特定人群的人類數據進行評分的人將需要根據自己的需求調整算法。算法可以在兩個級別上進行修改。首先,個體可能希望在不改變潛在特征的情況下,對特定人群重新訓練分類器。這種靈活性是由算法本身支持的,不需要修改YASA的原始源代碼。然而,在某些情況下,可能還需要修改特征,以捕獲輸入數據的不同方面和動態(例如,嚙齒動物或人類顱內數據)。
與現有工具相比,YASA的優勢
盡管人工智能的最新進展已經使許多醫學領域的繁瑣工作自動化成為可能,但睡眠研究領域仍然依賴于人類的視覺評分,這一過程耗時且容易產生主觀偏見。作者認為,阻礙自動睡眠分期廣泛應用的一個障礙是每年發布的算法的數量,其中大多數算法實際上是無法與其他算法相比的,因為它們使用不同的測試數據集和/或不同的評估策略。除了高準確性之外,YASA還有一些值得潛在用戶考慮的獨特優勢。
首先,與絕大多數現有算法不同,YASA的設計目的并不是將睡眠進行分期,而是作為一個廣泛的工具箱,涵蓋了睡眠研究人員和臨床醫師使用的絕大多數分析。這包括:(1)從睡眠圖中計算睡眠統計數據,(2)自動檢測睡眠期間的相位事件(如紡錘波、慢波、快速眼動和身體運動),(3)光譜分析,以及(4)更復雜和新穎的分析方法,包括事件鎖定交叉頻率耦合以及將睡眠功率譜分解為非周期性和振蕩成分。與現有算法相比,YASA的第二個優勢是處理速度。事實上,YASA比Stephansen等人2018年的算法快了幾個數量級(約10-20 s vs. 10-20分鐘,包括數據加載)。值得注意的是,雖然Perslev等人2021算法的計算速度較快,但將EDF文件上傳到web服務器可能很慢,而且對于敏感的臨床數據來說也不夠。雖然在處理時間上的這些差異對于小型研究可能不是問題,但當處理數百個記錄時,它們可以顯著擴大。第三,只有少數人擁有修改和再訓練復雜的深度學習神經網絡架構所需的技術技能和/或硬件,具有Python基本知識的人可以很容易地修改核心YASA算法,并且在不超過幾個小時的時間內,可以在任何基本的筆記本電腦上訓練完整的模型。
結論
在過去十年中,人們對量化和追蹤人類睡眠的興趣呈指數級增長,對高度自動化、準確、高速和易于實現的人類睡眠評分算法的需求也有類似的增長。在這里,作者提供了一種算法,旨在實現這一需求。希望它能成為一種可以通過跨協作的開源社區開發來建立、擴展和完善的行業標準方法。
材料和方法
數據集
該算法在來自NSRR的大規模獨立數據集上訓練(https://sleepdata. org/)。該數據庫提供了在研究隊列和臨床試驗中收集的大量去識別生理信號和臨床數據。所有PSG記錄由經過培訓的技師根據標準AASM指南進行評分,有關數據集的完整描述可以在https://sleepdataorg/上找到。文中使用了以下數據集。
MESA
MESA是一項多中心縱向研究,在2000—2002年的6,814名黑種人、白種人、西班牙語裔和華裔美國男性和女性中,對與亞臨床心血管疾病發生和亞臨床向臨床心血管疾病進展相關的因素進行了研究,基線時年齡為45 ~ 84歲。于末次隨訪時采集整晚PSG記錄2010年至2012年,共納入2,237名研究對象(年齡范圍= 54 ~ 95歲)。家庭PSG使用Compumedics Somte系統(Compumedics Ltd, Abbotsford, Australia)進行。記錄內容包括三個皮質EEG(中央C4-M1、枕部Oz-Cz和額部Fz-Cz導聯)、雙側EOG、頦EMG以及用于測量心率、呼吸和腿部運動的其他幾個傳感器。PSG數據采集頻率為256 Hz,記錄時采用硬件低通濾波器,截止頻率為100 Hz。
CFS
CFS是一項以家庭為基礎的睡眠呼吸暫停研究,包括來自361個家庭的2284名個體(46%為非洲裔美國人),在16年期間進行了多達4次研究。采用前次檢查(第5次訪視,735例,年齡6 ~ 88歲)的整夜PSG記錄。采用Compumedics E-Series系統進行室內多導睡眠監測。記錄內容包括雙側皮質腦電圖(C3-Fpz、C4-Fpz)、雙側眼電圖(EOG)和頦肌電圖(EMG)。EEG和EOG通道采樣頻率為128 Hz, EMG通道采樣頻率為256 Hz。記錄時使用截止頻率為0.016 Hz和105 Hz的硬件帶通濾波器。
CCSHS
CCSHS是一項以人群為基礎的、具有客觀睡眠評估的兒科研究,具有較大的少數群體代表性。我們使用了最近一次訪視(2006—2010年),包括實驗室PSG (n = 517,年齡范圍= 16 ~ 19歲)。PSG記錄(Compumedics E-series, Compumedics)包括兩個皮層EEG (C3-Fpz和C4-Fpz)、雙側EOG和頦肌電圖。所有通道采樣頻率為128 Hz,記錄時采用硬件高通濾波器,截止頻率為0.15 Hz。
SHHS
SHHS是一項多中心隊列研究,旨在確定睡眠呼吸障礙的心血管和其他后果。我們只納入了1995 ~ 1998年的第一次訪視,并納入了5,804名參與者(年齡范圍= 40 ~ 89歲)的完整實驗室PSG。PSG記錄(Compumedics P-Series, Compumedics)包括兩個皮層EEG (C3-M2和C4-M1)、雙側EOG和頦肌電。所有通道采樣頻率為125 Hz,記錄時采用硬件高通濾波器,截止頻率為0.15 Hz。
MrOS
MrOS是一項納入5,994名男性的多中心觀察性研究,其中睡眠研究是一項隨訪輔助研究。我們收集了2907名參與者(年齡范圍為65-89歲)的夜間PSG記錄,約占家長研究參與者的一半。PSG記錄(Compumedics P-Series, Compumedics)包括雙側皮質EEG (C3-Fpz和C4-Fpz)、雙側EOG和頦EMG。所有通道采樣頻率為256 Hz,記錄時采用硬件高通濾波器,截止頻率為0.15 Hz。
CHAT
CHAT是一項多中心、單盲、隨機對照試驗,旨在檢驗在7個月觀察期后,隨機接受早期腺樣體扁桃體切除術的5 ~ 9.9歲輕度至中度OSA兒童是否會表現出更高水平的神經認知功能。本研究于2007年至2012年收集了1447例受試者(年齡5 ~ 9.9歲)的整夜PSG記錄,其中464例隨機接受治療。PSG記錄包括8個皮層腦電圖(包括C3-Fpz和C4-Fpz)、雙側眼電圖和頦肌電圖。所有通道采樣頻率均為200 Hz。
HomePAP
HomePAP是一項多中心、隨機對照試驗,納入了373例患者(年齡范圍= 20 ~ 80歲),中重度OSA的驗前概率高。采用室內多導睡眠圖(PSG)記錄,包括6個皮層腦電圖(C3-Fpz和C4-Fpz)、雙側眼電圖和頦肌電圖。所有通道采樣頻率均為200 Hz。
每個數據集被隨機分為訓練集(最多600晚)和測試集(最多100晚)。納入訓練集的PSG夜用于建模和訓練,納入測試集的PSG夜用于性能評估。重要的是,訓練集和測試集是完全獨立的(即沒有重疊)。用于生成訓練集和測試集的代碼可以在這里找到。我們還提供了每個數據集的人口統計學和健康數據,如年齡、性別、種族/民族、BMI、AHI(3%減飽和)以及失眠、抑郁、糖尿病和高血壓的醫學診斷。為了在全新的數據集上對模型進行無偏向評估,我們進一步在DOD (Guillot等人,2020年)上測試了該算法的性能。DOD是一個公開的數據集,包括健康個體(DOD- healthy)和OSA患者(DOD- obstructive)。
DOD-Healthy
DOD-Healthy由25名在法國武裝部隊生物醫學研究所疲勞和警戒單位招募的健康志愿者組成。參與者無睡眠抱怨,年齡18 ~ 65歲,招募時不考慮性別或民族。采用美國Compumedics公司的午睡多導睡眠監測設備(Siesta PSG)進行PSG記錄,包括12個導EEG (C3/M2、F4/ M1、F3/F4、F3/M2、F4/O2、F3/O1、FP1/F3、FP1/M2、FP1/O1、FP2/F4、FP2/M1、FP2/O2)、1個EMG和雙側eog,采樣頻率均為250 Hz。
DOD-Obstructive
DOD-Obstructive包括55例臨床懷疑睡眠相關呼吸障礙的患者。PSG在美國斯坦福睡眠醫學中心進行(臨床試驗NCT03657329)。臨床診斷為OSA以外的睡眠障礙、患有病態肥胖、服用睡眠藥物或有某些心肺或神經合并癥的個體被排除在研究之外。采用美國Compumedics公司的午睡多導睡眠監測設備(Siesta PSG)進行PSG記錄,包括8個腦電信號(C3/M2、C4/M1、F3/F4、F3/M2、F4/O2、F3/O1、O1/M2、O2/M1)、1個肌電圖和雙側眼電圖,采樣頻率均為250 Hz。國防部數據集未提供個體水平的人口統計學和病史;年齡、BMI和AHI的組平均值來自Guillot等人,2020年。重要的是,DOD沒有夜晚用于模型訓練。由5名臨床專家對DOD的每晚進行評分,從而將算法的性能與人工評分者的共識進行比較(見“共識評分”部分)。
預處理和特征提取
對于每一晚的PSG提取了單次中樞EEG、左側EOG和頦EMG。選擇了中樞EEG(例如C4-M1或C4-Fpz,取決于數據集),因為美國睡眠醫學學會(American Academy of Sleep Medicine, AASM)建議將中樞EEG納入所有PSG記錄,因此中樞EEG更有可能出現在各種PSG記錄中。然后將這些信號降采樣到100 Hz以加快計算時間,并在0.40 Hz和30 Hz之間進行帶通濾波。在運行睡眠分期算法之前,未對PSG數據進行偽影去除。這種分類算法基于一種機器學習方法,從腦電圖信號中提取一組“特征”,也可以從眼電圖和肌電圖信號中提取一組“特征”。與人類睡眠分期一致,原始數據的每30秒周期都計算特征。所有用于計算這些特性的代碼都是開源的,并免費提供給所有人(參見“數據和代碼可用性”部分)。最終模型中包含的功能的完整列表可以在補充文件4中找到。
時域特征
所實現的時域特征包括標準描述性統計量,即信號的標準差、四分位距、偏度和峰度。此外,還計算了一些非線性特征,包括過零次數、遷移和復雜性的Hjorth參數(Hjorth, 1970)、排列熵和分形維數。
頻域特征
從信號的周期圖中計算頻域特征,使用Welch 's方法(Welch, 1967)計算每30秒的周期(5秒的漢明窗,50%重疊[= 0.20 Hz分辨率],中值平均,以限制偽影的影響)。特征包括特定波段的相對頻譜功率(慢= 0.4-1 Hz, δ = 1-4 Hz, θ = 4-8 Hz, α = 8-12 Hz, σ = 12-16 Hz, β = 16-30 Hz),寬帶信號的絕對功率,以及功率比(δ / θ, δ / σ, δ / β, α / θ)。
平滑與標準化
在給睡眠評分時,人類專家經常依賴于上下文信息,比如當前被評分時期的之前和未來(即,最后幾分鐘的主要睡眠階段是什么,下一個階段是什么)。相比之下,基于特征的算法通常一次處理一個時代,獨立于過去和未來的時代,忽略了這種上下文時間信息。為了克服這一限制,當前算法實現了一種涵蓋上述所有特征的平滑方法。特別地,首先對特征進行復制,然后使用兩個不同的滾動窗口進行平滑:(1)以7.5分鐘為中心的三角加權滾動平均(即以當前epoch為中心的15個epoch,其權重為:[0.125,0.25,0.375,0.5,0.625,0.75,0.875,1]。, 0.875, 0.75, 0.625, 0.5, 0.375, 0.25, 0.125]),以及(2)當前epoch之前最近2分鐘的滾動平均值。通過交叉驗證方法找到了這兩個滾動窗口的最佳時間長度(補充文件3a)。重要的是,腦電圖腦波活動存在顯著的個體間自然變異(Buckelmüller等人,2006;De Gennaro et al., 2008),這意味著每個個體都有獨特的腦電圖指紋。為了考慮到這一點,所有經過平滑處理的特征在每晚都被進行z評分,也就是說,以偏離當晚平均值的方式表示。包含這些歸一化特征有助于適應個體間可變性對算法的潛在錯誤影響,從而提高最終的精度。最終的模型包括原始單元中基于30的特性(沒有平滑或縮放),以及這些原始特性的平滑和規范化版本。原始特征被包括進來,以增加時間特異性,并保持絕對值,可以在個體間進行比較,而不考慮個體間的變異。最后,特征集包括從夜晚開始的時間,標準化從0到1。這很重要地解釋了整個晚上睡眠階段的不對稱性,也就是說,深度非快速眼動睡眠在前半夜占主導地位,相反,快速眼動睡眠和較淺的非快速眼動睡眠在后半夜占主導地位。如果需要,用戶還可以添加有關參與者特征的信息,如已知會影響睡眠階段的年齡和性別(見“結果”;Carrier et al., 2001;Ohayon et al., 2004),分類器隨后在分期過程中將其考慮在內。
機器學習分類
然后,使用LightGBM分類器(Ke等人,2017)對完整的訓練數據集進行擬合,這是一種基于樹的梯度提升分類器,使用以下超參數:500個估計量,最大樹深度為5,每樹的最大葉片數為90,以及在構建每棵樹時隨機選擇的所有特征的60%的一部分。這些參數的選擇是為了防止分類器的過擬合,損失函數定義為
acctest和acctrain分別是交叉驗證測試/訓練的平均準確率。換句話說,最好的超參數集必須最大化交叉驗證的準確性,同時也要最小化訓練集和測試集之間的準確性差異。然而,為了保持最佳性能,后者的權重是前者的4倍。此外,我們將定制的睡眠階段權重傳遞給分類器,以限制整個夜間睡眠階段比例的不平衡。如果沒有這樣的權重,分類器將傾向于代表最多的睡眠階段(N2,一個典型夜晚的~50%),相反,很少選擇代表最少的睡眠階段(N1, ~5%)。通過在全訓練集上進行交叉驗證的參數搜索,以準確率和f1評分的平均值作為優化指標,找到最佳權重。共檢驗了324種可能的類別權重組合。參數空間定義為N1: [1.6, 1.8, 2, 2.2], N2: [0.8, 0.9, 1], N3/REM/Wake:[1, 1.2, 1.4]的笛卡爾積。N1的最佳權重為2.2,N2和Wake的最佳權重為1,N3的最佳權重為1.2,REM的最佳權重為1.4。在這里可以找到用于網格搜索最佳類權重的Python代碼。然后將預訓練的分類器導出為壓縮文件(約2 MB),用于預測(1)測試集每個晚上的完整睡眠圖,以及(2)每個30 s時期每個睡眠階段的相關概率。
表現評估
對于每個單獨的測試夜,作者逐個評估了人類評分(被認為是地面真實值)和算法預測之間的一致性。評價指標包括準確性(即正確分類的時間的百分比)、Cohen 's kappa(考慮到偶然發生一致的可能性的更穩健的評分)和Matthews相關系數。后者被認為是最穩健和信息量最大的分類評分,因為它自然地考慮到了睡眠階段之間的不平衡。對于上述指標,數值越高,準確度一致性越高。除非特別說明,否則我們將報告包括1次EEG、1次EOG、1次EMG的完整模型的性能,以及參與者的年齡和性別。此外,為了衡量各階段的表現,我們分別報告了每個階段的混淆矩陣和f1評分。f1評分定義為精確度和靈敏度的調和平均值。簡而言之,精確度是對預測質量的衡量(例如,算法分類為REM睡眠的所有時期中,在人類評分中實際被標記為REM睡眠的比例),而敏感性是對預測數量的衡量(例如,在人類評分中被標記為REM睡眠的所有時期中,在算法被正確分類為REM睡眠的比例)。由于f1評分是精確度和靈敏度的平均值,因此它是算法性能的最佳度量,可以對每個睡眠階段獨立計算。較高的值表示較高的性能。此外,作者還進行了差異分析,以檢驗該算法是否存在高估或低估特定睡眠階段的系統性偏倚。最后,我們進行了調節因子分析,以測試該算法是否在不同年齡、性別和健康狀況的參與者中保持了高水平的性能。
一致性評分
DOD的每個夜晚都由五位獨立的專家打分。通過對每個時期采取投票最多的階段,因此有可能建立一個共識睡眠圖,從而減少由評分者間的低一致性引起的偏倚。當在特定時期出現平局時,最可靠的評分者的睡眠評分被用作參考。對于給定的一夜,最可靠的得分者是與所有其他得分者平均一致率最高的得分者。作者還將每個人工評分者與基于N-1名剩余評分者(即排除當前評分者,Stephansen et al., 2018)的無偏倚共識進行了比較。在這里,N-1中最可靠的得分者被用于平局的情況下。
與現有算法對比
作者又進一步測試了當前算法(YASA)與最近開發的兩種睡眠分期算法(Stephansen等人,2018和Perslev等人,2021算法)的性能。這兩種算法都是基于深度學習方法,并在GitHub上公開。這兩種算法被應用于DOD數據集的所有夜晚,使用相同的原始數據來測試當前的算法。與YASA類似,Stephansen等人(2018年)和Perslev等人(2021年)的算法在其訓練集中未包括國防部的任何夜晚,因此確保了無偏倚比較。兩種算法之間的唯一差異是算法用于預測睡眠階段的通道的選擇。雖然YASA只使用單個EEG(中央)、一個EOG和一個EMG,但Stephansen等人(2018年)和Perslev等人(2021年)的算法均使用兩個EOG (LOC和ROC)以及幾個EEG通道進行了測試。對于所有三種算法,基本事實是所有五名人類專家的一致評分。分別對健康個體(DOD-Healthy)和oOSA患者(DOD-Obstructive)的結果進行評估。統計學比較使用雙側配對t檢驗進行,使用Holm方法進行多重比較校正。
特征重要性
使用Shapley加性解釋算法(Shapley Additive explain algorithm;Lundberg等人,2020)。起源于博弈論的Shapley值具有幾個令人滿意的特性,使其成為評估機器學習中特征貢獻的最優方法。形式上,Shapley值是特征值在所有可能的特征組合中的平均邊際貢獻。作者首先計算所有時期的絕對Shapley值,然后計算所有睡眠階段的平均Shapley值,從而得出每個特征的單一重要性評分。
補充文件
?補充文件1 DOD-Healthy驗證數據集每晚的自動算法預測。準確率指的是算法與人類共識評分的一致性百分比。夜的排列順序是由高到低的一致性的YASA和共識評分。
?補充文件2。DOD-Obstructive驗證數據集每晚的自動化算法預測準確率指的是算法與人類共識評分的一致性百分比。夜的排列順序是由高到低的一致性的YASA和共識評分。
?補充文件3 (A)特征時間平滑的最佳時間長度的交叉驗證。共測試49種過去和中心滾動窗組合,定義為過去滾動平均時間長度[無,1 min, 2 min, 3 min, 5 min, 7 min, 9 min]和中心滾動加權平均時間長度[無,1.5 min, 2.5 min, 3.5 min, 5.5 min, 7.5 min, 9.5 min]的笛卡爾積,其中無表示未使用滾動窗。交叉驗證在完整的訓練集上進行,并按夜間分層,即訓練集和驗證集中都有多導睡眠圖(PSG)監測,但不能同時出現在訓練集和驗證集中。在速度方面,分類算法只使用了50棵樹。“平均數”列是準確度和五個f1分數的平均值。請注意,排名第二的組合(以9.5分鐘為中心)的平均分數略高;然而,我們選擇在最終模型中使用7.5分鐘中心窗口(秩1),因為N2、N3和快速眼動(REM)睡眠的f1評分較高。(B)準確性變異性的貢獻者。使用隨機森林從測試集1中估計n = 585個夜晚的相對重要性(%)。模型的結局變量為每晚分別計算的YASA與地面真實睡眠分期的準確性評分。
?補充文件4從多導睡眠圖記錄的第一個樣本開始,計算整個夜間連續30 s的所有特征。重要的是,該算法使用了所有時域和頻域特征的三個不同版本:(1)原始特征,以原始數據單位表示(例如,標準差和四分位距的μV);(2)該特征的平滑和歸一化版本,使用7.5分鐘三角加權滾動平均;(3)該特征的平滑和歸一化版本,使用過去2分鐘滾動平均。使用基于5 ~ 95%百分位數的穩健方法在每晚平滑后進行歸一化。頻域特征是基于Welch的5 s窗口(= 0.2 Hz分辨率)的周期圖。
數據可用性
所有的多導睡眠監測數據都可以從NSRR網站(http:// sleepdata. org)獲得。DOD數據集可以在https:// github. com/ Dreem- Organization/ dreem- learning- open。算法的源代碼和文檔可在https:// github. com/ raphaelvallat/Yasa獲取。重現本文所有結果和圖形的Python代碼可以在https://github. com/ raphaelvallat/ yasa_ classifier找到。所有分析均在Python 3.8中使用scikit-learn 0.24.2和lightgbm 3.2.1進行。
參考文獻:An open-source, high-performance tool for automated sleep staging
總結
以上是生活随笔為你收集整理的eLife:一个开源、高性能的自动睡眠分期工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何软件自动生成延时函数
- 下一篇: 睡眠监测中的一些术语和指标(AASM)