Introduction
nmrglueはNMRデータを処理できるPythonモジュールで、たくさんのNMRを処理する際などに役立ちます。
各社のNMRのデータを読み込む関数がnmrglueに実装されていて、例えば日本でもよく見られるBrukerのファイルの読み込みは簡単にできます。
一方で、日本のNMRメーカーであるJEOLのデータ(jdfファイル)を読み込む関数は最新版には入っておらず、単にpip install nmrglueと打ってゲットできるバージョンではJEOLのファイルは読み込めません。
最近、githubにてJEOLのデータを読み込む関数が実装されたようなので、このバージョンをインストールする方法を備忘録として記します。
環境
Windows 11 Home
miniforge3 (conda 25.3.0)
Python 3.13.5
普段はmainという環境に色々入れています。
1. Gitをダウンロードする
ここからGitをダウンロードします。適当にYesを押していったらインストールされます。
Miniforge Promptでgit --versionと入力して以下のようなものが出たら勝ちです。
git version 2.51.0.windows.2
2. 仮想環境をアクティベート
Miniforge Promptを立ち上げ、nmrglueを入れたい仮想環境をアクティベートします。
conda activate main
3. pipインストール
こいつを実行します。
pip install git+https://github.com/jjhelmus/nmrglue.git@68f8ecd0dd3d8f5a1b6092a2c320e72f00bc6e42
最後の文字列はこのコミットの識別番号らしいです(Gitわからない)
色々出て最後にこういうのが出たらOKです。
...
Successfully built nmrglue
Installing collected packages: nmrglue
Successfully installed nmrglue-0.12.dev0
4. 利用例
nmrglue.jeol.read(data_dir)のような形で使えます。
make_uc関数はまだないっぽいのでng.fileio.fileiobase.unit_conversionで変換させています。
def read_nmr(filename):
dic, fid = ng.jeol.read(filename)
udic = ng.jeol.guess_udic(dic,fid)
data = ng.process.proc_base.em(fid)
data = ng.proc_base.zf_size(data, udic[0]['size']*2) # zero fill to 65536 points
uc = ng.fileio.fileiobase.unit_conversion(udic[0]['size']*2,
udic[0]['complex'],
udic[0]['sw'],
udic[0]['obs'],
udic[0]['car'])
ppm = uc.ppm_scale()
data = ng.proc_base.fft(data) # Fourier transform
data = ng.process.proc_autophase.autops(data, 'acme') # Phase correction
data = ng.proc_base.di(data) # discard the imaginaries
data = ng.proc_base.rev(data) # reverse the data
return ppm, data
dic['parameters']に色々測定パラメータが入ってそうですね
Conclusion
- JEOLのデータがpythonで読めてハッピー
編集履歴
2025/10/15 データ処理の下りが怪しかったので書き換えました