الشبكات العصبية العميقة لتحليل بيانات المجال الزمني للرنين المغناطيسي النووي. يرى:
هذه هي النسخة القصيرة من هذا الملف التمهيدي. لمزيد من التفاصيل، انظر المزيد من التوضيحات التفصيلية أدناه.
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 متاحة (انظر أدناه).
لم يتم تضمين أوزان الشبكات العصبية في حزمة بايثون هذه، ولكن سيتم تنزيلها بسرعة عند الحاجة.
إذا كنت تريد تشغيل تنزيل الأوزان يدويًا لجميع النماذج المختلفة مرة واحدة، فاكتب:
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 المختلفة (باستثناء وحدة فصل 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. │
╰─────────────────────────────────────────────────────────────────────────────────╯
ملحوظة: يمكن أن يعمل جهاز الفصل فقط مع ما يصل إلى 512 نقطة معقدة في البعد 13C. سيتم اقتطاع الأطياف التي تحتوي على نقاط أكثر من ذلك عند 512 نقطة معقدة.
يتم توفير مثال للطيف المضاد للطور، في الطور (AP-IP) لـ T4L99A (test.ft1) في مجلد المثال.
يجب أن يكون الإدخال إلى DNN بتنسيق nmrPipe. في حالة استخدام مطياف Bruker، يجب تحويل ملف FID (ser) الخام إلى تنسيق nmrpipe باستخدام علامة DMX لفصل FID-Net حتى يتم تنفيذه بشكل صحيح.
قبل الإدخال في FID-Net، يتم تحديد البعد المباشر للطيف على مراحل ولكن لا يتم حذف الجزء التخيلي. يتم بعد ذلك نقل الطيف، وتعديل حجمه، وملءه صفرًا، ومراحله، وتحويل فورييه في البعد غير المباشر. للحصول على أفضل النتائج، يجب تجنب التعبئة المفرطة للصفر في البعد غير المباشر. عادة نستخدم فقط "ZF -auto" في nmrPipe. وينبغي بعد ذلك نقل الطيف قبل الدخول إلى 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 أن تعمل فقط مع ما يصل إلى 512 نقطة معقدة في البعد 13C. سيتم اقتطاع الأطياف التي تحتوي على نقاط أكثر من ذلك عند 512 نقطة معقدة.
يتم توفير مثال على طيف اليوبيكويتين في الطور (test001.ft1) في مجلد المثال.
يجب أن يكون الإدخال إلى DNN بتنسيق nmrPipe. في حالة استخدام مطياف Bruker، يجب تحويل ملف FID (ser) الخام إلى تنسيق nmrpipe باستخدام علامة DMX لفصل FID-Net حتى يتم تنفيذه بشكل صحيح.
قبل الإدخال في FID-Net، يتم تحديد البعد المباشر للطيف على مراحل ولكن لا يتم حذف الجزء التخيلي. يتم بعد ذلك نقل الطيف، وتعديل حجمه، وملءه صفرًا، ومراحله، وتحويل فورييه في البعد غير المباشر. للحصول على أفضل النتائج، يجب تجنب التعبئة المفرطة للصفر في البعد غير المباشر. عادة نستخدم فقط "ZF -auto" في nmrPipe. وينبغي بعد ذلك نقل الطيف قبل الدخول إلى FID-Net.
يجب أن يكون الإدخال إلى DNN عبارة عن مخطط تداخل ثنائي الأبعاد في الطور (أي تتم معالجته في البعد غير المباشر ولكن ليس البعد المباشر كما هو موضح أعلاه). إذا كانت البيانات ثلاثية الأبعاد، فيجب تحويلها إلى مجموعة من المستويات ثنائية الأبعاد باستخدام الأداة المساعدة Pipe2xyz أو ما شابه ذلك. يتم توفير إدخال نموذجي في مجلد المثال (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 أن تعمل فقط مع ما يصل إلى 512 نقطة معقدة في البعد 13C. سيتم اقتطاع الأطياف التي تحتوي على نقاط أكثر من ذلك عند 512 نقطة معقدة.
يتم توفير مثال على طيف اليوبيكويتين في الطور (test001.ft1) في مجلد المثال.
يجب أن يكون الإدخال إلى DNN بتنسيق nmrPipe. في حالة استخدام مطياف Bruker، يجب تحويل ملف FID (ser) الخام إلى تنسيق nmrpipe باستخدام علامة DMX لفصل FID-Net حتى يتم تنفيذه بشكل صحيح.
قبل الإدخال في FID-Net، يتم تحديد البعد المباشر للطيف على مراحل ولكن لا يتم حذف الجزء التخيلي. يتم بعد ذلك نقل الطيف، وتعديل حجمه، وملءه صفرًا، ومراحله، وتحويل فورييه في البعد غير المباشر. للحصول على أفضل النتائج، يجب تجنب التعبئة المفرطة للصفر في البعد غير المباشر. عادة نستخدم فقط "ZF -auto" في nmrPipe. وينبغي بعد ذلك نقل الطيف قبل الدخول إلى FID-Net.
يجب أن يكون الإدخال إلى DNN عبارة عن مخطط تداخل ثنائي الأبعاد في الطور (أي تتم معالجته في البعد غير المباشر ولكن ليس البعد المباشر كما هو موضح أعلاه). إذا كانت البيانات ثلاثية الأبعاد، فيجب تحويلها إلى مجموعة من المستويات ثنائية الأبعاد باستخدام الأداة المساعدة Pipe2xyz أو ما شابه ذلك. يتم توفير إدخال نموذجي في مجلد المثال (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. │
╰─────────────────────────────────────────────────────────────────────────────────╯
هذا الرمز مخصص لإعادة بناء أطياف NUS NMR ثنائية الأبعاد باستخدام بنية FID-Net. لاستخدام الكود يجب تحميل الملف الذي يحتوي على الأوزان الخاصة بالشبكة المدربة.
مخرجات الشبكة عبارة عن ملف 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. │
╰─────────────────────────────────────────────────────────────────────────────────╯
هذا الرمز مخصص لفصل أطياف HNCA وHN(COCA) ثلاثية الأبعاد باستخدام بنية FID-Net. ملاحظة: يمكن لوحدة فك الارتباط HNCA ثلاثية الأبعاد أن تعمل فقط مع ما يصل إلى 256 نقطة معقدة في البعد 13C. سيتم اقتطاع الأطياف التي تحتوي على نقاط أكثر من ذلك عند 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 بشكل موحد. يتطلب الكود اثنين من شبكات DNN استنادًا إلى بنية FID-Net. تقوم الشبكة الأولى بإزالة أداة التوصيل العددية 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