Mi colega Jeremy Ash ( @JeremyAshJMP ) y me doy cuenta de que el análisis de datos espectroscópicos tiene muchos matices y peligros potenciales que pueden hacer que el análisis sea difícil y, en el mejor de los casos, confuso. Por eso queríamos escribir esta serie de blogs para describir cómo se pueden importar, visualizar, limpiar y analizar datos espectroscópicos con el software JMP.
Para que le resulte más fácil probar algunos de estos pasos con sus propios datos, hemos creado el Complemento de herramientas espectrales , sobre el cual puede obtener más información y descargar aquí en la Comunidad JMP. Este es un complemento simple que optimiza algunos de los métodos de visualización e importación de datos que se analizan en esta publicación de blog. Es sólo un prototipo y sólo un primer paso para proporcionar algunas funciones convenientes para datos espectrales. Puede enviarnos su opinión en los comentarios de esta publicación de blog o en la página del complemento.
En esta publicación, estamos analizando un conjunto de datos de infrarrojo cercano de Martens et al. " Dispersión de luz y absorbancia de luz separadas por corrección de señal multiplicativa extendida. Aplicación al análisis de transmisión de infrarrojo cercano de mezclas de polvos. " Química analítica 1 de febrero de 2003; 75 (3): 394-404. Mostraremos cómo el preprocesamiento mejora la calidad general de los datos y permite ver, en este caso, la agrupación basada en proporciones de constituyentes con mucha más claridad.
Importando espectros
Al importar espectros, el complemento Spectral Tools supone que cada espectro está en un archivo separado en un único directorio. Los espectros pueden estar en archivos de texto delimitados (.csv o .tsv, por ejemplo) o archivos JCAMP-DX. Sólo se admite JCAMP-DX sin compresión. El formato apilado es el formato de tabla de datos predeterminado en Spectra Tools. También puedes importar archivos en formato ancho. En esta publicación de blog, utilizamos con mayor frecuencia el formato apilado, pero algunos de los pasos de preprocesamiento requieren el formato ancho. Puede convertir entre formatos apilados y anchos usando los comandos Apilar y Dividir en el menú Tablas de JMP.
Visualización de datos
Al igual que con cualquier dato nuevo, una vez que lo incorpore al software de análisis de su elección, le recomendamos encarecidamente visualizar el estado de los datos y compararlos periódicamente con este primer vistazo después de realizar cualquier procesamiento previo. En JMP , utilizamos la plataforma Graph Builder para ayudar con la visualización.
La Figura 1 muestra un gráfico de líneas de los espectros en Graph Builder. Con sus datos en formato apilado, arrastre las variables X e Y a sus respectivos ejes y use el ID del espectro como variable de superposición. Alternativamente, puede utilizar el comando Iniciar Graph Builder en Spectra Tools. Para la variable color, utilizamos la variable respuesta de interés, que es el contenido de gluten.
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.Figura 1. Gráfico de líneas espectrales en Graph Builder con espectros coloreados según el contenido de gluten.
Para ampliar las regiones de interés (ROI), haga clic y arrastre el eje X. Puede crear un filtro de datos locales en el menú del triángulo rojo para obtener algunos otros controles útiles. Esto se proporciona de forma predeterminada en Spectral Tools. Estos se muestran a la izquierda de la Figura 1. El filtro de datos locales de longitud de onda se puede utilizar para centrarse en una región de interés (ROI). Para crear una nueva tabla de datos solo para los datos de ROI, vaya al triángulo rojo del filtro de datos local y seleccione Mostrar subconjunto. Además, para mostrar solo un subconjunto de los espectros en el gráfico, seleccione los espectros en el filtro de datos local de ID de espectro. También puede utilizar los controles de animación para recorrer un espectro a la vez.
Para selecciones más complicadas, como múltiples ROI, puede trazar los espectros como puntos y seleccionar los puntos de interés. El comando Subconjunto en el menú Tabla se puede utilizar para crear una tabla de datos solo con los datos de ROI.
Una cosa importante que debe recordar acerca de Graph Builder es que una vez que haya terminado de configurar el gráfico de la forma deseada, puede guardar el script en la tabla de datos, de modo que los mismos gráficos se puedan recrear fácilmente con nuevos datos. Por ejemplo, es posible que desee recrear su gráfico al comparar espectros antes y después del preprocesamiento. Otra opción para comparar espectros antes y después del preprocesamiento es utilizar el comando Iniciar Graph Builder en Spectral Tools.
Además, nuevo en JMP 16 En Graph Builder, el suavizado Savitzky-Golay (SG) se puede aplicar como paso inicial de preprocesamiento (Figura 2). Una vez que seleccione sus parámetros de ajuste, puede generar los datos suavizados. Vaya al triángulo rojo más suave y seleccione Guardar fórmula. Tenga en cuenta que esto requerirá que su longitud de onda sea una variable continua (puede modificar el tipo de variable si lo necesita usando las Propiedades de columna).
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.Figura 2. Savitzky-Golay suavizó los espectros en Graph Builder.
En Graph Builder, existen métodos de suavizado alternativos, como suavizar splines y LOESS, que quizás también quieras probar. También hay funciones de peso alternativas en el menú del triángulo rojo más suave. Muchas de estas opciones se agregaron recientemente en JMP 16.
Se puede acceder a otras medidas resumidas que cuantificarán la calidad de los espectros en Graph Builder. Para crearlos, elimine la variable de superposición para que se muestren los espectros medios. Luego, al seleccionar las opciones de diagrama de barras y diagrama de caja se generarán los diagramas de la Figura 3. Una variación constante en las longitudes de onda a menudo indica ruido (y la necesidad de un procesamiento previo adicional), mientras que una variación grande que es específica de ciertas longitudes de onda puede indicar efectos químicos reales.
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.Figura 3. Visualización de variación de espectros en Graph Builder.(Arriba) Gráficos de barras de absorbancia media en cada longitud de onda con error estándar. (Abajo) Diagramas de caja de absorbancia en cada longitud de onda.
Otro tipo de gráfico que resulta útil si los datos están en formato ancho es el gráfico paralelo (Figura 4). Esto es particularmente útil si está analizando los espectros en otras plataformas que requieren formato amplio, como PCA, PLS u otras plataformas de modelado predictivo. Al seleccionar espectros en el gráfico paralelo se resaltarán las filas correspondientes en otras plataformas:
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.Figura 4. Gráfico paralelo de Graph Builder de espectros coloreados por el contenido de gluten.
Preprocesamiento
Uno de los principales obstáculos al analizar datos espectrales es la necesidad de un preprocesamiento de datos complejo. Mostraremos cómo el uso de un complemento para el filtrado de derivadas de Savitsky-Golay y una fórmula para la corrección de dispersión de la variable normal estándar (SNV) puede "limpiar" sus datos, haciéndolos más fácilmente interpretables y, en última instancia, permitiéndole crear modelos predictivos más confiables. .
Para el primer paso, eliminaremos los cambios de línea de base aparentes en los espectros. Para ello, utilizamos un complemento de filtrado de datos SG desarrollado por Ian Cox (consulte el complemento adjunto a esta publicación a continuación). Esto sólo aceptará datos en un formato amplio. Elija el complemento "Filtrado de datos" de la lista de complementos instalados en JMP. Seleccione las columnas que se manipularán y seleccione Aceptar. Aparecerán tres gráficos de resultados para su revisión.
La interfaz de usuario más fluida de SG es donde se encuentra el orden de ajuste del polinomio, 2 – 8) está definido, y también se define la longitud de los bordes derecho e izquierdo de la ventana de suavizado. Cambiar cualquiera de estos valores actualiza automáticamente los gráficos, ya que las derivadas se realizan en los espectros suavizados de SG. Dado que los filtros derivativos amplifican el ruido, a menudo se requiere cierto grado de suavizado. La Figura 5 muestra los gráficos de salida.
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.Figura 5. (Arriba) Suavizado Savitzky-Golay, (Medio) filtro de primera derivada, (Abajo) filtro de segunda derivada.
Los datos filtrados se pueden guardar en una nueva tabla de datos, que luego se puede transferir nuevamente a la tabla de datos original para un procesamiento previo adicional si se desea. En este caso, los datos de la primera derivada se seleccionaron y se guardaron nuevamente en la tabla de datos original.
Esto pareció eliminar efectivamente los cambios de referencia. Sin embargo, todavía quedan algunos efectos de dispersión en los espectros. Una forma de separar visualmente los efectos de dispersión y los efectos químicos es utilizar una variable de agrupación en Graph Builder. Mueva la variable de contenido de gluten a uno de los ejes del grupo. Graph Builder encontrará una agrupación sensata y creará paneles separados para cada agrupación. En estos datos sólo tenemos 5 valores de contenido de gluten. Los efectos de dispersión permanecen porque la primera derivada eliminó el cambio de línea de base aditivo, pero no eliminó el efecto de dispersión multiplicativo. En la próxima publicación del blog mostraremos cómo ilustrar los efectos de dispersión multiplicativos con un diagrama de efectos de dispersión.
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.Figura 6. Gráficos de líneas espectrales con espectros separados por contenido de gluten.En estos gráficos se puede observar la variación debida a los efectos de dispersión.
Para eliminar el efecto de dispersión restante, realizamos una estandarización SNV. SNV requiere que los datos estén en formato apilado. Creamos una nueva columna y agregamos la fórmula que se muestra en la Figura 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.Figura 7. Fórmula utilizada para realizar el SNV.
Los espectros sin procesar y los espectros preprocesados finales se muestran en la Figura 8. Para iniciar fácilmente un gráfico como este, use el comando Iniciar Graph Builder en Spectra Tools.
Estos sencillos pasos ya han dado como resultado espectros mucho más fáciles de interpretar, al eliminarse los cambios de línea de base y los efectos de dispersión multiplicativa. En su artículo original, Martens et al. demostró cómo la corrección de señal multiplicativa extendida más avanzada puede mejorar aún más este flujo de trabajo de preprocesamiento. Cubriremos esto en la próxima publicación.
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.Figura 8. Espectros antes y después de los pasos de preprocesamiento aplicados en este blog. (Arriba) Antes del preprocesamiento, (Medio) después del filtro de primera derivada de Savitzky-Golay, (Abajo) después de la variación normal estándar.
Publicaciones futuras
Planeamos dos publicaciones más en esta serie. A continuación se mostrarán algunos métodos de preprocesamiento más avanzados, como la corrección de dispersión multiplicativa y la resta de línea de base.
También demostraremos cómo se puede utilizar la distorsión dinámica del tiempo en Functional Data Explorer para alinear cromatogramas. La publicación final aplicará algunos de los métodos de modelado predictivo en JMP, como PCA, PLS y regresión generalizada, a los espectros después del preprocesamiento.
Pruebe algunos de estos enfoques y cuéntenos cómo funcionan con sus datos.