JASON BeautifulJASONによるPython®活用の紹介
NM250006
現在、JASON[1]ではHDF5ファイルの階層構造とBeautifulJASONの活用により、Python®[2]によるNMRスペクトル解析が効率的に行えます。
本資料では、以下の2つの内容について紹介します:
BeautifulJASONの概要とPython®によるNMRスペクトル解析の例
JASON×BeautifulJASON×Python®によるバッチ処理の使用例
1. BeautifulJASONの概要とPython®によるNMRスペクトル解析の例
BeautifulJASONの概要
BeautifulJASONは、JASONおよびそのファイル形式(.jjh5)に対応した、Python®用のインターフェースライブラリです。これにより、JASONで作成・保存されたスペクトルデータを、Python®から直接操作・解析することが可能になります。
このライブラリは、以下のような用途に適しています:
スペクトルの自動処理・解析
レイアウトやレポートのカスタマイズ
バッチ処理やラボの自動化
データ解析パイプラインへの統合
特に、JASONを日常的に使用しているユーザーが、プログラムから柔軟にスペクトルデータを扱いたい場合に有効です。Python®スクリプトを通じてJASONの機能を呼び出すことで、GUI操作とは異なる一括処理や統計解析、可視化などが可能になります。
BeautifulJASONを用いたNMRデータの抽出と解析例(1ファイル)
ここでは、BeautifulJASONを活用した、Python®による簡単なNMRスペクトル解析の例を紹介します。解析の流れは、Table 1のワークフローで構成されています。各ステップの内容と使用ライブラリはTable 1に、計算結果はTable 2に示しています。この例は、BeautifulJASONの基本的な使い方を理解し、スペクトル解析を試していただく際の参考になります。
Table 1. BeautifulJASONによるNMRデータ抽出コード例

Table 2. 解析例

BeautifulJASONによるNMRデータの読み込みと情報抽出
Figure 1に示すコードは、.jjh5[3]形式のNMR測定データから、スペクトル情報やピーク情報を抽出する処理の一例です。BeautifulJASONの基本的な使い方を理解する上で、参考になる内容です。このコードでは、以下のような情報を取得しています:
スペクトルのタイトルや核種情報
多重線(multiplet[4])の化学シフト位置と積分値
スペクトル構造(nmr_data や nmr_items)
このような処理は、スペクトル解析の前処理やデータ整理に不可欠であり、BeautifulJASONの強力な抽出機能を活用することで、Python®ベースの解析がスムーズに行えます。
BeautifulJASONの公式ドキュメント
より詳細な情報やAPIリファレンスは、以下の公式サイトをご参照ください:
https://www.jeoljason.com/beautifuljason/docs/

Figure 1. BeautifulJASONによるNMRデータ抽出コード例
BeautifulJASONを用いた複数NMRデータの統計解析例
ここでは、複数の.jjh5形式のNMRデータを対象に、定量値の統計解析を行った例を紹介します。BeautifulJASONを用いて各ファイルからピーク情報を抽出し、定量計算を行った後、変動係数(CV)によるばらつき評価(Figure 2)、KDEプロットによる分布の可視化(Figure 3)、QQプロットによる正規性の確認(Figure 4)、さらに相関分析による要因解析(Figure 5)を行いました。これらの手法により、測定のばらつきや分布特性、変数間の関係性を定量的に評価できます。本解析は、測定の再現性評価やサンプル間の比較に有効です。解析ステップとそのポイントについてはTable 4にまとめています。
Table 4.複数NMRデータ解析ステップと考察ポイント

変動係数(CV)によるばらつき評価
複数のNMRデータファイルに対して、ピーク純度の平均値と標準偏差をもとに変動係数(CV:Coefficient of Variation)を算出しました。CVは、平均値に対する標準偏差の割合を示す指標で、測定値のばらつきや再現性を評価する際に用いられます。Figure 2に示すように、test3.jjh5 や test2.jjh5 ではやや高めのCVが見られ、test5.jjh5 や test8.jjh5 ではばらつきが小さい傾向が確認されました。

Figure 2. 変動係数による比較、変動係数計算コード例の抜粋
KDEプロットによるデータ分布の可視化
Figure 3は各NMRファイルのピーク純度をもとに、カーネル密度推定(KDE:Kernel Density Estimation)を用いて分布を可視化した結果です。KDEプロットは、データの分布を滑らかな曲線で可視化する手法で、ヒストグラムよりも詳細な分布傾向を把握できます。純度のばらつきや偏りを視覚的に把握するのに有効です。例えば、分布の幅が広いデータは、純度のばらつきが大きい可能性があり、分布が狭いデータは測定が安定していることを示します。複数ファイルの分布を重ねることで、測定条件やサンプル間の違いを比較することができます。

