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 nel migliore dei casi 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 semplificare la prova di alcuni di questi passaggi sui propri dati, abbiamo creato il file Componente aggiuntivo Strumenti spettrali , di cui puoi trovare ulteriori informazioni e scaricarle qui nella community di 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 utili funzioni per i dati spettrali. Puoi fornirci un 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. " Scattering della luce e assorbanza della luce separati da una correzione del segnale moltiplicativo estesa. 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 ti consente di vedere, in questo caso, il raggruppamento basato sulle proporzioni dei componenti molto più chiaramente.
Importazione di spettri
Quando si importano gli 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 in 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 grande formato. In questo post del blog, utilizziamo più frequentemente il formato impilato, ma alcuni dei passaggi di pre-elaborazione richiedono il formato grande. È possibile eseguire la conversione tra i formati impilati e larghi utilizzando i comandi Impila e Dividi nel menu Tabelle in JMP.
Visualizzazione dati
Come per 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 aspetto dopo l'eventuale pre-elaborazione. In JMP , utilizziamo la piattaforma Graph Builder per facilitare la visualizzazione.
La Figura 1 mostra un grafico a linee degli spettri in Costruttore di grafici. Con i dati nel formato in pila, trascina le variabili X e Y sui rispettivi assi e utilizza l'ID dello spettro come variabile di sovrapposizione. In alternativa, puoi utilizzare il comando Launch Graph Builder in Spectra Tools. Per la variabile colore, usiamo la variabile di risposta di interesse, che è il contenuto di glutine.
Figure 1. Spectra line plot in Graph Builder with spectra colored by gluten content.Figura 1. Grafico della linea degli spettri in Graph Builder 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 di default 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 di 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 locali ID spettri. Puoi anche utilizzare i controlli di animazione per scorrere uno spettro alla volta.
Per selezioni più complicate come più ROI, puoi tracciare gli spettri come punti e selezionare i punti di interesse. Il comando Sottoinsieme nel menu Tabella può essere utilizzato per creare una tabella di dati con solo i dati ROI.
Una cosa importante da ricordare su Graph Builder è che una volta terminata la configurazione 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 Launch Graph Builder in Spectral Tools.
Inoltre, nuovo arrivato PMP 16 in Graph Builder, lo smoothing Savitzky-Golay (SG) può essere applicato come fase iniziale di pre-elaborazione (Figura 2). Una volta selezionati i parametri di ottimizzazione, è possibile emettere i dati smussati. Vai al triangolo rosso più uniforme e seleziona Salva formula. Si noti che ciò richiederà che la lunghezza d'onda sia una variabile continua (è possibile modificare il tipo di variabile se necessario utilizzando le proprietà della colonna).
Figure 2. Savitzky-Golay smoothed spectra in Graph Builder.Figura 2. Savitzky-Golay ha smussato gli spettri in Graph Builder.
In Costruttore di grafici sono disponibili metodi di levigatura alternativi, ad esempio spline di levigatura e LOESS, che potresti voler provare. Ci sono anche funzioni di peso alternative nel menu del triangolo rosso più fluido. Molte di queste opzioni sono state aggiunte di recente in JMP 16.
Altre misure di riepilogo che quantificheranno la qualità degli spettri sono accessibili in Graph Builder. Per crearli, rimuovere la variabile di sovrapposizione in modo da visualizzare gli spettri medi. Quindi, selezionando le opzioni del grafico a barre e del grafico a scatola, verranno generati i grafici nella Figura 3. La variazione costante attraverso le lunghezze d'onda spesso indica rumore e la necessità di un'ulteriore pre-elaborazione, mentre un'ampia variazione specifica di 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.Figura 3. Visualizzazione della variazione degli spettri in Graph Builder.(In alto) Grafici 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 in altre piattaforme che richiedono il grande formato come PCA, PLS o altre piattaforme di modellazione predittiva. La selezione degli spettri nel grafico parallelo evidenzierà le righe corrispondenti in altre piattaforme:
Figure 4. Graph Builder parallel plot of spectra colored by gluten content.Figura 4. Diagramma parallelo di Graph Builder di spettri colorati in base al contenuto di glutine.
Pre-elaborazione
Uno dei principali ostacoli all'analisi dei dati spettrali è la necessità di una complessa pre-elaborazione dei dati. Mostreremo come l'utilizzo di un componente aggiuntivo per il filtraggio derivato di Savitsky-Golay e una formula per la correzione della dispersione variata normale standard (SNV) può "ripulire" i dati, rendendoli più facilmente interpretabili e, in ultima analisi, consentendo di creare modelli predittivi più affidabili .
Per il primo passaggio, rimuoveremo gli spostamenti apparenti della linea di base negli spettri. Per questo, utilizziamo un componente aggiuntivo per il filtraggio dei dati SG sviluppato da Ian Cox (vedere il componente aggiuntivo allegato a questo post di seguito). Questo accetterà solo i dati in un formato ampio. Scegliere il componente aggiuntivo "Filtro dati" dall'elenco dei componenti aggiuntivi installati in JMP. Selezionare le colonne da manipolare e selezionare OK. Appariranno tre grafici di output per la revisione.
L'interfaccia utente più fluida SG è dove l'ordine polinomiale di adattamento, 2 - 8) è definito, e sono definite anche la lunghezza dei bordi destro e sinistro della finestra di levigatura. La modifica di uno qualsiasi di questi valori aggiorna automaticamente i grafici, poiché le derivate vengono eseguite sugli spettri livellati SG. Poiché i filtri derivati 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.Figura 5. (In alto) Savitzky-Golay smoother, (Al centro) primo filtro derivato, (In basso) secondo filtro derivato.
I dati filtrati possono essere salvati in una nuova tabella di dati, che può quindi essere trasferita nuovamente alla tabella di dati originale per un'ulteriore pre-elaborazione, se lo si desidera. In questo caso, i primi dati derivativi sono stati selezionati e salvati nuovamente nella tabella dati originale.
Ciò sembrava rimuovere efficacemente gli spostamenti della linea di base. Tuttavia, ci sono ancora alcuni effetti di dispersione rimanenti negli spettri. Un modo per separare visivamente gli effetti di dispersione e gli effetti chimici consiste nell'utilizzare una variabile di raggruppamento in Costruttore di grafici. Sposta la variabile del contenuto di glutine in quella degli assi di gruppo. Graph Builder troverà un binning ragionevole e creerà pannelli separati per ogni bin. 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.Figura 6. Grafici a linee spettrali con spettri separati dal contenuto di glutine.La variazione dovuta agli effetti di dispersione può essere vista in questi grafici.
Per rimuovere l'effetto di dispersione rimanente, eseguiamo una standardizzazione SNV. SNV richiede che i dati siano in un formato impilato. Creiamo una nuova colonna e aggiungiamo la formula mostrata in Figura 7.
Figure 7. Formula used to perform the SNV.Figura 7. Formula utilizzata per eseguire la SNV.
Gli spettri grezzi e gli spettri pre-elaborati finali sono mostrati nella Figura 8. Per avviare facilmente un grafico come questo, utilizzare il comando Launch Graph Builder in Spectra Tools.
Questi semplici passaggi hanno già prodotto spettri molto più facili da interpretare, eliminando gli spostamenti della linea di base e gli effetti di dispersione moltiplicativi. Nel loro documento originale, Martens et al. dimostrato come la più avanzata correzione del segnale moltiplicativo esteso possa migliorare ulteriormente questo flusso di lavoro di pre-elaborazione. Ne parleremo 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.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 primo filtro derivato 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 il time warping dinamico in Functional Data Explorer può essere utilizzato 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!