Jaringan Syaraf Dalam untuk Menganalisis data domain waktu NMR. Melihat:
Ini adalah versi singkat dari README ini. Untuk lebih jelasnya simak penjelasan lebih detailnya dibawah ini.
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
Pertama, kloning repositori:
git clone https://github.com/gogulan-k/FID-Net.git
Cara termudah untuk mendapatkan lingkungan kerja dengan semua paket yang dibutuhkan FID-Net, gunakan conda atau mamba dan file environment.yml yang disediakan:
cd FID-Net
mamba env update -f environment.yml
dan mengaktifkan lingkungan:
mamba activate fidnet
Menginstal lingkungan juga menginstal paket "fidnet", sehingga alat baris perintah fidnet tersedia (lihat di bawah).
Bobot jaringan saraf tidak termasuk dalam paket python ini, tetapi akan diunduh dengan cepat bila diperlukan.
Jika Anda ingin secara manual memicu pengunduhan bobot untuk semua model berbeda sekaligus, ketik:
fidnet download-weights
Bobot diunduh secara default ke direktori gitignored:
/data/weights
Anda dapat mengubah pengaturan seperti ini dengan menambahkan file .env atau mengatur variabel lingkungan yang menentukan FIDNET_DATA_DIR atau FIDNET_WEIGHTS_DIR:
# .env
FIDNET_WEIGHTS_DIR=/path/to/directory/with/weights.hd5
Untuk melihat semua pengaturan seperti itu, ketik:
fidnet settings
Jika Anda memiliki lingkungan kerja (dan NMRPipe terinstal, jika tidak lihat bagian selanjutnya), Anda dapat menguji apakah semuanya berfungsi dengan menjalankan semua contoh sekaligus:
fidnet run-examples
Ini akan mengunduh data contoh, menjalankan semua fungsi FID-Net yang berbeda (kecuali pemisah HNCA 3D, yang membutuhkan waktu lebih lama untuk dijalankan). Jika Anda hanya ingin mendownload data contoh, tanpa melakukan pemrosesan oleh model:
fidnet download-example-data
NMRPipe tidak dapat diinstal menggunakan conda. Jika Anda belum menginstalnya, Anda dapat menggunakan skrip yang disediakan untuk menginstalnya.
chmod +x install_nmrpipe.sh
install_nmrpipe.sh
NMRPipe memberikan beberapa instruksi tentang cara mengedit .cshrc Anda. Ini akan terlihat seperti ini:
if (-e < REPO_DIR > /bin/NMRPipe/com/nmrInit.linux212_64.com) then
source < REPO_DIR > /bin/NMRPipe/com/nmrInit.linux212_64.com
endif
Ikuti instruksi tersebut, sehingga perintah NMRPipe dapat ditemukan.
Silakan merujuk ke --help di alat baris perintah. Setiap perintah memiliki bantuannya sendiri, menjelaskan apa argumen masukannya.
(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. │
╰─────────────────────────────────────────────────────────────────────────────────╯
Catatan: dekopler hanya dapat bekerja hingga 512 titik kompleks dalam dimensi 13C. Spektrum yang mengandung lebih banyak titik daripada ini akan terpotong di 512 titik kompleks.
Contoh spektrum antifase, dalam fase (AP-IP) T4L99A (test.ft1) disediakan di folder contoh.
Masukan ke DNN harus dalam format nmrPipe. Jika menggunakan spektrometer Bruker, file FID mentah (ser) harus dikonversi ke format nmrpipe menggunakan flag DMX agar pemisahan FID-Net dapat berfungsi dengan benar.
Sebelum dimasukkan ke dalam FID-Net, dimensi spektrum langsung ditahbiskan tetapi bagian imajinernya tidak dihapus. Spektrum kemudian ditransposisikan, dipodisasi, diisi nol, bertahap dan ditransformasikan Fourier dalam dimensi tidak langsung. Untuk hasil terbaik, pengisian nol yang berlebihan pada dimensi tidak langsung harus dihindari. Biasanya kami hanya menggunakan 'ZF -auto' di nmrPipe. Spektrum kemudian harus dialihkan sebelum masuk ke FID-Net.
Masukan ke DNN harus berupa interferogram dalam fase 2D (yaitu diproses dalam dimensi tidak langsung namun tidak dalam dimensi langsung seperti dijelaskan di atas).
Output dari DNN kemudian dapat diproses (apodized, zero-filled, Fourier transform dan bagian imajiner dihapus) untuk memberikan hasil akhir. Contoh (final_proc.com) disediakan di folder contoh.
(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. │
╰─────────────────────────────────────────────────────────────────────────────────╯
Catatan: dekopler CON 2D hanya dapat bekerja hingga 512 titik kompleks dalam dimensi 13C. Spektrum yang mengandung lebih banyak titik daripada ini akan terpotong di 512 titik kompleks.
Contoh spektrum ubiquitin dalam fase (test001.ft1) disediakan di folder contoh.
Masukan ke DNN harus dalam format nmrPipe. Jika menggunakan spektrometer Bruker, file FID mentah (ser) harus dikonversi ke format nmrpipe menggunakan flag DMX agar pemisahan FID-Net dapat berfungsi dengan benar.
Sebelum dimasukkan ke dalam FID-Net, dimensi spektrum langsung ditahbiskan tetapi bagian imajinernya tidak dihapus. Spektrum kemudian ditransposisikan, dipodisasi, diisi nol, bertahap dan ditransformasikan Fourier dalam dimensi tidak langsung. Untuk hasil terbaik, pengisian nol yang berlebihan pada dimensi tidak langsung harus dihindari. Biasanya kami hanya menggunakan 'ZF -auto' di nmrPipe. Spektrum kemudian harus dialihkan sebelum masuk ke FID-Net.
Masukan ke DNN harus berupa interferogram dalam fase 2D (yaitu diproses dalam dimensi tidak langsung tetapi bukan dimensi langsung seperti dijelaskan di atas). Jika datanya 3D maka harus diubah menjadi sekumpulan bidang 2D menggunakan utilitas pipe2xyz atau serupa. Input contoh disediakan di folder contoh (test001.ft1).
Keluaran DNN kemudian dapat diproses (diapodisasi, diisi nol, diubah Fourier, dan bagian imajiner dihapus) untuk memberikan hasil akhir. Contoh (final_proc.com) disediakan di folder contoh.
(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. │
╰─────────────────────────────────────────────────────────────────────────────────╯
Catatan: dekopler 2D 13Ct-13Cp hanya dapat bekerja hingga 512 titik kompleks dalam dimensi 13C. Spektrum yang mengandung lebih banyak titik daripada ini akan terpotong di 512 titik kompleks.
Contoh spektrum ubiquitin dalam fase (test001.ft1) disediakan di folder contoh.
Masukan ke DNN harus dalam format nmrPipe. Jika menggunakan spektrometer Bruker, file FID mentah (ser) harus dikonversi ke format nmrpipe menggunakan flag DMX agar pemisahan FID-Net dapat berfungsi dengan benar.
Sebelum dimasukkan ke dalam FID-Net, dimensi spektrum langsung ditahbiskan tetapi bagian imajinernya tidak dihapus. Spektrum kemudian ditransposisikan, dipodisasi, diisi nol, bertahap dan ditransformasikan Fourier dalam dimensi tidak langsung. Untuk hasil terbaik, pengisian nol yang berlebihan pada dimensi tidak langsung harus dihindari. Biasanya kami hanya menggunakan 'ZF -auto' di nmrPipe. Spektrum kemudian harus dialihkan sebelum masuk ke FID-Net.
Masukan ke DNN harus berupa interferogram dalam fase 2D (yaitu diproses dalam dimensi tidak langsung tetapi bukan dimensi langsung seperti dijelaskan di atas). Jika datanya 3D maka harus diubah menjadi sekumpulan bidang 2D menggunakan utilitas pipe2xyz atau serupa. Input contoh disediakan di folder contoh (test001.ft1).
Output dari DNN kemudian dapat diproses (apodized, zero-filled, Fourier transform dan bagian imajiner dihapus) untuk memberikan hasil akhir. Contoh (final_proc.com) disediakan di folder contoh.
(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. │
╰─────────────────────────────────────────────────────────────────────────────────╯
Kode ini untuk merekonstruksi spektrum NUS NMR 2D menggunakan arsitektur FID-Net. Untuk menggunakan kode ini, file yang berisi bobot untuk jaringan terlatih harus diunduh.
Output dari jaringan adalah file nmrPipe dengan dimensi tidak langsung yang direkonstruksi dalam domain waktu. Dimensi tidak langsung sekarang dapat diproses (apodized, zero-filled, bertahap dan transformasi Fourier) untuk menghasilkan spektrum akhir yang direkonstruksi. Analisis ini juga menghasilkan std.ft2, yang memberikan ukuran keyakinan terhadap keluarannya. Ini juga dalam format nmrPipe dan telah diproses sebelumnya dan diubah Fourier sesuai dengan parameter default. Jika ini salah, transformasi Hilbert dan transformasi Fourier terbalik dapat diterapkan untuk mengembalikannya ke domain waktu sebelum diproses ulang.
Ada file contoh untuk HDAC di folder contoh, bersama dengan jadwal pengambilan sampel.
(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. │
╰─────────────────────────────────────────────────────────────────────────────────╯
Kode ini untuk memisahkan spektrum 3D HNCA dan HN(COCA) menggunakan arsitektur FID-Net. Catatan: dekopler HNCA 3D hanya dapat bekerja hingga 256 titik kompleks dalam dimensi 13C. Spektrum yang mengandung lebih banyak titik daripada ini akan terpotong di 256 titik kompleks.
(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. │
╰─────────────────────────────────────────────────────────────────────────────────╯
Kode ini untuk meningkatkan resolusi spektrum protein dari protein 13C-1H yang seragam. Kode ini memerlukan dua DNN berdasarkan arsitektur FID-Net. Jaringan pertama menghilangkan satu kopling skalar 13C-13C dan mempertajam puncak dalam dimensi 13C. Jaringan kedua mempertajam puncak dalam dimensi 1H.
Folder contoh berisi data untuk seragam 13C-1H berlabel 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. │
╰─────────────────────────────────────────────────────────────────────────────────╯
Anda dapat memasang kait pra-komit yang melakukan beberapa pemeriksaan sebelum Anda mengkomit kode Anda:
pip install -e ".[dev]"
pre-commit install