Figure 3.ピーク純度分布の比較(KDEプロット)、KDEプロット生成コード例の抜粋
QQプロットによる正規性の確認
Figure 4は各NMRファイルのピーク純度について、正規分布との一致度をQQプロットで評価した結果です。QQ(Quantile-Quantile)プロットは、データの分布が理論的な正規分布に従っているかを視覚的に確認するための手法です。理論的な正規分布の分位点と実測値の分位点を比較します。プロットが直線に近いほど、データは正規分布に近い性質を持ちます。外れ値がある場合、プロットの端が大きく逸れる傾向があります。今回のデータでは、いずれも直線性が高く、今後の統計解析において正規性の前提が妥当であることが確認されました。

Figure 4. QQプロットによる正規性の可視化、QQプロット生成コード例の抜粋
相関分析による関係性の評価
Figure 5は複数の変数(化学シフト、積分値、CV)とピーク純度との関係性を、ピアソン相関係数およびスピアマン相関係数で評価した結果です。相関係数(r/ρ)は、それぞれPearsonおよびSpearmanの相関係数を示し、線形・非線形の関係性を包括的に評価できます。いずれの相関係数も絶対値が小さく、p値も高いため、統計的に有意な相関は確認されませんでした。定量結果はこれらの変数に対して安定しており、測定条件による影響が少ないことが示されています。なおCVとの負の相関についても、相関係数が小さく統計的な有意性は確認されていないため、因果関係の特定にはさらなる検証が必要です。

Figure 5. 相関分析による関係性の評価、相関分析コード例の抜粋
2. JASON×BeautifulJASON×Python®によるバッチ処理の使用例
ここでは、Python®スクリプトを用いたNMRデータの自動解析の例を紹介します。JASON公式サイトからダウンロード可能な「Batch Processing with BeautifulJASON」のスクリプトファイル使用し、複数NMRデータに対してJASONのルール機能[5]を適用した自動解析と、結果のCSVファイル出力について紹介します。
Batch Processing with BeautifulJASONのスクリプトファイルについて
以下2つのスクリプトファイルが提供されています:
jason_batch_convert.py: JASONのルール機能を用いてデータを一括変換
batch_extract_integrals.py: 変換後のデータから積分値を抽出し、CSV形式で出力
いずれも、JASON公式サイトからダウンロード可能です:
https://www.jeoljason.com/resources-external-nmr-processing-scripts/
処理ステップについて
Table 5にJASONによるNMRバッチ処理の3ステップとその内容を示します:
Table 5. NMRバッチ処理のステップについて

変換スクリプト(jason_batch_convert.py)について
Figure 6に、jason_batch_convert.pyのコードの一部を示します。このスクリプトでは、JASONのルール機能を適用して、.jjh5などの形式に変換する処理が行われます。特に、main()関数の引数処理部分では、ユーザーがコマンドラインで指定するオプションの意味が明確に記述されており、実行方法の理解に役立ちます。

Figure 6. .jdfファイル変換およびJASONのルール機能の適用に関するコードの抜粋
出力スクリプト(batch_extract_integrals.py)について
Figure 7に、batch_extract_integrals.pyのコードの一部を示します。このスクリプトでは、.jjh5 ファイルから積分値やパラメータを抽出し、CSVに書き出す処理が行われます。

Figure 7. 積分値抽出およびcsv出力に関するコードの抜粋
Figure 8. バッチファイルによる自動化例とコードの抜粋
バッチファイルによる自動化について
Figure 8では、簡単なバッチファイルの例を紹介します。このバッチファイルは、上記の公式スクリプトを使ったNMRデータのバッチ処理を自動化するためのものです。ダブルクリックで処理を開始できるため、初心者でも実行しやすく、他のデータへの応用が可能です。また、Python®スクリプトで統合することでより柔軟な処理も可能になります。
出力結果について
Figure 9に出力例を示します。ここでは、9個のNMRデータに対してJASONのルール機能を適用し、自動解析を行った結果をCSVファイルにまとめて出力しています。出力されたデータおよびCSVファイルの内容はFigure 10に示しています。

Figure 9. Batch Processing with BeautifulJASON 自動解析例

Figure 10. Batch Processing with BeautifulJASON 自動解析 出力例
補足と注意点
スクリプトはPython 3環境で実行してください。
JASONのルール機能ファイル(.jjr)はJASONで作成しておく必要があります。
パラメータ名はJASON GUIで確認した正確な名称を使用してください。
まとめ
本資料では、JASONとBeautifulJASONを活用したNMRスペクトル解析の自動化手法について紹介しました。
BeautifulJASONにより、Python®からJASONデータを直接操作・解析できる環境が整い、柔軟な処理や統計解析が可能になります。
特に、公式スクリプト(jason_batch_convert.py、batch_extract_integrals.py)を活用することで、複数データの一括処理やCSV出力が容易になります。
参照
[1] JEOL Analytical Software Network
[2] Pythonは、Python Software Foundationの商標または登録商標です。
[3] .jjh5はJASONにおける.hdf5の形式です。
[4] multiplet(多重線)とは、NMRスペクトルにおいてスピン結合により分裂したピーク群を指します。
[5] JASONのルール機能とは、スペクトル処理の手順やレポートレイアウトを定義した設定ファイル(.jjr)を用いて、複数データに対して一括処理を行う仕組みです。
