用於分析 NMR 時域資料的深度神經網路。看:
這是本自述文件的簡短版本。有關更多詳細信息,請參閱下面更詳細的解釋。
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
無法使用 conda 安裝 NMRPipe。如果您尚未安裝,可以使用提供的腳本進行安裝。
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 (test.ft1) 的反相同相 (AP-IP) 頻譜範例。
DNN 的輸入必須採用 nmrPipe 格式。如果使用布魯克光譜儀,則必須使用 DMX 標誌將原始 FID 檔案 (ser) 轉換為 nmrpipe 格式,以便 FID-Net 解耦正確執行。
在輸入 FID-Net 之前,頻譜的直接維度被定相,但虛部並未刪除。然後頻譜在間接維度上進行轉置、變跡、補零、定相和傅立葉變換。為了獲得最佳結果,應避免間接維度中過多的零填充。通常我們會在 nmrPipe 中使用「ZF -auto」。然後應在進入 FID-Net 之前對頻譜進行轉置。
DNN 的輸入必須是二維同相干涉圖(即在間接維度而非如上所述的直接維度進行處理)。
然後可以對 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 格式。如果使用布魯克光譜儀,則必須使用 DMX 標誌將原始 FID 檔案 (ser) 轉換為 nmrpipe 格式,以便 FID-Net 解耦正確執行。
在輸入 FID-Net 之前,頻譜的直接維度被定相,但虛部並未刪除。然後頻譜在間接維度上進行轉置、變跡、補零、定相和傅立葉變換。為了獲得最佳結果,應避免間接維度中過多的零填充。通常我們會在 nmrPipe 中使用「ZF -auto」。然後應在進入 FID-Net 之前對頻譜進行轉置。
DNN 的輸入必須是二維同相干涉圖(即在間接維度而非如上所述的直接維度進行處理)。如果資料是 3D,則必須使用 pipeline2xyz 公用程式或類似工具將其轉換為一組 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 格式。如果使用布魯克光譜儀,則必須使用 DMX 標誌將原始 FID 檔案 (ser) 轉換為 nmrpipe 格式,以便 FID-Net 解耦正確執行。
在輸入 FID-Net 之前,頻譜的直接維度被定相,但虛部並未刪除。然後頻譜在間接維度上進行轉置、變跡、補零、定相和傅立葉變換。為了獲得最佳結果,應避免間接維度中過多的零填充。通常我們會在 nmrPipe 中使用「ZF -auto」。然後應在進入 FID-Net 之前對頻譜進行轉置。
DNN 的輸入必須是二維同相干涉圖(即在間接維度而非如上所述的直接維度進行處理)。如果資料是 3D,則必須使用 pipeline2xyz 公用程式或類似工具將其轉換為一組 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 架構的 DNN。第一個網路消除了一個 13C-13C 標量耦合並銳化了 13C 維度中的峰值。第二個網路銳化 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