用于分析 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