Mein Kollege Jeremy Ash ( @JeremyAshJMP ) und mir ist klar, dass die Analyse spektroskopischer Daten viele Nuancen und potenzielle Fallstricke hat, die die Analyse schwierig und bestenfalls unordentlich machen können. Deshalb wollten wir diese Blogserie schreiben, um zu beschreiben, wie Sie spektroskopische Daten mit JMP-Software importieren, visualisieren, bereinigen und analysieren können.
Um es Ihnen zu erleichtern, einige dieser Schritte an Ihren eigenen Daten auszuprobieren, haben wir die erstellt Spectral Tools-Add-In , über die Sie hier in der JMP Community mehr erfahren und herunterladen können. Dies ist ein einfaches Add-In, das einige der in diesem Blogbeitrag besprochenen Datenimport- und Visualisierungsmethoden optimiert. Es ist nur ein Prototyp und nur ein erster Schritt, um einige praktische Funktionen für Spektraldaten bereitzustellen. Sie können uns Feedback in den Kommentaren dieses Blogbeitrags oder auf der Add-In-Seite geben.
In diesem Beitrag analysieren wir einen Nahinfrarot-Datensatz von Martens et al. " Lichtstreuung und Lichtabsorption getrennt durch erweiterte multiplikative Signalkorrektur. Anwendung auf die Nahinfrarot-Transmissionsanalyse von Pulvermischungen " Analytische Chemie 2003 Feb1;75(3):394-404. Wir zeigen, wie die Vorverarbeitung die Gesamtqualität der Daten verbessert und Ihnen ermöglicht, in diesem Fall die Gruppierung nach Anteilen der Bestandteile viel klarer zu sehen.
Spektren importieren
Beim Importieren von Spektren geht das Spectral Tools-Add-In davon aus, dass sich jedes Spektrum in einer separaten Datei in einem einzigen Verzeichnis befindet. Die Spektren können in durch Trennzeichen getrennten Textdateien (z. B. .csv oder .tsv) oder JCAMP-DX-Dateien vorliegen. Es wird nur JCAMP-DX ohne Komprimierung unterstützt. Das gestapelte Format ist das standardmäßige Datentabellenformat in Spectra Tools. Sie können auch Dateien im Breitformat importieren. In diesem Blogbeitrag verwenden wir am häufigsten das gestapelte Format, aber einige der Vorverarbeitungsschritte erfordern das breite Format. Mit den Befehlen „Stapeln“ und „Teilen“ im Menü „Tabellen“ in JMP können Sie zwischen dem gestapelten und dem breiten Format konvertieren.
Datenvisualisierung
Wie bei allen neuen Daten empfehlen wir Ihnen dringend, den Zustand der Daten zu visualisieren, sobald Sie sie in Ihre Analysesoftware Ihrer Wahl eingegeben haben, und regelmäßig mit diesem ersten Blick zu vergleichen, nachdem die Vorverarbeitung abgeschlossen ist. In JMP verwenden wir die Graph Builder-Plattform, um bei der Visualisierung zu helfen.
Abbildung 1 zeigt ein Liniendiagramm der Spektren in Graph Builder. Ziehen Sie mit Ihren Daten im gestapelten Format die X- und Y-Variablen auf ihre jeweilige Achse und verwenden Sie die Spektren-ID als Overlay-Variable. Alternativ können Sie den Befehl Launch Graph Builder in Spectra Tools verwenden. Für die Farbvariable verwenden wir die interessierende Antwortvariable, nämlich den Glutengehalt.
Figure 1. Spectra line plot in Graph Builder with spectra colored by gluten content.Abbildung 1. Spektrenliniendiagramm im Graph Builder mit Spektren, die nach Glutengehalt gefärbt sind.
Um in Interessenbereiche (ROIs) hineinzuzoomen, klicken und ziehen Sie die X-Achse. Sie können einen lokalen Datenfilter im roten Dreiecksmenü für einige andere nützliche Steuerelemente erstellen. Dies wird standardmäßig in Spectral Tools bereitgestellt. Diese sind auf der linken Seite von Abbildung 1 dargestellt. Der Wellenlängen-Lokaldatenfilter kann verwendet werden, um sich auf einen interessierenden Bereich (ROI) zu konzentrieren. Um eine neue Datentabelle nur für die ROI-Daten zu erstellen, gehen Sie zum roten Dreieck des lokalen Datenfilters und wählen Sie Teilmenge anzeigen. Um nur eine Teilmenge der Spektren im Diagramm anzuzeigen, wählen Sie die Spektren im Spektren-ID-Lokaldatenfilter aus. Sie können auch die Animationssteuerung verwenden, um jeweils durch ein Spektrum zu blättern.
Für kompliziertere Auswahlen wie mehrere ROIs können Sie die Spektren als Punkte darstellen und die interessierenden Punkte auswählen. Der Befehl Teilmenge im Menü Tabelle kann verwendet werden, um eine Datentabelle nur mit den ROI-Daten zu erstellen.
Eine wichtige Sache, an die Sie sich bei Graph Builder erinnern sollten, ist, dass Sie das Skript in der Datentabelle speichern können, sobald Sie das Diagramm so eingerichtet haben, wie Sie es möchten, sodass dieselben Diagramme einfach mit neuen Daten neu erstellt werden können. Beispielsweise möchten Sie möglicherweise Ihr Diagramm neu erstellen, wenn Sie Spektren vor und nach der Vorverarbeitung vergleichen. Eine weitere Option zum Vergleichen von Spektren vor und nach der Vorverarbeitung ist die Verwendung des Befehls Launch Graph Builder in Spectral Tools.
Außerdem neu eingetroffen JMP 16 In Graph Builder kann die Savitzky-Golay (SG)-Glättung als erster Vorverarbeitungsschritt angewendet werden (Abbildung 2). Sobald Sie Ihre Abstimmungsparameter ausgewählt haben, können Sie die geglätteten Daten ausgeben. Gehen Sie zum glatteren roten Dreieck und wählen Sie Formel speichern. Beachten Sie, dass dies erfordert, dass Ihre Wellenlänge eine kontinuierliche Variable ist (Sie können den Variablentyp bei Bedarf ändern, indem Sie die Spalteneigenschaften verwenden).
Figure 2. Savitzky-Golay smoothed spectra in Graph Builder.Figur 2. Savitzky-Golay-geglättete Spektren im Graph Builder.
In Graph Builder gibt es alternative Glättungsmethoden – wie z. B. Glätten von Splines und LOESS – die Sie vielleicht auch ausprobieren möchten. Es gibt auch alternative Gewichtsfunktionen im glatteren roten Dreiecksmenü. Viele dieser Optionen wurden in JMP 16 neu hinzugefügt.
Andere zusammenfassende Maße, die die Qualität von Spektren quantifizieren, sind in Graph Builder zugänglich. Um diese zu erstellen, entfernen Sie die Overlay-Variable, damit die mittleren Spektren angezeigt werden. Wenn Sie dann die Optionen Balkendiagramm und Boxdiagramm auswählen, werden die Diagramme in Abbildung 3 generiert. Schwankungen, die über Wellenlängen hinweg konstant sind, weisen oft auf Rauschen hin – und auf die Notwendigkeit einer weiteren Vorverarbeitung – während große Schwankungen, die für bestimmte Wellenlängen spezifisch sind, auf echte chemische Effekte hinweisen können.
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.Figur 3. Visualisierung der Spektrenvariation im Graph Builder.(Oben) Balkendiagramme der mittleren Extinktion bei jeder Wellenlänge mit Standardfehler. (Unten) Absorptions-Boxplots bei jeder Wellenlänge.
Ein weiterer Diagrammtyp, der nützlich ist, wenn Ihre Daten im Breitformat vorliegen, ist das parallele Diagramm (Abbildung 4). Dies ist besonders nützlich, wenn Sie die Spektren auf anderen Plattformen analysieren, die das breite Format erfordern, wie z. B. PCA, PLS oder andere Vorhersagemodellierungsplattformen. Durch die Auswahl von Spektren im parallelen Diagramm werden die entsprechenden Zeilen auf anderen Plattformen hervorgehoben:
Figure 4. Graph Builder parallel plot of spectra colored by gluten content.Figur 4. Graph Builder Paralleldiagramm von Spektren, die nach Glutengehalt gefärbt sind.
Vorverarbeitung
Einer der größten Stolpersteine bei der Analyse von Spektraldaten ist die Notwendigkeit einer komplexen Datenvorverarbeitung. Wir werden zeigen, wie die Verwendung eines Add-Ins für die Filterung von Savitsky-Golay-Derivaten und einer Formel für die Korrektur der Streuung durch Standard-Normalvariaten (SNV) Ihre Daten „bereinigen“ kann, wodurch sie leichter interpretierbar werden und es Ihnen letztendlich ermöglicht, zuverlässigere Vorhersagemodelle zu erstellen .
Im ersten Schritt entfernen wir die offensichtlichen Basislinienverschiebungen in den Spektren. Dazu verwenden wir ein von Ian Cox entwickeltes Add-In zur SG-Datenfilterung (siehe das Add-In, das diesem Beitrag unten beigefügt ist). Dies akzeptiert nur Daten in einem breiten Format. Wählen Sie das Add-In „Datenfilterung“ aus der Liste der installierten Add-Ins in JMP aus. Wählen Sie die zu bearbeitenden Spalten aus und wählen Sie OK. Drei Ausgabediagramme werden zur Überprüfung eingeblendet.
Die glattere SG-Benutzeroberfläche ist dort, wo die polynomische Anpassungsordnung, 2 – 8) definiert, und die Länge des rechten und linken Rands des Glättungsfensters werden ebenfalls definiert. Das Ändern eines dieser Werte aktualisiert automatisch die Graphen, da die Ableitungen an den SG-geglätteten Spektren durchgeführt werden. Da abgeleitete Filter das Rauschen verstärken, ist oft ein gewisses Maß an Glättung erforderlich. Abbildung 5 zeigt die Ausgabediagramme.
Figure 5. (Top) Savitzky-Golay smoother, (Middle) first derivative filter, (Bottom) second derivative filter.Abbildung 5. (Oben) Savitzky-Golay-Glättung, (Mitte) erster Ableitungsfilter, (unten) zweiter Ableitungsfilter.
Die gefilterten Daten können in einer neuen Datentabelle gespeichert werden, die dann bei Bedarf zur weiteren Vorverarbeitung zurück in die ursprüngliche Datentabelle übertragen werden kann. In diesem Fall wurden die Daten der ersten Ableitung ausgewählt und wieder in der ursprünglichen Datentabelle gespeichert.
Dies schien die Grundlinienverschiebungen wirksam zu beseitigen. Allerdings verbleiben noch einige Streueffekte in den Spektren. Eine Möglichkeit, Streueffekte und chemische Effekte visuell zu trennen, besteht darin, eine Gruppierungsvariable in Graph Builder zu verwenden. Verschieben Sie die Glutengehaltsvariable auf eine der Gruppenachsen. Graph Builder findet ein sinnvolles Binning und erstellt separate Panels für jeden Bin. In diesen Daten haben wir nur 5 Werte für den Glutengehalt. Streueffekte bleiben bestehen, da die erste Ableitung die additive Grundlinienverschiebung entfernt hat, aber nicht den multiplikativen Streueffekt. Wie man multiplikative Scatter-Effekte mit einem Scatter-Effects-Plot veranschaulichen kann, zeigen wir im nächsten Blogbeitrag.
Figure 6. Spectra line plots with spectra separated by gluten content. Variation due to scatter effects can be seen in these plots.Abbildung 6. Spektralliniendiagramme mit nach Glutengehalt getrennten Spektren.Variationen aufgrund von Streueffekten sind in diesen Diagrammen zu sehen.
Um den verbleibenden Streueffekt zu entfernen, führen wir eine SNV-Standardisierung durch. SNV erfordert, dass die Daten in einem gestapelten Format vorliegen. Wir erstellen eine neue Spalte und fügen die in Abbildung 7 gezeigte Formel hinzu.
Figure 7. Formula used to perform the SNV.Abbildung 7. Formel zur Durchführung der SNV.
Die Rohspektren und die endgültigen vorverarbeiteten Spektren sind in Abbildung 8 dargestellt. Verwenden Sie zum einfachen Starten eines Diagramms wie diesem den Befehl Launch Graph Builder in Spectra Tools.
Diese einfachen Schritte haben bereits zu einem viel einfacher zu interpretierenden Spektrum geführt, bei dem Basislinienverschiebungen und multiplikative Streueffekte entfernt wurden. In ihrer Originalarbeit beschreiben Martens et al. demonstriert, wie die fortschrittlichere erweiterte multiplikative Signalkorrektur diesen Vorverarbeitungs-Workflow weiter verbessern kann. Wir werden dies im nächsten Beitrag behandeln.
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.Abbildung 8. Spektren vor und nach den in diesem Blog angewendeten Vorverarbeitungsschritten. (Oben) Vor der Vorverarbeitung, (Mitte) nach Savitzky-Golay-Erstableitungsfilter, (Unten) nach Standard-Normalvariate.
Zukünftige Nachrichten
Wir planen zwei weitere Beiträge in dieser Serie. Das nächste zeigt einige fortgeschrittenere Vorverarbeitungsmethoden wie multiplikative Streuungskorrektur und Basisliniensubtraktion.
Wir werden auch demonstrieren, wie dynamisches Time Warping im Functional Data Explorer verwendet werden kann, um Chromatogramme auszurichten. Im letzten Beitrag werden einige der Vorhersagemodellierungsmethoden in JMP, wie PCA, PLS und generalisierte Regression, nach der Vorverarbeitung auf Spektren angewendet.
Probieren Sie einige dieser Ansätze aus und lassen Sie uns wissen, wie sie mit Ihren Daten funktionieren!