我的同事杰里米·阿什( @杰里米阿什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 。给我发一封电子邮件,我们可以安排一些事情来讨论。
再次感谢你,
账单