我的同事傑里米·阿什( @傑里米阿什JMP )並且我意識到分析光譜數據有許多細微差別和潛在的陷阱,這些細微差別最多可能使分析變得困難和混亂。 因此,我們想撰寫此博客系列來描述如何使用 JMP 軟件導入、可視化、清理和分析光譜數據。
為了讓您更輕鬆地在自己的數據上嘗試其中一些步驟,我們創建了光譜工具插件,您可以在 JMP 社區中了解更多信息並下載。 這是一個簡單的插件,可以簡化本博客文章中討論的一些數據導入和可視化方法。 它只是一個原型,只是為光譜數據提供一些方便的功能的第一步。 您可以在此博客文章的評論或加載項頁面上向我們提供反饋。
在這篇文章中,我們正在分析 Martens 等人的近紅外數據集。 ”通過擴展乘法信號校正分離光散射和光吸光度。 粉末混合物近紅外透射分析的應用”分析化學2003 年 2 月 1 日;75(3):394-404。 我們將展示預處理如何提高數據的整體質量,並讓您在本例中更清楚地看到基於成分比例的分組。
導入光譜
導入光譜時,光譜工具插件假定每個光譜位於單個目錄中的單獨文件中。 光譜可以位於帶分隔符的文本文件(例如 .csv 或 .tsv)或 JCAMP-DX 文件中。 僅支持不帶壓縮的 JCAMP-DX。 堆疊格式是 Spectra Tools 中的默認數據表格式。 您還可以導入寬格式的文件。 在這篇博文中,我們最常使用堆疊格式,但一些預處理步驟需要寬格式。 您可以使用 JMP 表格菜單中的堆疊和拆分命令在堆疊格式和寬格式之間進行轉換。
數據可視化
與任何新數據一樣,一旦您將其輸入您選擇的分析軟件,我們強烈建議您可視化數據的狀態,並在完成任何預處理後定期與第一眼進行比較。 在聯合管理計劃,我們使用 Graph Builder 平台來幫助可視化。
圖 1 顯示了 Graph Builder 中光譜的線圖。 使用堆疊格式的數據,將 X 和 Y 變量拖動到各自的軸,並使用光譜 ID 作為疊加變量。 或者,您可以使用 Spectra Tools 中的 Launch Graph Builder 命令。 對於顏色變量,我們使用感興趣的響應變量,即麩質含量。
Figure 1. Spectra line plot in Graph Builder with spectra colored by gluten content.Figure 1. Spectra line plot in Graph Builder with spectra colored by gluten content.Figure 1. Spectra line plot in Graph Builder with spectra colored by gluten content.Figure 1. Spectra line plot in Graph Builder with spectra colored by gluten content.圖1。 圖形生成器中的光譜線圖,其中光譜按麩質含量著色。
要放大感興趣區域 (ROI),請單擊並拖動 X 軸。 您可以在紅色小三角菜單中為其他一些有用的控件創建本地數據過濾器。 這是光譜工具中默認提供的。 這些顯示在圖 1 的左側。 波長局部數據濾波器可用於聚焦感興趣區域 (ROI)。 要僅為 ROI 數據創建新數據表,請轉到本地數據過濾器紅色小三角並選擇顯示子集。 此外,要僅在圖表上顯示光譜的子集,請在光譜 ID 本地數據過濾器中選擇光譜。 您還可以使用動畫控件一次循環瀏覽一個光譜。
對於更複雜的選擇(例如多個 ROI),您可以將光譜繪製為點並選擇感興趣的點。 表菜單中的子集命令可用於創建僅包含 ROI 數據的數據表。
關於圖形生成器需要記住的一件重要事情是,一旦按照您想要的方式完成圖形設置,您就可以將腳本保存到數據表中,以便可以使用新數據輕鬆地重新創建相同的圖形。 例如,您可能希望在比較預處理前後的光譜時重新創建圖表。 比較預處理前後光譜的另一個選項是使用光譜工具中的啟動圖形生成器命令。
另外,新進JMP 16在圖形生成器中,Savitzky-Golay (SG) 平滑可用作初始預處理步驟(圖 2)。 選擇調整參數後,您可以輸出平滑後的數據。 轉到更平滑的紅色三角形並選擇“保存公式”。 請注意,這將要求您的波長是連續變量(如果需要使用“列屬性”,您可以修改變量類型)。
Figure 2. Savitzky-Golay smoothed spectra in Graph Builder.Figure 2. Savitzky-Golay smoothed spectra in Graph Builder.Figure 2. Savitzky-Golay smoothed spectra in Graph Builder.Figure 2. Savitzky-Golay smoothed spectra in Graph Builder.圖 2. Savitzky-Golay 在圖形生成器中平滑了光譜。
在圖形生成器中,還有其他平滑方法(例如平滑樣條曲線和 LOESS),您可能還想嘗試一下。 更平滑的紅色小三角菜單中還有替代權重函數。 其中許多選項是 JMP 16 中新添加的。
可以在圖形生成器中訪問量化光譜質量的其他匯總測量。 要創建這些,請刪除覆蓋變量,以便顯示平均光譜。 然後,選擇條形圖和箱形圖選項將生成圖 3 中的圖。 波長范圍內恆定的變化通常表明噪聲,並且需要進一步預處理,而特定於某些波長的較大變化可能表明真正的化學效應。
Figure 3. Visualization of spectra variation in Graph Builder. (Top) Mean absorbance barplots at each wavelength with standard error. (Bottom) Absorbance boxplots at each wavelength.Figure 3. Visualization of spectra variation in Graph Builder. (Top) Mean absorbance barplots at each wavelength with standard error. (Bottom) Absorbance boxplots at each wavelength.Figure 3. Visualization of spectra variation in Graph Builder. (Top) Mean absorbance barplots at each wavelength with standard error. (Bottom) Absorbance boxplots at each wavelength.Figure 3. Visualization of spectra variation in Graph Builder. (Top) Mean absorbance barplots at each wavelength with standard error. (Bottom) Absorbance boxplots at each wavelength.圖 3. 圖形生成器中光譜變化的可視化。(上)每個波長的平均吸光度條形圖以及標準誤差。 (底部)每個波長的吸光度箱線圖。
如果數據為寬格式,另一種有用的繪圖類型是平行圖(圖 4)。 如果您在需要寬格式的其他平台(例如 PCA、PLS 或其他預測建模平台)中分析光譜,這尤其有用。 在平行圖中選擇光譜將突出顯示其他平台中的相應行:
Figure 4. Graph Builder parallel plot of spectra colored by gluten content.Figure 4. Graph Builder parallel plot of spectra colored by gluten content.Figure 4. Graph Builder parallel plot of spectra colored by gluten content.Figure 4. Graph Builder parallel plot of spectra colored by gluten content.圖 4. 圖形生成器按麩質含量著色的光譜平行圖。
預處理
分析光譜數據的主要障礙之一是需要復雜的數據預處理。 我們將展示如何使用 Savitsky-Golay 導數過濾插件和標準正態變量 (SNV) 散點校正公式來“清理”您的數據,使其更易於解釋,並最終允許您構建更可靠的預測模型。
第一步,我們將消除光譜中明顯的基線偏移。 為此,我們使用 Ian Cox 開發的 SG 數據過濾插件(請參閱下面這篇文章所附的插件)。 這將只接受寬格式的數據。 從 JMP 中已安裝的插件列表中選擇“數據過濾”插件。 選擇要操作的列並選擇“確定”。 將彈出三個輸出圖表以供查看。
SG 更平滑的用戶界面是擬合多項式階數的位置,2 – 8)定義了,並且還定義了平滑窗口的右邊緣和左邊緣的長度。 更改任何這些值都會自動更新圖表,因為導數是在 SG 平滑光譜上執行的。 由於導數濾波器會放大噪聲,因此通常需要一定程度的平滑。 圖 5 顯示了輸出圖。
Figure 5. (Top) Savitzky-Golay smoother, (Middle) first derivative filter, (Bottom) second derivative filter.Figure 5. (Top) Savitzky-Golay smoother, (Middle) first derivative filter, (Bottom) second derivative filter.Figure 5. (Top) Savitzky-Golay smoother, (Middle) first derivative filter, (Bottom) second derivative filter.Figure 5. (Top) Savitzky-Golay smoother, (Middle) first derivative filter, (Bottom) second derivative filter.圖 5. (上)Savitzky-Golay 平滑器,(中)一階導數濾波器,(下)二階導數濾波器。
過濾後的數據可以保存到新的數據表中,然後可以根據需要傳輸回原始數據表以進行進一步的預處理。 在這種情況下,選擇一階導數數據並將其保存回原始數據表。
這似乎有效地消除了基線偏移。 然而,光譜中仍然存在一些散射效應。 在視覺上區分散射效應和化學效應的一種方法是在圖形生成器中使用分組變量。 將麵筋含量變量移至組軸之一。 圖形生成器將找到合理的分箱並為每個分箱創建單獨的面板。 在這些數據中,我們只有 5 個麩質含量值。 散射效應仍然存在,因為一階導數消除了加性基線偏移,但沒有消除乘性散射效應。 我們將在下一篇博客文章中展示如何使用散點效應圖來說明乘性散點效應。
Figure 6. Spectra line plots with spectra separated by gluten content. Variation due to scatter effects can be seen in these plots.Figure 6. Spectra line plots with spectra separated by gluten content. Variation due to scatter effects can be seen in these plots.Figure 6. Spectra line plots with spectra separated by gluten content. Variation due to scatter effects can be seen in these plots.Figure 6. Spectra line plots with spectra separated by gluten content. Variation due to scatter effects can be seen in these plots.圖 6. 光譜線圖,其中光譜按麩質含量分開。在這些圖中可以看到由於散射效應而產生的變化。
為了消除剩餘的分散效應,我們執行 SNV 標準化。 SNV 要求數據採用堆疊格式。 我們創建一個新列並添加如圖 7 所示的公式。
Figure 7. Formula used to perform the SNV.Figure 7. Formula used to perform the SNV.Figure 7. Formula used to perform the SNV.Figure 7. Formula used to perform the SNV.圖 7. 用於執行 SNV 的公式。
原始光譜和最終的預處理光譜如圖 8 所示。 要輕鬆啟動此類繪圖,請使用 Spectra Tools 中的 Launch Graph Builder 命令。
這些簡單的步驟已經使光譜的解釋變得更加容易,並且消除了基線偏移和乘性散射效應。 在他們的原始論文中,Martens 等人。演示了更先進的擴展乘法信號校正如何進一步改進此預處理工作流程。 我們將在下一篇文章中介紹這一點。
Figure 8. Spectra before and after the pre-processing steps applied in this blog. (Top) Before pre-processing, (Middle) after Savitzky-Golay first derivative filter, (Bottom) after standard normal variate.Figure 8. Spectra before and after the pre-processing steps applied in this blog. (Top) Before pre-processing, (Middle) after Savitzky-Golay first derivative filter, (Bottom) after standard normal variate.Figure 8. Spectra before and after the pre-processing steps applied in this blog. (Top) Before pre-processing, (Middle) after Savitzky-Golay first derivative filter, (Bottom) after standard normal variate.Figure 8. Spectra before and after the pre-processing steps applied in this blog. (Top) Before pre-processing, (Middle) after Savitzky-Golay first derivative filter, (Bottom) after standard normal variate.圖 8. 本博客中應用的預處理步驟之前和之後的光譜。 (上)預處理之前,(中)Savitzky-Golay 一階導數濾波器之後,(下)標準正態變量之後。
未來的職位
我們計劃在本系列中再發表兩篇文章。 接下來將展示一些更高級的預處理方法,例如乘法散射校正和基線減法。
我們還將演示如何使用 Function Data Explorer 中的動態時間扭曲來對齊色譜圖。 最後一篇文章將 JMP 中的一些預測建模方法(例如 PCA、PLS 和廣義回歸)應用於預處理後的光譜。
嘗試其中一些方法,並讓我們知道它們如何處理您的數據!
你好邁克爾,
感謝您的客氣話,聽到您發現我們的博客很有用,這真是個好消息嗎?
我很高興向您展示如何將數據從堆疊格式轉換為寬格式,但我想讓您知道您可以以兩種格式進行所有相同的分析。
這完全取決於您如何對堆疊格式的數據進行分組。您可以使用“按”函數作為光譜名稱,也可以使用“新列公式”中的列格式來“分組依據”。無論如何,只需點擊幾下鼠標,我們就能帶您到達您想去的地方。
我的電子郵件地址是bill.worley@jmp.com 。給我發一封電子郵件,我們可以安排一些事情來討論。
再次感謝你,
賬單