Il mio collega Jeremy Ash ( @JeremyAshJMP ) e mi rendo conto che l'analisi dei dati spettroscopici presenta molte sfumature e potenziali insidie che possono rendere l'analisi difficile e, nella migliore delle ipotesi, disordinata. Abbiamo quindi voluto scrivere questa serie di blog per descrivere come importare, visualizzare, pulire e analizzare i dati spettroscopici con il software JMP.
Per semplificarti la prova di alcuni di questi passaggi sui tuoi dati, abbiamo creato il file Componente aggiuntivo Strumenti spettrali , di cui puoi ottenere ulteriori informazioni e scaricarlo qui nella community JMP. Si tratta di un semplice componente aggiuntivo che semplifica alcuni dei metodi di importazione e visualizzazione dei dati discussi in questo post del blog. È solo un prototipo e solo un primo passo verso la fornitura di alcune funzioni utili per i dati spettrali. Puoi fornirci feedback nei commenti di questo post del blog o nella pagina del componente aggiuntivo.
In questo post, stiamo analizzando un set di dati nel vicino infrarosso di Martens et al. " Diffusione della luce e assorbimento della luce separati da una correzione moltiplicativa estesa del segnale. Applicazione all'analisi della trasmissione nel vicino infrarosso di miscele di polveri " Chimica analitica 2003 febbraio 1;75(3):394-404. Mostreremo come la pre-elaborazione migliora la qualità complessiva dei dati e consente di vedere, in questo caso, il raggruppamento basato sulle proporzioni dei componenti in modo molto più chiaro.
Importazione di spettri
Quando si importano spettri, il componente aggiuntivo Spectral Tools presuppone che ogni spettro si trovi in un file separato in un'unica directory. Gli spettri possono trovarsi in file di testo delimitati (.csv o .tsv, ad esempio) o file JCAMP-DX. È supportato solo JCAMP-DX senza compressione. Il formato in pila è il formato predefinito della tabella dati in Spectra Tools. Puoi anche importare file in formato grande. In questo post del blog utilizziamo più frequentemente il formato in pila, ma alcuni passaggi di pre-elaborazione richiedono il formato largo. È possibile convertire tra il formato impilato e quello ampio utilizzando i comandi Impila e Dividi nel menu Tabelle in JMP.
Visualizzazione dati
Come con qualsiasi nuovo dato, una volta inserito nel software di analisi preferito, ti consigliamo vivamente di visualizzare lo stato dei dati e di confrontarlo regolarmente con questo primo sguardo dopo aver eseguito qualsiasi pre-elaborazione. In JMP , utilizziamo la piattaforma Graph Builder per facilitare la visualizzazione.
La Figura 1 mostra un grafico a linee degli spettri nel Costruttore di grafici. Con i dati nel formato in pila, trascina le variabili X e Y sui rispettivi assi e utilizza l'ID degli spettri come variabile di sovrapposizione. In alternativa, è possibile utilizzare il comando Avvia Graph Builder in Spectra Tools. Per la variabile colore, utilizziamo la variabile di risposta di interesse, ovvero il contenuto di glutine.
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. Grafico delle linee spettrali nel Costruttore di grafici con spettri colorati in base al contenuto di glutine.
Per ingrandire le regioni di interesse (ROI), fare clic e trascinare l'asse X. Puoi creare un filtro dati locale nel menu del triangolo rosso per alcuni altri controlli utili. Questo è fornito per impostazione predefinita in Spectral Tools. Questi sono mostrati a sinistra della Figura 1. Il filtro dati locale della lunghezza d'onda può essere utilizzato per concentrarsi su una regione di interesse (ROI). Per creare una nuova tabella dati solo per i dati ROI, vai al triangolo rosso del filtro dati locale e seleziona Mostra sottoinsieme. Inoltre, per mostrare solo un sottoinsieme degli spettri sul grafico, selezionare gli spettri nel filtro dati locale ID spettri. È inoltre possibile utilizzare i controlli di animazione per scorrere uno spettro alla volta.
Per selezioni più complicate come ROI multiple, è possibile tracciare gli spettri come punti e selezionare i punti di interesse. Il comando Sottoinsieme nel menu Tabella può essere utilizzato per creare una tabella dati con solo i dati ROI.
Una cosa importante da ricordare sul Costruttore di grafici è che una volta terminata l'impostazione del grafico nel modo desiderato, è possibile salvare lo script nella tabella dati, in modo che gli stessi grafici possano essere facilmente ricreati con nuovi dati. Ad esempio, potresti voler ricreare il tuo grafico quando confronti gli spettri prima e dopo la pre-elaborazione. Un'altra opzione per confrontare gli spettri prima e dopo la pre-elaborazione consiste nell'utilizzare il comando Avvia Graph Builder in Strumenti spettrali.
Inoltre, nuovo arrivato JMP16 nel Costruttore di grafici, il livellamento Savitzky-Golay (SG) può essere applicato come passaggio iniziale di pre-elaborazione (Figura 2). Una volta selezionati i parametri di ottimizzazione, è possibile generare i dati livellati. Vai al triangolo rosso più liscio e seleziona Salva formula. Tieni presente che ciò richiederà che la tua lunghezza d'onda sia una variabile continua (puoi modificare il tipo di variabile se necessario utilizzando le Proprietà della colonna).
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. Spettri livellati di Savitzky-Golay nel Costruttore di grafici.
Nel Costruttore di grafici esistono metodi di smussamento alternativi, come le spline di smussamento e LOESS, che potresti voler provare. Ci sono anche funzioni di peso alternative nel menu più fluido del triangolo rosso. Molte di queste opzioni sono state aggiunte di recente in JMP 16.
Altre misure riassuntive che quantificheranno la qualità degli spettri sono accessibili nel Costruttore di grafici. Per crearli, rimuovere la variabile di sovrapposizione in modo che venga mostrato lo spettro medio. Quindi, selezionando le opzioni del grafico a barre e del grafico a riquadri verranno generati i grafici nella Figura 3. Una variazione costante attraverso le lunghezze d’onda spesso indica rumore – e la necessità di ulteriore pre-elaborazione – mentre una grande variazione specifica per determinate lunghezze d’onda può indicare effetti chimici reali.
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. Visualizzazione della variazione degli spettri nel Graph Builder.(In alto) Diagrammi a barre dell'assorbanza media a ciascuna lunghezza d'onda con errore standard. (In basso) Boxplot di assorbanza a ciascuna lunghezza d'onda.
Un altro tipo di grafico utile se i dati sono in formato grande è il grafico parallelo (Figura 4). Ciò è particolarmente utile se si analizzano gli spettri su altre piattaforme che richiedono il formato ampio come PCA, PLS o altre piattaforme di modellazione predittiva. Selezionando gli spettri nel grafico parallelo verranno evidenziate le righe corrispondenti in altre piattaforme:
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. Grafico parallelo degli spettri colorati in base al contenuto di glutine nel Generatore di grafici.
Pre-elaborazione
Uno dei maggiori ostacoli nell’analisi dei dati spettrali è la necessità di una complessa pre-elaborazione dei dati. Mostreremo come l'utilizzo di un componente aggiuntivo per il filtraggio della derivata Savitsky-Golay e una formula per la correzione della dispersione della variabile normale standard (SNV) può "ripulire" i dati, rendendoli più facilmente interpretabili e, in definitiva, consentendo di creare modelli predittivi più affidabili .
Per il primo passaggio, rimuoveremo gli apparenti spostamenti della linea di base negli spettri. Per questo, utilizziamo un componente aggiuntivo di filtraggio dei dati SG sviluppato da Ian Cox (vedere il componente aggiuntivo allegato a questo post di seguito). Questo accetterà solo dati in formato ampio. Scegli il componente aggiuntivo "Filtro dati" dall'elenco dei componenti aggiuntivi installati in JMP. Selezionare le colonne da manipolare e selezionare OK. Verranno visualizzati tre grafici di output per la revisione.
L'interfaccia utente più fluida di SG è dove si trova l'ordine di adattamento polinomiale, 2 – 8) è definita e sono definite anche la lunghezza dei bordi destro e sinistro della finestra di smussamento. La modifica di uno qualsiasi di questi valori aggiorna automaticamente i grafici, poiché le derivate vengono eseguite sugli spettri livellati SG. Poiché i filtri derivativi amplificano il rumore, spesso è necessario un certo grado di attenuazione. La Figura 5 mostra i grafici di output.
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. (In alto) Smussatore Savitzky-Golay, filtro della derivata prima (al centro), filtro della derivata seconda (in basso).
I dati filtrati possono essere salvati in una nuova tabella dati, che può poi essere ritrasferita nella tabella dati originale per un'ulteriore pre-elaborazione, se lo si desidera. In questo caso, i dati della derivata prima sono stati selezionati e salvati nella tabella dati originale.
Ciò sembrava rimuovere efficacemente gli spostamenti della linea di base. Tuttavia, negli spettri rimangono ancora alcuni effetti di dispersione. Un modo per separare visivamente gli effetti di dispersione dagli effetti chimici è utilizzare una variabile di raggruppamento nel Costruttore di grafici. Sposta la variabile del contenuto di glutine su uno degli assi del gruppo. Il Costruttore di grafici troverà un raggruppamento sensato e creerà pannelli separati per ciascun raccoglitore. In questi dati abbiamo solo 5 valori di contenuto di glutine. Gli effetti di dispersione rimangono perché la derivata prima ha rimosso lo spostamento additivo della linea di base, ma non ha rimosso l'effetto di dispersione moltiplicativo. Mostreremo come illustrare gli effetti di dispersione moltiplicativi con un grafico degli effetti di dispersione nel prossimo post del blog.
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. La linea degli spettri traccia con spettri separati dal contenuto di glutine.In questi grafici è possibile osservare variazioni dovute agli effetti di dispersione.
Per rimuovere l'effetto di dispersione rimanente, eseguiamo una standardizzazione SNV. SNV richiede che i dati siano in un formato in pila. Creiamo una nuova colonna e aggiungiamo la formula mostrata nella 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. Formula utilizzata per eseguire il SNV.
Gli spettri grezzi e gli spettri finali preelaborati sono mostrati nella Figura 8. Per avviare facilmente un grafico come questo, utilizzare il comando Avvia Graph Builder in Spectra Tools.
Questi semplici passaggi hanno già prodotto spettri molto più facili da interpretare, con la rimozione degli spostamenti della linea di base e degli effetti di dispersione moltiplicativa. Nel loro articolo originale, Martens et al. ha dimostrato come la correzione del segnale moltiplicativo esteso più avanzata possa migliorare ulteriormente questo flusso di lavoro di pre-elaborazione. Tratteremo questo nel prossimo post.
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. Spettri prima e dopo le fasi di pre-elaborazione applicate in questo blog. (In alto) Prima della pre-elaborazione, (al centro) dopo il filtro della derivata prima di Savitzky-Golay, (in basso) dopo la variazione normale standard.
Post futuri
Abbiamo in programma altri due post in questa serie. Il prossimo mostrerà alcuni metodi di pre-elaborazione più avanzati come la correzione della dispersione moltiplicativa e la sottrazione della linea di base.
Dimostreremo anche come è possibile utilizzare la distorsione temporale dinamica in Functional Data Explorer per allineare i cromatogrammi. Il post finale applicherà alcuni dei metodi di modellazione predittiva in JMP, come PCA, PLS e Regressione generalizzata, agli spettri dopo la pre-elaborazione.
Prova alcuni di questi approcci e facci sapere come funzionano con i tuoi dati!