External Command

JASONのパワーを拡張する(その2) :MATLABとRによる外部コマンド処理

前回のブログでは、JASONの外部コマンド処理としてpythonを使用し、NMR処理過程のどのポイントでもデータに対して操作を実行できることを説明しました。これは、例えば新しいデータ処理のアプローチを開発するユーザーにとっては、非常に強力でかつ柔軟なツールとなります。 しかし、もしあなたのお気に入りのプログラミング言語がpythonでなかったら?JASONの外部コマンド処理機能は、HDF5フォーマットのデータを読むことができるすべての外部プログラムやスクリプトにデータを送ることができます。これには、最新のプログラミング言語の大半(そしてそうでないものも!)が含まれます。 このブログでは、MATLABとRスクリプトの両方をJASONから呼び出し、前のブログで説明したのと同じ操作を実行する方法を紹介します。MATLABはネイティブでHDF5ファイルの読み書きをサポートしていますが、Rは追加のライブラリをインストールする必要があります。このブログで紹介する例では、rhdf5ライブラリを使用します。 MATLABスクリプトは、前回説明したinvert.py pythonスクリプトと概念的に非常に似ています。MATLABファイルはデータに適用される関数を実装しています。MATLABはすでにinvert()と呼ばれる関数を持っているので、誤って間違った関数を呼び出さないように、この関数に別の名前、この場合はinvertspec()を付けます。h5read()関数とh5write()関数は、HDF5ファイルからデータを読み書きします: 前のブログ記事のpythonスクリプトのように、データセットのサイズを変更しないので、元のデータを変更後のデータに置き換えるだけです。 JASONからこのスクリプトを呼び出すのは簡単です。外部コマンドの処理項目を処理リストに追加し、いくつかのオプションを設定するだけです。MATLABの場合、コマンドは単に "matlab "で、引数は以下の通りです: -nojvm [...]

By |2024-01-09T10:58:19+00:009月 10, 2023|JASON, JEOL software|0 Comments

JASONの機能を拡張する (その1) :外部コマンド処理項目の使い方

JASONには、NMRデータを処理・解析するための強力なツールが揃っていますが、時にはJASONにはないような処理を行いたいこともあるでしょう。このブログ記事シリーズでは、「外部コマンド」という処理機能の使い方を紹介します。これにより、NMRデータを外部プログラムに渡し、何らかの処理を行わせ、その結果を再度JASONに返すようなことを実行することが出来ます。 この機能はどのような方に適しているでしょうか?例えば、Non-uniformサンプリング再構成法、新しい窓関数、信号処理技術など、新しい処理技術を開発している研究者は、このような機能が不可欠であることに気づくでしょう。実際、利用者はNMRデータの処理過程のどの時点でも、また何回でも、外部プログラムによる処理のためにデータを送ることが出来るので完全に自分のデータをコントロールすることが出来ます。 この機能はどのように動作するのでしょうか? JASONは、HDF5というファイル形式でデータを保存します。この形式は、Python、Matlab、R、Mathematicaなどを含む主要なプログラミング言語のHDF5ライブラリにより、さまざまなツールで読むことが出来ます。つまりあなたの好みの言語を外部スクリプトとして使うことが出来るのです! データは「外部コマンド」の引数として指定されます。JASONはそれをスリム化されたHDFファイルとして生成し、外部処理に渡します。外部計算が完了すると、JASONは出力を読み返し、処理は処理リストの次の項目に進みます。 このブログでは、簡単なpythonスクリプトを使った外部コマンド処理の使い方を紹介します。ここに紹介した例は、単純にスペクトルを反転させるだけのものですが、もちろん、もっと高度な計算も可能です。限界は、もしあるとすれば、あなたの想像の中だけに存在するものです! これから説明するpythonスクリプトを以下に示します。Pythonは、h5pyライブラリを使用してHDF5ファイルにアクセスすることができます。h5pyライブラリは、Pythonでの科学計算によく使用されるNumPy配列としてデータを返します。   スクリプトは、python標準ライブラリからh5pyとNumPy、sysをインポートする3つのステートメントから始まります。JASONから送られたHDF5ファイルは、h5py.File()関数を使ってファイルハンドルとして開かれます。セキュリティ上の理由から、NMRデータはJASONからランダムなファイル名で送信されるため、sys.argvリストを通して、これをpythonスクリプトの入力引数の一つとして取り込みます。 ファイルを開くと、その中のNMRデータはpythonのライブラリ構文を使ってアクセスできます。HDF5ファイルはデータを格納するためにパスのような階層構造を使用し、これらのパスはライブラリのキーとして使用されます。例えば、NMRスペクトルの実数部は/JasonDocument/DataPoints/0にあり、/JasonDocument/DataPoints/1は虚数部にあります。 [...]

By |2024-01-09T10:59:17+00:008月 10, 2023|JASON, JEOL software|0 Comments

Title

Go to Top