NMR 時間領域データを分析するためのディープ ニューラル ネットワーク。見る:
これはこの README の短縮版です。詳細については、以下の詳細な説明を参照してください。
git clone https://github.com/gogulan-k/FID-Net.git
cd FID-Net
# Following two command only if you don't have NMRPipe installed:
chmod +x install_nmrpipe.sh
install_nmrpipe.sh
mamba env update -f environment.yml
mamba activate fidnet
fidnet run-examples
まず、リポジトリのクローンを作成します。
git clone https://github.com/gogulan-k/FID-Net.git
FID-Net に必要なすべてのパッケージを備えた作業環境を取得する最も簡単な方法は、conda または mamba と提供されたenvironment.yml ファイルを使用することです。
cd FID-Net
mamba env update -f environment.yml
そして環境をアクティブ化します。
mamba activate fidnet
環境をインストールすると、「fidnet」パッケージもインストールされ、 fidnetコマンド ライン ツールが使用可能になります (下記を参照)。
ニューラル ネットワークの重みはこの Python パッケージには含まれていませんが、必要に応じてその場でダウンロードされます。
すべての異なるモデルの重みのダウンロードを一度に手動でトリガーする場合は、次のように入力します。
fidnet download-weights
重みはデフォルトで gitignored ディレクトリにダウンロードされます。
/data/weights
次のような設定を変更するには、.env ファイルを追加するか、FIDNET_DATA_DIR または FIDNET_WEIGHTS_DIR を指定する環境変数を設定します。
# .env
FIDNET_WEIGHTS_DIR=/path/to/directory/with/weights.hd5
このような設定をすべて確認するには、次のように入力します。
fidnet settings
動作環境がある場合 (次のセクションを参照していない場合は NMRPipe がインストールされている場合)、すべての例を一度に実行することで、動作しているかどうかをテストできます。
fidnet run-examples
これにより、サンプル データがダウンロードされ、さまざまな FID-Net 機能がすべて実行されます (実行にかなり時間がかかる 3D HNCA デカップラーを除く)。モデルによる処理を行わずに、サンプル データのみをダウンロードする場合は、次のようにします。
fidnet download-example-data
NMRPipe は conda を使用してインストールできません。まだインストールしていない場合は、提供されたスクリプトを使用してインストールできます。
chmod +x install_nmrpipe.sh
install_nmrpipe.sh
NMRPipe では、.cshrc を編集する方法についていくつかの手順を説明します。次のようになります。
if (-e < REPO_DIR > /bin/NMRPipe/com/nmrInit.linux212_64.com) then
source < REPO_DIR > /bin/NMRPipe/com/nmrInit.linux212_64.com
endif
NMRPipe コマンドを見つけるには、次の指示に従ってください。
コマンドラインツールの--helpを参照してください。個々のコマンドには、入力引数が何であるかを説明する独自のヘルプがあります。
(fidnet) ➜ ~ fidnet --help
Usage: fidnet [OPTIONS] COMMAND [ARGS]...
Deep Neural Networks for Analysing NMR time domain data.
https://github.com/gogulan-k/FID-Net
╭─ Options ───────────────────────────────────────────────────────────────────╮
│ --install-completion Install completion for the current shell. │
│ --show-completion Show completion for the current shell, to │
│ copy it or customize the installation. │
│ --help Show this message and exit. │
╰─────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ──────────────────────────────────────────────────────────────────╮
│ ca_detect FID-Net 2D CA detect │
│ con_decouple FID-Net 2D CON decoupling │
│ ctcp_decouple FID-Net 2D CTCP decoupling │
│ methyl FID-Net Decouple and improve resolution │
│ of spectra for uniformly 13C-1H labelled │
│ proteins. │
│ hnca FID-Net 3D HNCA decoupling. │
│ reconstruct FID-Net 2D Non-Uniform Sampling (NUS) reconstruction |
| aromatic FID-Net2 for spectra for Aromatic Sidechains │
│ run-examples Run all the examples in one go. │
│ download-example-data Download example data to try out the different │
│ FID-Net functions. │
│ download-weights Download the weights for all FID-Net models. Running │
│ this is not strictly necessary as the weights are │
│ downloaded on the fly for individual models when │
│ they are not present yet. │
│ settings │
│ version Show the version of the nucleotides library. │
╰─────────────────────────────────────────────────────────────────────────────╯
Thanks !
(fidnet) ➜ ~ fidnet ca_detect --help
Usage: fidnet ca_detect [OPTIONS]
FID-Net 2D CA detect
╭─ Options ───────────────────────────────────────────────────────────────────────╮
│ * --infile PATH Help text in the original was the same as for │
│ con_decouple │
│ [default: None] │
│ [required] │
│ --outfile PATH Path to the output file. │
│ [default: fidnet_ca_detect.ft1] │
│ --help Show this message and exit. │
╰─────────────────────────────────────────────────────────────────────────────────╯
注: デカップラーは、13C 次元で最大 512 個の複素点のみを処理できます。これより多くの点を含むスペクトルは、512 の複素数点で切り捨てられます。
T4L99Aの逆位相、同位相 (AP-IP) スペクトルの例 (test.ft1) がサンプル フォルダーに提供されています。
DNN への入力は nmrPipe 形式である必要があります。 Bruker 分光計を使用する場合、FID-Net デカップリングが正しく実行されるように、生の FID ファイル (ser) を DMX フラグを使用して nmrpipe 形式に変換する必要があります。
FID-Net への入力前に、スペクトルの直接次元は段階的に調整されますが、虚数部は削除されません。次に、スペクトルは転置、アポダイズ、ゼロ埋め、位相調整され、間接次元でフーリエ変換されます。最良の結果を得るには、間接次元での過度のゼロ埋めは避けてください。通常は、nmrPipe で「ZF -auto」を使用します。その後、FID-Net に入る前にスペクトルを転置する必要があります。
DNN への入力は 2D 同相インターフェログラムである必要があります (つまり、前述のように直接次元ではなく間接次元で処理されます)。
その後、DNN の出力を処理 (アポダイズ、ゼロ埋め、フーリエ変換、虚数部の削除) して、最終結果を得ることができます。サンプル (final_proc.com) はサンプル フォルダーにあります。
(fidnet) ➜ ~ fidnet con_decouple --help
Usage: fidnet con_decouple [OPTIONS]
FID-Net 2D CON decoupling
╭─ Options ───────────────────────────────────────────────────────────────────────╮
│ * --infile PATH Input spectra. This is a 2D in phase CON spectra with │
│ the 13C dimension in the time domain. The 13C │
│ dimension should be phased but the imaginary part │
│ retained and should not be apodized, zero-filled or │
│ Fourier transformed. The 15N dimension should be │
│ apodized, zero-filled, phased (the imaginary part │
│ deleted) then Fourier transformed. The order of the │
│ input dimensions must be 15N, 13C. │
│ [default: None] │
│ [required] │
│ --outfile PATH Path to the output file. │
│ [default: fidnet_con_decoupled.ft1] │
│ --help Show this message and exit. │
╰─────────────────────────────────────────────────────────────────────────────────╯
注: 2D CON デカップラーは、13C 次元で最大 512 個の複素点でのみ動作します。これより多くの点を含むスペクトルは、512 の複素数点で切り捨てられます。
ユビキチンの同相スペクトルの例 (test001.ft1) は、サンプル フォルダーに提供されています。
DNN への入力は nmrPipe 形式である必要があります。 Bruker 分光計を使用する場合、FID-Net デカップリングが正しく実行されるように、生の FID ファイル (ser) を DMX フラグを使用して nmrpipe 形式に変換する必要があります。
FID-Net への入力前に、スペクトルの直接次元は段階的に調整されますが、虚数部は削除されません。次に、スペクトルは転置、アポダイズ、ゼロ埋め、位相調整され、間接次元でフーリエ変換されます。最良の結果を得るには、間接次元での過度のゼロ埋めは避けてください。通常は、nmrPipe で「ZF -auto」を使用します。その後、FID-Net に入る前にスペクトルを転置する必要があります。
DNN への入力は 2D 同相インターフェログラムである必要があります (つまり、前述のように直接次元ではなく間接次元で処理されます)。データが 3D の場合は、pipe2xyz ユーティリティなどを使用して 2D 平面のセットに変換する必要があります。入力例はサンプル フォルダー (test001.ft1) にあります。
その後、DNN の出力を処理 (アポダイズ、ゼロ埋め、フーリエ変換、虚数部の削除) して、最終結果を得ることができます。サンプル (final_proc.com) はサンプル フォルダーにあります。
(fidnet) ➜ ~ fidnet ctcp_decouple --help
Usage: fidnet ctcp_decouple [OPTIONS]
FID-Net 2D CTCP decoupling
╭─ Options ───────────────────────────────────────────────────────────────────────╮
│ * --infile PATH Input spectra. This is a 2D in-phase Ct-Cp spectra │
│ with the 13Ct dimension in the time domain. The 13Ct │
│ dimension should be phased but the imaginary part │
│ retained and should not be apodized, zero-filled or │
│ Fourier transformed. The 13Cp dimension should be │
│ apodized, zero-filled, phased (the imaginary part │
│ deleted) then Fourier transformed. The order of the │
│ input dimensions must be 13Cp, 13Ct. │
│ [default: None] │
│ [required] │
│ --outfile PATH Path to the output file. │
│ [default: fidnet_ctcp_decoupled.ft1] │
│ --help Show this message and exit. │
╰─────────────────────────────────────────────────────────────────────────────────╯
注: 2D 13Ct-13Cp デカップラーは、13C 次元の最大 512 個の複素点でのみ機能します。これより多くの点を含むスペクトルは、512 の複素数点で切り捨てられます。
ユビキチンの同相スペクトルの例 (test001.ft1) は、サンプル フォルダーに提供されています。
DNN への入力は nmrPipe 形式である必要があります。 Bruker 分光計を使用する場合、FID-Net デカップリングが正しく実行されるように、生の FID ファイル (ser) を DMX フラグを使用して nmrpipe 形式に変換する必要があります。
FID-Net への入力前に、スペクトルの直接次元は段階的に調整されますが、虚数部は削除されません。次に、スペクトルは転置、アポダイズ、ゼロ埋め、位相調整され、間接次元でフーリエ変換されます。最良の結果を得るには、間接次元での過度のゼロ埋めは避けてください。通常は、nmrPipe で「ZF -auto」を使用します。その後、FID-Net に入る前にスペクトルを転置する必要があります。
DNN への入力は 2D 同相インターフェログラムである必要があります (つまり、前述のように直接次元ではなく間接次元で処理されます)。データが 3D の場合は、pipe2xyz ユーティリティなどを使用して 2D 平面のセットに変換する必要があります。入力例はサンプル フォルダー (test001.ft1) にあります。
その後、DNN の出力を処理 (アポダイズ、ゼロ埋め、フーリエ変換、虚数部の削除) して、最終結果を得ることができます。サンプル (final_proc.com) はサンプル フォルダーにあります。
(fidnet) ➜ ~ fidnet reconstruct --help
Usage: fidnet reconstruct [OPTIONS]
FID-Net 2D Non-Uniform Sampling (NUS) reconstruction
╭─ Options ───────────────────────────────────────────────────────────────────────╮
│ * --infile PATH this is the measured 2D │
│ non-uniformly sampled spectra. │
│ It should be processed in the │
│ direct dimension, phased and │
│ transposed. The indirect │
│ dimension should not be │
│ processed in any way. The │
│ unsampled points in the │
│ indirect dimension should not │
│ be replaced with zeros (for │
│ example by using the nusExpand │
│ tool) this is taken care of by │
│ the program itself. The │
│ maximum number of complex │
│ points in the indirect │
│ dimension that can be included │
│ in the network is 256. │
│ Thespectrum will be truncated │
│ after this. │
│ [default: None] │
│ [required] │
│ * --sampling-schedule PATH this is the sampling schedule │
│ used. This is simply a list │
│ ofintegers (oneinteger per │
│ line) giving the complex │
│ points that are measured in │
│ the NUS experiment. │
│ [default: None] │
│ [required] │
│ * --max-points INTEGER this is the number of complex │
│ points in the final output. │
│ I.e.the sparsity is given by │
│ the number of values in the │
│ samplingschedule divided by │
│ this value. │
│ [default: None] │
│ [required] │
│ --outfile PATH name of the output file │
│ [default: │
│ fidnet_nus_reconstructed.ft1] │
│ --f1180 --no-f1180 f1180 flag (y/n) only │
│ important for matplotlib │
│ output and │
│ fidnet_reconstructed.ft2 │
│ [default: f1180] │
│ --shift --no-shift frequency shift flag (y/n) │
│ only important for matplotlib │
│ output and std.ft2 │
│ [default: no-shift] │
│ --help Show this message and exit. │
╰─────────────────────────────────────────────────────────────────────────────────╯
このコードは、FID-Net アーキテクチャを使用して 2D NUS NMR スペクトルを再構築するためのものです。コードを使用するには、トレーニングされたネットワークの重みを含むファイルをダウンロードする必要があります。
ネットワークの出力は、時間領域で再構築された間接次元を含む nmrPipe ファイルです。間接次元を処理 (アポダイズ、ゼロ埋め、位相化、およびフーリエ変換) して、最終的に再構成されたスペクトルを得ることができます。この分析では std.ft2 も出力され、出力の信頼性の尺度が提供されます。これも nmrPipe 形式であり、デフォルトのパラメーターに従って前処理され、フーリエ変換されます。これらが正しくない場合は、ヒルベルト変換と逆フーリエ変換を適用して、再処理する前にこれを時間領域に戻すことができます。
サンプル フォルダーには、サンプリング スケジュールとともに HDAC のサンプル ファイルがあります。
(fidnet) ➜ ~ fidnet hnca --help
Usage: fidnet hnca [OPTIONS]
FID-Net 3D HNCA decoupling.
╭─ Options ───────────────────────────────────────────────────────────────────────╮
│ * --infile PATH Input spectra. This is a 3D HNCA orHN(CO)CA spectra │
│ with the 13C dimension in the time domain.The 15N and │
│ 1H dimensions should be phased and Fourier │
│ transformed.The order of the input dimensions must be │
│ 1H,15N, 13C. │
│ [default: None] │
│ [required] │
│ --outfile PATH out file [default: fidnet_hnca_decoupled.ft2] │
│ --help Show this message and exit. │
╰─────────────────────────────────────────────────────────────────────────────────╯
このコードは、FID-Net アーキテクチャを使用して 3D HNCA および HN(COCA) スペクトルをデカップリングするためのものです。注: 3D HNCA デカップラーは、13C 次元の最大 256 個の複素点でのみ機能します。これより多くの点を含むスペクトルは、256 個の複素点で切り捨てられます。
(fidnet) ➜ ~ fidnet methyl --help
Usage: fidnet methyl [OPTIONS]
FID-Net Decouple and improve resolution of spectra for uniformly 13C-1H labelled
proteins.
╭─ Options ───────────────────────────────────────────────────────────────────────╮
│ * --infile PATH Input spectra. This is a 2D 13C-1Hspectra │
│ (time domain data) fora uniformly labelled │
│ 13C-1H labelled protein.If using literally │
│ ' example ' ,an example file is used │
│ [default: None] │
│ [required] │
│ --outdir PATH folder where resultswill be saved. │
│ [default: fidnet_out] │
│ --outfile PATH filename for finalprocessed spectrum. │
│ [default: fidnet_methyl_CH.ft2] │
│ --min-1h FLOAT minimum 1H ppm [default: -1.0] │
│ --max-1h FLOAT maximum 1H ppm [default: 2.5] │
│ --p0 FLOAT 1H phase correction [default: 0.0] │
│ --alt --no-alt NMRPipe: dimension is left/right swapped │
│ [default: no-alt] │
│ --neg --no-neg NMRPipe: dimension is reversed │
│ [default: no-neg] │
│ --help Show this message and exit. │
╰─────────────────────────────────────────────────────────────────────────────────╯
このコードは、均一な 13C-1H タンパク質からのタンパク質スペクトルの分解能を向上させるためのものです。このコードには、FID-Net アーキテクチャに基づく 2 つの DNN が必要です。最初のネットワークは 13C-13C スカラー結合を 1 つ除去し、13C 次元のピークをシャープにします。 2 番目のネットワークは 1H 次元のピークをシャープにします。
サンプル フォルダーには、均一に 13C-1H ラベルが付けられた HDAC8 のデータが含まれています。
(fidnet) ➜ ~ fidnet aromatic --help
Usage: fidnet aromatic [OPTIONS]
FID-Net2 ransforms NMR spectra recorded on simple uniformly 13C labelled samples to
yield high-quality 1H-13C correlation spectra of the aromatic side chains.
Spectra should be recorded with the dedicated pulse programme
╭─ Options ───────────────────────────────────────────────────────────────────────╮
│ * --infile PATH Input spectra. This should be a pseudo-3D │
│ NMR pipe file that has been recorded using │
│ the dedicated pulse sequence (see folder) │
│ │
│ [default: None] │
│ [required] │
│ --outfile PATH filename for final processed spectrum. │
│ [default: aromatic_output.ft2] │
│ --UseGPU BOOL True to use GPU. │
| [default: True] |
│ --GPUIDX INT GPU number to use │
| [default: None] |
│ --offset1h FLOAT Set the offset for the sine-squared window |
| function in the 1H dimension. Default is |
| 0.40, which was used during training │
│ [default: 0.4] |
│ --offset13c FLOAT Set the offset for the sine-squared window |
| function in the 1H dimension. Default is |
| 0.40, which was used during training │
│ [default: 0.4] |
│ --help Show this message and exit. │
╰─────────────────────────────────────────────────────────────────────────────────╯
コードをコミットする前にいくつかのチェックを行うコミット前フックをインストールできます。
pip install -e ".[dev]"
pre-commit install