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 (test.ft1)의 역위상, 동위상(AP-IP) 스펙트럼의 예가 예제 폴더에 제공됩니다.
DNN에 대한 입력은 nmrPipe 형식이어야 합니다. Bruker 분광계를 사용하는 경우 FID-Net 디커플링이 올바르게 수행되도록 하려면 원시 FID 파일(ser)을 DMX 플래그를 사용하여 nmrpipe 형식으로 변환해야 합니다.
FID-Net에 입력되기 전에 스펙트럼의 직접 차원은 위상화되지만 허수부는 삭제되지 않습니다. 그런 다음 스펙트럼은 간접 차원에서 전치되고, 아포다이징되고, 0으로 채워지고, 위상이 지정되고 푸리에 변환됩니다. 최상의 결과를 얻으려면 간접 차원에서 과도한 0 채우기를 피해야 합니다. 일반적으로 nmrPipe에서는 'ZF -auto'를 사용합니다. 그런 다음 스펙트럼은 FID-Net에 입력하기 전에 전치되어야 합니다.
DNN에 대한 입력은 2D 동위상 간섭계(즉, 위에서 설명한 대로 직접 차원이 아닌 간접 차원에서 처리됨)여야 합니다.
그런 다음 DNN의 출력을 처리(아포다이즈, 0 채우기, 푸리에 변환 및 허수 부분 삭제)하여 최종 결과를 얻을 수 있습니다. 예제 폴더에는 예제(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에 입력되기 전에 스펙트럼의 직접 차원은 위상화되지만 허수부는 삭제되지 않습니다. 그런 다음 스펙트럼은 간접 차원에서 전치되고, 아포다이징되고, 0으로 채워지고, 위상이 지정되고 푸리에 변환됩니다. 최상의 결과를 얻으려면 간접 차원에서 과도한 0 채우기를 피해야 합니다. 일반적으로 nmrPipe에서는 'ZF -auto'를 사용합니다. 그런 다음 스펙트럼은 FID-Net에 입력하기 전에 전치되어야 합니다.
DNN에 대한 입력은 2D 동위상 간섭계(즉, 위에 설명된 대로 직접 차원이 아닌 간접 차원에서 처리됨)여야 합니다. 데이터가 3D인 경우 Pipe2xyz 유틸리티 또는 이와 유사한 유틸리티를 사용하여 2D 평면 세트로 변환해야 합니다. 예시 입력은 예시 폴더(test001.ft1)에 제공됩니다.
그런 다음 DNN의 출력을 처리(아포다이즈, 0 채우기, 푸리에 변환 및 허수 부분 삭제)하여 최종 결과를 얻을 수 있습니다. 예제 폴더에는 예제(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에 입력되기 전에 스펙트럼의 직접 차원은 위상화되지만 허수부는 삭제되지 않습니다. 그런 다음 스펙트럼은 간접 차원에서 전치되고, 아포다이징되고, 0으로 채워지고, 위상이 지정되고 푸리에 변환됩니다. 최상의 결과를 얻으려면 간접 차원에서 과도한 0 채우기를 피해야 합니다. 일반적으로 nmrPipe에서는 'ZF -auto'를 사용합니다. 그런 다음 스펙트럼은 FID-Net에 입력하기 전에 전치되어야 합니다.
DNN에 대한 입력은 2D 동위상 간섭계(즉, 위에 설명된 대로 직접 차원이 아닌 간접 차원에서 처리됨)여야 합니다. 데이터가 3D인 경우 Pipe2xyz 유틸리티 또는 이와 유사한 유틸리티를 사용하여 2D 평면 세트로 변환해야 합니다. 예시 입력은 예시 폴더(test001.ft1)에 제공됩니다.
그런 다음 DNN의 출력을 처리(아포다이즈, 0 채우기, 푸리에 변환 및 허수 부분 삭제)하여 최종 결과를 얻을 수 있습니다. 예제 폴더에는 예제(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 차원의 피크를 날카롭게 만듭니다.
예제 폴더에는 HDAC8이라는 라벨이 붙은 균일한 13C-1H에 대한 데이터가 포함되어 있습니다.
(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