私の同僚のジェレミー・アッシュ ( @JeremyAsh )そして、分光データの分析には多くのニュアンスと潜在的な落とし穴があり、それが分析を困難で面倒なものにする可能性があることを認識しています。 そこで、JMP ソフトウェアを使用して分光データをインポート、視覚化、クリーンアップ、分析する方法を説明するために、このブログ シリーズを書きたいと思いました。
これらの手順の一部を自分のデータで簡単に試せるように、スペクトル ツール アドイン詳細については、JMP コミュニティでダウンロードできます。 これは、このブログ投稿で説明したデータのインポートおよび視覚化方法の一部を効率化するシンプルなアドインです。 これは単なるプロトタイプであり、スペクトル データに便利な関数を提供するための最初のステップにすぎません。 このブログ投稿のコメントまたはアドイン ページでフィードバックをお寄せいただけます。
この投稿では、Martens らの近赤外線データセットを分析しています。 」光散乱と光吸収は、拡張された乗算信号補正によって分離されます。 粉末混合物の近赤外透過分析への応用」分析化学2003 年 2 月 1 日;75(3):394-404。 前処理によってデータの全体的な品質がどのように向上し、この場合は構成要素の比率に基づいたグループ化がより明確に見えるようになるかを示します。
スペクトルのインポート
スペクトルをインポートするとき、Spectral Tools アドインは、各スペクトルが単一ディレクトリ内の個別のファイルにあると想定します。 スペクトルは、区切り文字で区切られたテキスト ファイル (.csv または .tsv など) または JCAMP-DX ファイルに保存できます。 圧縮なしの JCAMP-DX のみがサポートされます。 スタック形式は、Spectra Tools のデフォルトのデータ テーブル形式です。 ワイド形式のファイルをインポートすることもできます。 このブログ投稿ではスタック形式を最も頻繁に使用しますが、いくつかの前処理手順ではワイド形式が必要です。 JMP の「テーブル」メニューの「スタック」および「分割」コマンドを使用して、スタック形式とワイド形式の間で変換できます。
データの視覚化
新しいデータと同様に、選択した分析ソフトウェアにデータを取り込んだ後は、データの状態を視覚化し、前処理が完了した後の最初の外観と定期的に比較することを強くお勧めします。 でJMPでは、グラフ ビルダー プラットフォームを使用して視覚化を支援します。
図 1 は、グラフ ビルダーでのスペクトルの折れ線プロットを示しています。 積み上げ形式のデータを使用して、X 変数と Y 変数をそれぞれの軸にドラッグし、スペクトル ID をオーバーレイ変数として使用します。 あるいは、Spectra Tools の [グラフ ビルダーの起動] コマンドを使用することもできます。 色の変数には、グルテン含有量である目的の応答変数を使用します。
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 軸をクリックしてドラッグします。 赤い三角ボタンのメニューでローカル データ フィルターを作成して、他のいくつかの便利なコントロールを使用できます。 これは、Spectral Tools でデフォルトで提供されます。 これらを図 1 の左側に示します。 波長ローカル データ フィルターを使用して、関心領域 (ROI) に焦点を合わせることができます。 ROI データのみの新しいデータ テーブルを作成するには、ローカル データ フィルターの赤い三角形に移動し、[サブセットの表示] を選択します。 また、グラフ上にスペクトルのサブセットのみを表示するには、スペクトル ID ローカル データ フィルターでスペクトルを選択します。 アニメーション コントロールを使用して、一度に 1 つのスペクトルを循環することもできます。
複数の ROI などのより複雑な選択の場合は、スペクトルを点としてプロットし、対象の点を選択できます。 [テーブル] メニューの [サブセット] コマンドを使用して、ROI データのみを含むデータ テーブルを作成できます。
グラフ ビルダーに関して覚えておくべき重要な点の 1 つは、希望どおりにグラフの設定が完了したら、スクリプトをデータ テーブルに保存できるため、新しいデータを使用して同じプロットを簡単に再作成できることです。 たとえば、前処理の前後でスペクトルを比較するときに、グラフを再作成したい場合があります。 前処理の前後でスペクトルを比較する別のオプションは、スペクトル ツールの [グラフ ビルダーの起動] コマンドを使用することです。
また、新しく入ったJMP16グラフ ビルダーでは、最初の前処理ステップとして 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. グラフビルダーでのスペクトル変動の視覚化。(上) 各波長における平均吸光度のバープロットと標準誤差。 (下) 各波長における吸光度の箱ひげ図。
データがワイド形式の場合に役立つもう 1 つのタイプのプロットは、平行プロットです (図 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. グルテン含有量によって色分けされたスペクトルのグラフ ビルダー平行プロット。
前処理
スペクトル データの分析における主な障害の 1 つは、複雑なデータの前処理が必要なことです。 Savitsky-Golay 微分フィルタリングのアドインと標準正規変量 (SNV) 散乱補正の公式を使用してデータを「クリーンアップ」し、解釈しやすくし、最終的にはより信頼性の高い予測モデルを構築できるようにする方法を示します。 。
最初のステップでは、スペクトル内の明らかなベースラインのシフトを除去します。 このために、Ian Cox によって開発された SG データ フィルタリング アドインを使用します (以下のこの投稿に添付されているアドインを参照してください)。 これはワイド形式のデータのみを受け入れます。 JMP にインストールされているアドインのリストから「Data Filtering」アドインを選択します。 操作する列を選択し、「OK」を選択します。 確認のために 3 つの出力グラフがポップアップ表示されます。
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 スムーザー、(中央) 一次微分フィルター、(下) 二次微分フィルター。
フィルタリングされたデータは新しいデータ テーブルに保存でき、必要に応じてさらに前処理するために元のデータ テーブルに転送できます。 この場合、一次導関数データが選択され、元のデータ テーブルに保存されていました。
これにより、ベースラインのシフトが効果的に除去されたように見えました。 ただし、スペクトルには散乱効果がまだ残っています。 散乱効果と化学的効果を視覚的に分離する 1 つの方法は、グラフ ビルダーでグループ化変数を使用することです。 グルテン含有量変数をグループ軸の 1 つに移動します。 グラフ ビルダーは適切なビンを見つけて、ビンごとに個別のパネルを作成します。 これらのデータでは、グルテン含有量の値は 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 一次微分フィルター後、(下) 標準正規変量後。
今後の投稿
このシリーズではあと 2 回の投稿を予定しています。 次に、乗法散乱補正やベースライン減算など、より高度な前処理方法をいくつか示します。
また、Functional Data Explorer の動的なタイム ワーピングを使用してクロマトグラムを調整する方法についても説明します。 最後の投稿では、PCA、PLS、一般化回帰などの JMP の予測モデリング手法の一部を、前処理後のスペクトルに適用します。
これらのアプローチをいくつか試して、それがデータにどのように作用するかをお知らせください。
こんにちは、マイケルさん
温かいお言葉をいただきありがとうございます。私たちのブログが役に立ったと聞いてとてもうれしいです。
データをスタック形式からワイド形式に変換する方法を説明できてうれしいですが、両方の形式で同じ分析をすべて実行できることも知りたかったのです。
すべては、スタック形式のデータをどのようにグループ化するかによって決まります。スペクトル名に「By」関数を使用することも、新しい列式の列形式を使用して「グループ化」することもできます。いずれの場合でも、マウスを数回クリックするだけで、希望する場所に移動できます。
私のメールアドレスはbill.worley@jmp.com 。メールを送っていただければ、何か話し合う予定を立てさせていただきます。
ありがとうございました、
請求書