يحافظ AlphaPulldown بشكل كامل على التوافق مع الإصدارات السابقة مع ملفات الإدخال والبرامج النصية من الإصدارات 1.x.
AlphaPulldown: الإصدار 2.0.0 (بيتا)
جدول المحتويات
حول ألفا المنسدلة
ملخص
قواعد بيانات ألفا فولد
Snakemake AlphaPulldown
1. التثبيت
2. التكوين
3. التنفيذ
قم بتشغيل واجهة سطر أوامر AlphaPulldown Python
إنشاء دفتر Jupyter
إنشاء جدول النتائج
الخطوة التالية
الخطوة التالية
2.1. تشغيل أساسي
2.2. مثال على التشغيل مع SLURM (مجموعة EMBL)
2.3. وضع المنسدلة
2.4. وضع الكل مقابل الكل
2.5. التشغيل باستخدام القوالب المخصصة (TrueMultimer)
2.6. التشغيل باستخدام البيانات المتشابكة (AlphaLink2)
مدخل
تنفيذ البرنامج النصي: التنبؤ بالهيكل
الإخراج
الخطوة التالية
مدخل
تنفيذ البرنامج النصي
الإخراج والخطوة التالية
وضع "المنسدلة" متعدد المدخلات
الإخراج والخطوة التالية
مدخل
تنفيذ البرنامج النصي للتنبؤ ببنية TrueMultimer
الإخراج والخطوة التالية
مدخل
قم بالتشغيل مع تنبؤ AlphaLink2 عبر AlphaPulldown
الإخراج والخطوة التالية
1.1. تشغيل أساسي
1.2. أمثلة على البرامج النصية bash لـ SLURM (مجموعة EMBL)
1.3. التشغيل باستخدام قواعد بيانات MMseqs2 وColabFold (أسرع)
1.4. التشغيل باستخدام قوالب مخصصة (TrueMultimer)
مدخل
تنفيذ البرنامج النصي
الإخراج
الخطوة التالية
مدخل
تنفيذ البرنامج النصي
الخطوة التالية
تشغيل MMseqs2 عن بعد
الإخراج
قم بتشغيل MMseqs2 محليًا
الخطوة التالية
مدخل
تنفيذ البرنامج النصي
الإخراج
الخطوة التالية
0.1. إنشاء بيئة اناكوندا
0.2. التثبيت باستخدام النقطة
0.3. التثبيت لأدوات التحليل المصب
0.4. تثبيت بيانات الإدخال عبر الارتباط بواسطة AlphaLink2 (اختياري!)
0.5. التثبيت للمطورين
0. التثبيت
1. حساب محاذاة التسلسل المتعدد (MSA) وميزات القالب (مرحلة وحدة المعالجة المركزية)
2. توقع الهياكل (مرحلة GPU)
3. التحليل والتصور
تحليل المصب
إنقاص حجم إخراج AlphaPulldown
تحويل النماذج من تنسيق PDB إلى تنسيق ModelCIF
1. تحويل كافة النماذج إلى ملفات ModelCIF منفصلة
2. تحويل نموذج واحد محدد فقط لكل مجمع
3. أن يكون لديك نموذج تمثيلي واحتفظ بالنماذج المرتبطة به
أرشيفات مضغوطة مرتبطة
خيارات متنوعة
دفتر جوبيتر
جدول النتائج
البرامج النصية لإدارة النتائج
قاعدة بيانات الميزات
قائمة الكائنات المتاحة:
تنزيل ميزات البروتين المحددة:
تنزيل جميع الميزات للكائن الحي:
خطوات:
التحقق من التثبيت:
تثبيت
إعدادات
مميزات التحميل
AlphaPulldown هو تطبيق مخصص لـ AlphaFold-Multimer مصمم لإجراء فحص عالي الإنتاجية قابل للتخصيص لتفاعلات البروتين والبروتين. إنه يوسع قدرات AlphaFold من خلال دمج خيارات التشغيل الإضافية، مثل القوالب الهيكلية متعددة القسيمات القابلة للتخصيص (TrueMultimer)، ومحاذاة التسلسل المتعدد MMseqs2 (MSA) عبر قواعد بيانات ColabFold، وتنبؤات أجزاء البروتين، والقدرة على دمج بيانات المواصفات الجماعية كمدخل باستخدام AlphaLink2.
يمكن استخدام AlphaPulldown بطريقتين: إما عن طريق خط أنابيب من خطوتين مصنوع من نصوص بايثون ، أو عن طريق خط أنابيب Snakemake ككل. للحصول على تفاصيل حول استخدام مسار Snakemake، يرجى الرجوع إلى مستودع GitHub المنفصل.
الشكل 1 نظرة عامة على AlphaPulldown worflow
يتضمن سير عمل AlphaPulldown الخطوات الثلاث التالية:
إنشاء وتخزين MSA وميزات القالب :
في هذه الخطوة، يبحث AlphaFold في قواعد البيانات المثبتة مسبقًا باستخدام HMMER لكل تسلسل بروتين تم الاستعلام عنه ويحسب محاذاة التسلسلات المتعددة (MSAs) لجميع المتماثلات التي تم العثور عليها. كما يبحث أيضًا عن الهياكل المتماثلة لاستخدامها كقوالب لإنشاء الميزات. هذه الخطوة تتطلب وحدة المعالجة المركزية فقط.
تشمل الخيارات القابلة للتخصيص ما يلي:
لتسريع عملية البحث، يمكن استخدام MMSeq2 بدلاً من HHMER الافتراضي.
استخدم MSA المخصص.
استخدم قالبًا هيكليًا مخصصًا، بما في ذلك قالب متعدد القسيمات (وضع TrueMultimer).
التنبؤ بالهيكل :
في هذه الخطوة، تعمل شبكة AlphaFold العصبية وتنتج بنية البروتين النهائية، مما يتطلب وحدة معالجة الرسومات. تتمثل إحدى نقاط القوة الرئيسية لـ AlphaPulldown في قدرته على التحديد المرن لكيفية دمج البروتينات للتنبؤ ببنية مجمعات البروتين. فيما يلي الأساليب الثلاثة الرئيسية التي يمكنك استخدامها:
الشكل 2: ثلاثة سيناريوهات نموذجية يغطيها AlphaPulldown
بالإضافة إلى ذلك، يسمح AlphaPulldown أيضًا بما يلي:
حدد فقط منطقة (مناطق) البروتينات التي تريد التنبؤ بها بدلاً من التسلسلات كاملة الطول.
اضبط عمق MSA للتحكم في تأثير MSA الأولي على النموذج النهائي.
دمج بيانات الارتباط المتشابك عالية الإنتاجية مع نمذجة AlphaFold عبر AlphaLink2.
ملف واحد (وضع مخصص أو وضع قليل القسيمات المتجانسة): قم بإنشاء ملف حيث يسرد كل صف تسلسلات البروتين التي تريد التنبؤ بها معًا أو يخبر كل صف البرنامج بنمذجة القلة المتجانسة بعدد النسخ المحدد.
ملفات متعددة (الوضع المنسدل): توفير عدة ملفات، يحتوي كل منها على تسلسلات البروتين. سيقوم AlphaPulldown تلقائيًا بإنشاء جميع المجموعات الممكنة عن طريق ربط صفوف أسماء البروتين من كل ملف.
الكل مقابل الكل : سيقوم AlphaPulldown بإنشاء جميع المجموعات الممكنة غير الزائدة من البروتينات في القائمة.
تحليل النتائج النهائية :
يمكن تنظيم نتائج جميع النماذج المتوقعة باستخدام أحد الخيارات التالية:
جدول يحتوي على درجات مختلفة ومعايير فيزيائية للتفاعلات المعقدة للبروتين.
دفتر Jupyter يحتوي على نماذج بروتينية ثلاثية الأبعاد تفاعلية ومخططات PAE.
بالنسبة لحساب MSA القياسي وحساب الميزات، يتطلب AlphaPulldown قواعد بيانات جينية. تحقق مما إذا كنت قد قمت بتنزيل المعلمات وقواعد البيانات الضرورية (على سبيل المثال، BFD، MGnify، وما إلى ذلك) وفقًا للتعليمات في وثائق AlphaFold. يجب أن يكون لديك دليل منظم على النحو التالي:
alphafold_database/ # Total: ~ 2.2 TB (download: 438 GB)
bfd/ # ~ 1.7 TB (download: 271.6 GB)
# 6 files.
mgnify/ # ~ 64 GB (download: 32.9 GB)
mgy_clusters_2018_12.fa
params/ # ~ 3.5 GB (download: 3.5 GB)
# 5 CASP14 models,
# 5 pTM models,
# 5 AlphaFold-Multimer models,
# LICENSE,
# = 16 files.
pdb70/ # ~ 56 GB (download: 19.5 GB)
# 9 files.
pdb_mmcif/ # ~ 206 GB (download: 46 GB)
mmcif_files/
# About 227,000 .cif files.
obsolete.dat
pdb_seqres/ # ~ 0.2 GB (download: 0.2 GB)
pdb_seqres.txt
small_bfd/ # ~ 17 GB (download: 9.6 GB)
bfd-first_non_consensus_sequences.fasta
uniref30/ # ~ 86 GB (download: 24.9 GB)
# 14 files.
uniprot/ # ~ 98.3 GB (download: 49 GB)
uniprot.fasta
uniref90/ # ~ 58 GB (download: 29.7 GB)
uniref90.fasta
ملحوظة
Uniclust30 هو إصدار قاعدة البيانات الذي تم إنشاؤه قبل عام 2019، وUniRef30 هو الإصدار الذي تم إنشاؤه بعد عام 2019. يرجى ملاحظة أن AlphaPulldown يستخدم UniRef30_2023_02 بشكل افتراضي. يمكن تنزيل هذا الإصدار عن طريق هذا البرنامج النصي. وبدلاً من ذلك، يرجى استبدال المسار الافتراضي لقاعدة بيانات uniref30 باستخدام علامة --uniref30_database_path الخاصة بـ create_individual_features.py.
ملحوظة
نظرًا لأن التثبيت المحلي لجميع قواعد البيانات الجينية يستهلك مساحة، يمكنك بدلاً من ذلك استخدام قواعد بيانات MMseqs2 وColabFold التي يتم تشغيلها عن بعد. اتبع التعليمات المقابلة. ومع ذلك، لكي يعمل AlphaPulldown، يجب عليك تنزيل المعلمات المخزنة في الدليل params/
الخاص بقاعدة بيانات AlphaFold.
يتوفر AlphaPulldown كخط أنابيب Snakemake، مما يسمح لك بالتنفيذ التسلسلي (1) إنشاء اتفاقات الخدمة وميزات القالب، (2) التنبؤ بالبنية، و (3) تحليل النتائج دون تدخل يدوي بين الخطوات. لمزيد من التفاصيل، يرجى الرجوع إلى مستودع AlphaPulldownSnakemake .
تحذير
يختلف إصدار Snakemake من AlphaPulldown قليلاً عن AlphaPulldown التقليدي القائم على البرامج النصية من حيث مواصفات ملف الإدخال.
قبل التثبيت، تأكد من أن إصدار بايثون لديك هو 3.10 على الأقل.
بيثون3--النسخة
تثبيت التبعيات
تثبيت النقطة على شكل ثعبان==7.32.4 نشر ثعبان==0.10.0 لب==2.7 نقرة==8.1 قاطعة ملفات تعريف الارتباط==2.6
إعداد مجموعة Snakemake
من أجل السماح لـSnakemake بالتفاعل مع مجموعة حسابية، سنستخدم Snakemake-Profile لـ SLURM. إذا كنت لا تعمل على مجموعة SLURM، يمكنك العثور على ملفات تعريف لمختلف البنيات هنا. سيقوم ما يلي بإنشاء ملف تعريف يمكن استخدامه مع Snakemake ويطالبك ببعض المعلومات الإضافية.
استنساخ بوابة https://github.com/Snakemake-Profiles/slurm.git Profile_dir="${HOME}/.config/snakemake"mkdir -p "$profile_dir"template="gh:Snakemake-Profiles/slurm"cookiecutter --output-dir "$profile_dir" "$template"
أثناء عملية الإعداد، سيُطلب منك الإجابة على العديد من أسئلة التكوين. فيما يلي الأسئلة والإجابات الموصى بها:
profile_name [slurm]:
slurm_noSidecar
Select use_singularity:
1 (خطأ)
Select use_conda:
1 (خطأ)
jobs [500]:
(اضغط على Enter لقبول الإعداد الافتراضي)
restart_times [0]:
(اضغط على Enter لقبول الإعداد الافتراضي)
max_status_checks_per_second [10]:
(اضغط على Enter لقبول الإعداد الافتراضي)
max_jobs_per_second [10]:
(اضغط على Enter لقبول الإعداد الافتراضي)
latency_wait [5]:
30
Select print_shell_commands:
1 (خطأ)
sbatch_defaults []:
qos=العقد المنخفضة=1
Select cluster_sidecar:
2 (لا)
cluster_name []:
(اضغط على Enter لترك الحقل فارغًا)
cluster_jobname [%r_%w]:
(اضغط على Enter لقبول الإعداد الافتراضي)
cluster_logpath [logs/slurm/%r/%j]:
(اضغط على Enter لقبول الإعداد الافتراضي)
cluster_config []:
(اضغط على Enter لترك الحقل فارغًا)
بعد الاستجابة لهذه المطالبات، سيتم تكوين ملف تعريف Slurm الخاص بك المسمى slurm_noSidecar لـ Snakemake على النحو المحدد.
التفرد (ربما تم تثبيته بالفعل) : يستخدم خط الأنابيب هذا الحاويات لإمكانية التكاثر. إذا كنت تعمل على تفرد مجموعة EMBL مثبت بالفعل ويمكنك تخطي هذه الخطوة. بخلاف ذلك، يرجى تثبيت Singularity باستخدام دليل Singularity الرسمي.
تنزيل خط الأنابيب : سيؤدي هذا إلى تنزيل الإصدار المحدد بواسطة '--tag' لخط أنابيب Snakemake وإنشاء مستودع AlphaPulldownSnakemake أو أي اسم آخر تختاره.
ثعبان نشر سير العمل https://github.com/KosinskiLab/AlphaPulldownSnakemake AlphaPulldownSnakemake --العلامة 1.4.0cd AlphaPulldownSnakemake
ملحوظة
إذا كنت تريد استخدام أحدث إصدار من GitHub، فاستبدل --tag XXX
بـ --branch main
تثبيت حزمة CCP4 : لتثبيت البرنامج المطلوب لخطوة التحليل، يرجى اتباع التعليمات التالية:
قم بتنزيل ما يسمى بصورة التفرد باستخدام حزمة برامج التحليل الخاصة بنا
التفرد سحب عامل الميناء://kosinskilab/fold_analogy:latest بناء التفرد --sandboxfold_analogy_latest.sif
يمكن أن يكون
قم بتنزيل CCP4 من https://www.ccp4.ac.uk/download/#os=linux وانسخه إلى الخادم الخاص بك
القطران xvzf ccp4-9.0.003-linux64.tar.gzcd ccp4-9 cp bin/pisa bin/sc/software/ cp /lib/* /software/lib64/
قم بإنشاء تفرد جديد مع تضمين CCP4
cd <الدليل حيث تريد الاحتفاظ ببرامجك المحلية> بناء التفرد Fold_analogy_latest_withCCP4.sif
يجب أن يقوم بإنشاء ملف fold_analysis_latest_withCCP4.sif
.
يمكنك حذف
اضبط config/config.yaml
لحالة الاستخدام الخاصة بك.
إذا كنت تريد استخدام CCP4 للتحليل، فافتح config/config.yaml
في محرر النصوص وقم بتغيير المسار إلى حاوية التحليل إلى:
Analysis_container: "/path/to/fold_analogy_latest_withCCP4.sif"
input_files يحمل هذا المتغير المسار إلى نموذج الورقة الخاص بك، حيث يتوافق كل سطر مع مهمة الطي. بالنسبة لخط الأنابيب هذا، نستخدم مواصفات التنسيق التالية:
protein:N:start-stop[_protein:N:start-stop]*
حيث البروتين هو مسار إلى ملف بامتداد ".fasta" أو معرف uniprot، N هو عدد المونومرات لهذا البروتين المعين والبدء والتوقف هما البقايا التي ينبغي التنبؤ بها. ومع ذلك، مطلوب البروتين فقط، ويمكن حذف N، start و stop. وبالتالي فإن وظائف الطي التالية لمثال البروتين الذي يحتوي على بقايا 1-50 متكافئة:
example:2 example_example example:2:1-50 example:1-50_example:1-50 example:1:1-50_example:1:1-50
يمتد هذا التنسيق بالمثل لطي المتغايرات:
example1_example2
بافتراض أن لديك نموذجين من الأوراق config/sample_sheet1.csv وconfig/sample_sheet2.csv. سيكون ما يلي مكافئًا لحساب الكل مقابل الكل في Sample_sheet1.csv:
input_files : - config/sample_sheet1.csv - config/sample_sheet1.csv
في حين أن المقتطف أدناه سيكون مكافئًا لحساب القائمة المنسدلة بين Sample_sheet1.csv وsample_sheet2.csv
input_files : - config/sample_sheet1.csv - config/sample_sheet2.csv
يمكن توسيع هذا التنسيق إلى أي عدد تريده من الملفات، ولكن ضع في اعتبارك أن عدد الطيات سيزداد بشكل كبير.
input_files : - config/sample_sheet1.csv - config/sample_sheet2.csv - ...
alphafold_data_directory هذا هو المسار إلى قاعدة بيانات alphafold الخاصة بك.
سوف يقوم Output_directory Snakemake بكتابة مخرجات خط الأنابيب إلى هذا الدليل. إذا لم يكن موجودا، سيتم إنشاؤه.
save_msa، use_precomputed_msa، التنبؤات_per_model، number_of_recycles، report_cutoff وسيطات سطر الأوامر التي تم تمريرها مسبقًا إلى run_multimer_jobs.py الخاص بـ AlphaPulldown و create_notebook.py (report_cutoff).
alphafold_inference_threads، alphafold_inference Slurm معلمات محددة لا تحتاج إلى تعديل من قبل المستخدمين غير الخبراء.
Only_generate_features إذا تم تعيينه على True، فإنه يتوقف بعد إنشاء الميزات ولا يقوم بالتنبؤ بالبنية وإعداد التقارير عنها.
بعد اتباع خطوات التثبيت والتكوين، أنت الآن جاهز لتشغيل خط أنابيب Snakemake. للقيام بذلك، انتقل إلى دليل خط الأنابيب المستنسخ وقم بتشغيل:
com.snakemake --استخدام التفرد --singularity-args "-B /scratch:/scratch -B /g/kosinski:/g/kosinski --nv" - وظائف 200 --إعادة التشغيل-مرات 5 --الملف الشخصي slurm_noSidecar --إعادة التشغيل غير مكتملة - إعادة تشغيل مشغلات mtime --زمن الوصول-الانتظار 30 -ن
فيما يلي تفاصيل لما تفعله كل وسيطة:
--use-singularity
: يتيح استخدام حاويات Singularity. وهذا يسمح باستنساخ وعزل بيئة خطوط الأنابيب.
--singularity-args
: يحدد الوسائط التي تم تمريرها مباشرة إلى Singularity. في المثال المقدم:
-B /scratch:/scratch
و -B /g/kosinski:/g/kosinski
: هذه هي نقاط ربط الربط. إنها تجعل الأدلة من نظامك المضيف يمكن الوصول إليها داخل حاوية التفرد. --nv
يضمن أن الحاوية يمكنها الاستفادة من وحدات معالجة الرسومات المضيفة.
--profile name_of_your_profile
: يحدد ملف تعريف Snakemake المراد استخدامه (على سبيل المثال، ملف تعريف SLURM الذي قمت بإعداده لتنفيذ المجموعة).
--rerun-triggers mtime
: يعيد تشغيل مهمة إذا تم تعديل ملف معين (مشغل) مؤخرًا أكثر من مخرجات المهمة. هنا، يتحقق mtime
من وقت تعديل الملف.
--jobs 500
: يسمح بتقديم ما يصل إلى 500 وظيفة إلى المجموعة في وقت واحد.
--restart-times 10
: يحدد أنه يمكن إعادة تشغيل المهام تلقائيًا حتى 10 مرات في حالة فشلها.
--rerun-incomplete
: يفرض إعادة تشغيل أي مهام تم تركها غير مكتملة في عمليات تشغيل Snakemake السابقة.
--latency-wait 30
: ينتظر لمدة 30 ثانية بعد انتهاء الخطوة للتحقق من وجود ملفات الإخراج المتوقعة. يمكن أن يكون هذا مفيدًا في أنظمة الملفات ذات زمن الوصول العالي.
-n
: علامة التشغيل الجاف. وهذا يجعل Snakemake يعرض الأوامر التي سيتم تشغيلها دون تنفيذها فعليًا. إنه مفيد للاختبار. لتشغيل المسار بشكل حقيقي، ما عليك سوى إزالة هذه العلامة.
سيؤدي تنفيذ الأمر أعلاه إلى إرسال المهام التالية إلى المجموعة:
يمكن استخدام AlphaPulldown كمجموعة من البرامج النصية لكل خطوة معينة.
create_individual_features.py
: إنشاء محاذاة تسلسل متعددة (MSA)، وتحديد القوالب الهيكلية، وتخزين النتائج في ملفات .pkl
للميزات الأحادية.
run_multimer_jobs.py
: ينفذ التنبؤ بالهياكل.
create_notebook.py
و alpha-analysis.sif
: يقومان بإعداد مفكرة Jupyter التفاعلية وجدول النتائج، على التوالي.
أولاً ، قم بتثبيت Anaconda وإنشاء بيئة AlphaPulldown، وجمع التبعيات الضرورية. نوصي باستخدام مامبا لتسريع حل التبعيات:
conda create -n AlphaPulldown -c omnia -c bioconda -c conda-forge python==3.11 openmm==8.0 pdbfixer==1.9 kalign2 hhsuite hmmer modelcif
مصدر تفعيل AlphaPulldown
يعمل هذا عادةً، ولكن في بعض أنظمة الحوسبة، قد يفضل المستخدمون استخدام إصدارات أخرى أو إصدارات محسنة من HMMER وHH-suite المثبتة بالفعل.
قم بتنشيط بيئة AlphaPulldown وقم بتثبيت AlphaPulldown:
مصدر تفعيل AlphaPulldown python3 -m pip تثبيت alphapulldown
تثبيت النقطة -U "jax[cuda12]"
ملحوظة
بالنسبة للإصدارات الأقدم من AlphaFold : إذا لم تقم بتحديث قواعد البيانات الخاصة بك وفقًا لمتطلبات AlphaFold 2.3.0، فلا يزال بإمكانك استخدام AlphaPulldown مع الإصدار الأقدم من قاعدة بيانات AlphaFold. يرجى اتباع تعليمات التثبيت في الفرع المخصص.
تثبيت حزمة CCP4 : لتثبيت البرنامج المطلوب لخطوة التحليل، يرجى اتباع التعليمات التالية:
التفرد سحب عامل الميناء://kosinskilab/fold_analogy:latest بناء التفرد --sandboxfold_analogy_latest.sif# قم بتنزيل الجزء العلوي من https://www.ccp4.ac.uk/download/#os=linuxtar xvzf ccp4-9.0.003-linux64.tar.gzcd ccp4-9 cp bin/pisa bin/sc /software/ cp /lib/* /software/lib64/ بناء التفرد
تأكد من تثبيت PyTorch المتوافق مع إصدار CUDA لديك. هنا سوف نأخذ CUDA 11.7 وPyTorch 1.13.0 كمثال:
شعلة تثبيت النقطة ==1.13.0+cu117 --extra-index-url https://download.pytorch.org/whl/cu117
تجميع UniCore.
مصدر تفعيل AlphaPulldown استنساخ بوابة https://github.com/dptech-corp/Uni-Core.gitcd Uni-Core تثبيت python setup.py --disable-cuda-ext # اختبار ما إذا كان قد تم تثبيت unicore بنجاحpython -c "import unicore"
قد ترى التحذير التالي، لكن لا بأس:
fused_multi_tensor is not installed corrected
fused_rounding is not installed corrected
fused_layer_norm is not installed corrected
fused_softmax is not installed corrected
قم بتنزيل نقاط فحص PyTorch من Zenodo وفك ضغطها، ثم يجب أن تحصل على ملف باسم: AlphaLink-Multimer_SDA_v3.pt
فقط للمطورين الذين يرغبون في تعديل رموز AlphaPulldown واختبار تعديلاتهم. الرجاء إضافة مفتاح SSH إلى حساب GitHub الخاص بك
استنساخ جيثب الريبو
git clone --recurse-submodules [email protected]:KosinskiLab/AlphaPulldown.gitcd AlphaPulldown git الوحدة الفرعية init تحديث الوحدة الفرعية git
قم بإنشاء بيئة Conda كما هو موضح في إنشاء بيئة Anaconda
قم بتثبيت حزمة AlphaPulldown وأضف وحداتها الفرعية إلى بيئة Conda (لا تعمل إذا كنت تريد تحديث التبعيات)
مصدر تفعيل AlphaPulldowncd AlphaPulldown تثبيت النقطة .تثبيت النقطة -e . --no-deps تثبيت النقطة -e ColabFold --no-deps تثبيت النقطة -e alphafold --no-deps
عليك أن تفعل ذلك مرة واحدة فقط.
عندما تريد التطوير، قم بتنشيط البيئة، وتعديل الملفات، ويجب التعرف على التغييرات تلقائيًا.
اختبر الحزمة الخاصة بك أثناء التطوير باستخدام الاختبارات في test/
، على سبيل المثال:
نقطة تثبيت pytest اختبار pytest -s/ pytest -s test/test_predictions_slurm.py pytest -s test/test_features_with_templates.py::TestCreateIndividualFeaturesWithTemplates::test_1a_run_features_generation
قبل الدفع إلى جهاز التحكم عن بعد أو إرسال طلب سحب:
تثبيت النقطة .pytest -s اختبار /
لتثبيت الحزمة واختبارها. يعمل Pytest للتنبؤات فقط في حالة توفر SLURM. تحقق من ملفات السجل التي تم إنشاؤها في الدليل الحالي الخاص بك.
ملحوظة
إذا كنت تعمل مع بروتينات من كائنات نموذجية، فيمكنك تنزيل ملفات الميزات مباشرةً من قاعدة بيانات ميزات AlphaPulldown وتخطي هذه الخطوة.
هذا مثال عام لاستخدام create_individual_features.py
. للحصول على معلومات حول تشغيل مهام محددة أو التنفيذ المتوازي على مجموعة، يرجى الرجوع إلى الأقسام المقابلة في هذا الفصل.
في هذه الخطوة، تحتاج إلى توفير ملف بتنسيق البروتين FASTA يحتوي على جميع تسلسلات البروتين التي سيتم استخدامها للتنبؤ المعقد.
مثال لملف FASTA ( sequences.fasta
):
>proteinA
SEQUENCEOFPROTEINA
>proteinB
SEQUENCEOFPROTEINB
قم بتنشيط بيئة AlphaPulldown وقم بتشغيل البرنامج النصي create_individual_features.py
كما يلي:
مصدر تفعيل AlphaPulldown create_individual_features.py --fasta_paths=--data_dir=<المسار إلى قواعد بيانات Alphafold> --output_dir= --max_template_date=<أي تاريخ تريده، بتنسيق مثل: 01-01-2050>
بدلاً من
قم بتوفير مسار لملف الإدخال FASTA الخاص بك. يمكنك أيضًا توفير ملفات متعددة مفصولة بفواصل.
بدلاً من
قم بتوفير مسار إلى قاعدة البيانات الجينية (انظر 0. قواعد بيانات Alphafold لجزء التثبيت).
بدلاً من
قم بتوفير مسار إلى دليل الإخراج، حيث سيتم حفظ ملفات الميزات الخاصة بك.
هناك حاجة إلى تاريخ في العلامة --max_template_date
لتقييد البحث عن هياكل البروتين التي تم إيداعها قبل التاريخ المحدد. ما لم يكن التاريخ متأخرًا عن تاريخ آخر تحديث لقاعدة بيانات الجينوم المحلية لديك، فسيقوم البرنامج النصي بالبحث عن القوالب بين جميع الهياكل المتاحة.
يحتوي البرنامج النصي لحساب الميزات create_individual_features.py
على العديد من العلامات الاختيارية:
--[no]save_msa_files
: افتراضيًا يكون False لحفظ مرحلة التخزين ولكن يمكن تغييره إلى True . إذا تم ضبطه على True
، فسيقوم البرنامج بإنشاء مجلد فردي لكل بروتين. سيبدو دليل الإخراج كما يلي:
output_dir
|- proteinA.pkl
|- proteinA
|- uniref90_hits.sto
|- pdb_hits.sto
|- etc.
|- proteinB.pkl
|- proteinB
|- uniref90_hits.sto
|- pdb_hits.sto
|- etc.
إذا كان save_msa_files=False
، فسيبدو output_dir
بالشكل التالي:
output_dir
|- proteinA.pkl
|- proteinB.pkl
--[no]use_precomputed_msas
: القيمة الافتراضية هي False
. ومع ذلك، إذا كان لديك بالفعل ملفات MSA للبروتينات الخاصة بك، فيرجى تعيين المعلمة لتكون True وترتيب ملفات MSA الخاصة بك بالتنسيق كما يلي:
example_directory
|- proteinA
|- uniref90_hits.sto
|- pdb_hits.sto
|- ***.a3m
|- etc
|- proteinB
|- ***.sto
|- etc
ثم، في سطر الأوامر، قم بتعيين output_dir=/path/to/example_directory
.
--[no]skip_existing
: الافتراضي هو False
ولكن إذا قمت بالفعل بتشغيل الخطوة الأولى لبعض البروتينات وقمت الآن بإضافة بروتينات جديدة إلى القائمة، فيمكنك تغيير skip_existing
إلى True
في سطر الأوامر لتجنب إعادة تشغيل نفس الإجراء للسابق البروتينات المحسوبة.
--seq_index
: الافتراضي هو None
وسيقوم البرنامج بتشغيل التنبؤات واحدًا تلو الآخر في الملفات المحددة. ومع ذلك، يمكنك تعيين seq_index
على رقم مختلف إذا كنت ترغب في تشغيل مجموعة من المهام بالتوازي، فسيقوم البرنامج فقط بتشغيل الوظيفة المقابلة المحددة بواسطة seq_index
. على سبيل المثال، يقوم البرنامج فقط بحساب ميزات البروتين الأول في ملف FASTA الخاص بك إذا تم تعيين seq_index
على 1. راجع أيضًا البرنامج النصي Slurm sbatch أعلاه للحصول على مثال حول كيفية استخدامه للتنفيذ المتوازي. ❗ seq_index
يبدأ من 1.
--[no]use_mmseqs2
: استخدم mmseqs2 عن بعد أم لا. الافتراضي هو خطأ.
العلامات المتعلقة بوضع TrueMultimer:
--path_to_mmt
: المسار إلى الدليل باستخدام ملفات mmCIF ذات القالب المتعدد القسيمات.
--description_file
: المسار إلى الملف النصي مع أوصاف لإنشاء الميزات. يرجى ملاحظة أن العمود الأول يجب أن يكون نسخة طبق الأصل من وصف البروتين من ملفات FASTA. يرجى التفكير في تقصيرها في ملفات FASTA باستخدام محرر النصوص المفضل لديك من أجل الراحة. سيتم استخدام هذه الأسماء لإنشاء ملفات مخللة ذات ميزات أحادية! يجب أن يبدو ملف description.csv الخاص بمجمع NS1-P85B كما يلي:
>sp|P03496|NS1_I34A1,3L4Q.cif,A
>sp|P23726|P85B_BOVIN,3L4Q.cif,C
في هذا المثال، نشير إلى بروتين NS1 كسلسلة A وإلى بروتين P85B كسلسلة C في القالب المتعدد القسيمات 3L4Q.cif.
الرجاء ملاحظة أنه ستتم إعادة تسمية القالب الخاص بك إلى رمز PDB مأخوذ من _entry_id . إذا كنت تستخدم ملف *.pdb بدلاً من *.cif، فسيحاول AlphaPulldown أولاً تحليل كود PDB من الملف. بعد ذلك سوف يتحقق مما إذا كان اسم الملف مكونًا من 4 أحرف. إذا لم يكن الأمر كذلك، فسيتم إنشاء رمز عشوائي مكون من 4 أحرف واستخدامه كرمز PDB.
--threshold_clashes
: عتبة تداخل VDW لتحديد الاشتباكات. يتم تعريف تداخل VDW بين ذرتين على أنه مجموع نصف قطر VDW مطروحًا منه المسافة بين مراكزهما. إذا تجاوز التداخل هذه العتبة، تعتبر الذرتان متصادمتين. العتبة الإيجابية هي إلى أي مدى يُسمح لأسطح VDW بالتداخل قبل اعتبار الذرات متصادمة. (الافتراضي: 1000، أي لا توجد عتبة، بالنسبة إلى العتبة، استخدم 0.6-0.9).
--hb_allowance
: بدل إضافي للترابط الهيدروجيني (الافتراضي: 0.4) يستخدم لتحديد بقايا الاصطدام المراد إزالتها من قالب متعدد القسيمات. يعكس البدل > 0 ملاحظة أن الذرات التي تتشارك في رابطة هيدروجينية يمكن أن تقترب من بعضها البعض أكثر مما هو متوقع من نصف قطر VDW الخاص بها. يتم طرح البدل فقط للأزواج المكونة من متبرع (أو هيدروجين يحمله المانح) ومتقبل. وهذا يعادل استخدام أنصاف أقطار أصغر لوصف تفاعلات الرابطة الهيدروجينية.
--plddt_threshold
: عتبة درجة pLDDT (الافتراضي: 0) التي سيتم إزالتها من قالب متعدد القسيمات (تتم إزالة جميع المخلفات ذات pLDDT>plddt_threshold وتصميمها من البداية). يمكن استخدامه فقط عندما تكون القوالب المتعددة القسيمات عبارة عن نماذج تم إنشاؤها بواسطة AlphaFold.
--new_uniclust_dir
: يرجى استخدام هذا إذا كنت تريد استبدال المسار الافتراضي لقاعدة بيانات uniclust.
--[no]use_hhsearch
: استخدم hhsearch بدلاً من hmmsearch عند البحث عن قالب الهيكل. الافتراضي هو خطأ.
--[no]multiple_mmts
: استخدم قوالب متعددة العناصر لكل سلسلة. الافتراضي هو خطأ.
نتيجة تشغيل create_individual_features.py
هي ميزات تنسيق مخلل لكل بروتين من ملف الإدخال FASTA (على سبيل المثال sequence_name_A.pkl
و sequence_name_B.pkl
) المخزن في output_dir
.
ملحوظة
سيكون اسم المخللات هو نفس أوصاف التسلسلات في ملفات FASTA (على سبيل المثال، >protein_A
في ملف FASTA سينتج proteinA.pkl
). لاحظ أن الرموز الخاصة مثل | : ; #
، بعد >
سيتم استبداله بـ _
.
انتقل إلى الخطوة التالية 2.1 التشغيل الأساسي.
إذا قمت بتشغيل AlphaPulldown على مجموعة كمبيوتر، فقد ترغب في تنفيذ إنشاء الميزة بالتوازي. نقدم هنا مثالاً للتعليمات البرمجية المناسبة لمجموعة تستخدم SLURM Workload Manager.
في المثال التالي، سوف نستخدم example_2_sequences.fasta
كمدخل.
قم بإنشاء البرنامج النصي create_individual_features_SLURM.sh
ووضع الكود التالي فيه باستخدام vi أو nano أو أي محرر نصوص آخر. استبدل معلمات الإدخال بالوسائط المناسبة للبرنامج النصي create_individual_features.py
كما هو موضح في التشغيل الأساسي أو أي نوع آخر من التشغيل تنوي تنفيذه:
#!/bin/bash# يستغرق التشغيل النموذجي بضع ساعات ولكنه قد يكون أطول بكثير#SBATCH --job-name=array#SBATCH --time=10:00:00#log files:#SBATCH -e logs/ create_individual_features_%A_%a_err.txt#SBATCH -o logs/create_individual_features_%A_%a_out.txt#qos يحدد الأولوية#SBATCH --qos=low# حدد التشغيل بعقدة واحدة#SBATCH -N 1# اضبط هذا اعتمادًا على العقدة#SBATCH --ntasks=8#SBATCH --mem=64000 تحميل الوحدة HMMER/3.4-gompi-2023a تحميل الوحدة HH-suite/3.3.0-gompi-2023aeval "$(conda shell.bash Hook)" تحميل الوحدة CUDA/11.8.0 تحميل الوحدة cuDNN/8.7.0.84-CUDA-11.8.0 condaactivate AlphaPulldown# قم بتخصيص معلمات البرنامج النصي التالية لمهمتك المحددة:####create_individual_features.py --fasta_paths=example_1_sequences.fasta --data_dir=/scratch/AlphaFold_DBs/2.3.2 / --output_dir=/scratch/mydir/test_AlphaPulldown/ --max_template_date=2050-01-01 --skip_existing=صحيح --seq_index=$SLURM_ARRAY_TASK_ID#####
اجعل البرنامج النصي قابلاً للتنفيذ عن طريق تشغيل:
chmod +x create_individual_features_SLURM.sh
بعد ذلك، قم بتنفيذ الأوامر التالية، مع استبدال
بالمسار إلى ملف الإدخال FASTA الخاص بك:
mkdir logs# احسب عدد الوظائف المقابلة لعدد التسلسلات:count=`grep ">"| wc -l`# قم بتشغيل مصفوفة المهام، 100 مهمة في المرة الواحدة:sbatch --array=1-$count%100 create_individual_features_SLURM.sh
مثال لملفين (لمزيد من الملفات، قم بإنشاء متغيرات count3
و count4
وما إلى ذلك وإضافتها إلى مجموع الأعداد):
mkdir logs# احسب عدد الوظائف المقابلة لعدد التسلسلات:count1=`grep ">"| wc -l`count2=`grep ">" | wc -l`count=$(( $count1 + $count2 )) # تشغيل مصفوفة المهام، 100 مهمة في المرة الواحدة:sbatch --array=1-$count%100 create_individual_features_SLURM.sh
تابع إلى الخطوة التالية 2.2 مثال للتشغيل باستخدام SLURM (مجموعة EMBL).
MMseqs2 هي طريقة أخرى للبحث المتماثل وإنشاء MSA. وهو يقدم بديلاً لـ HMMER وHHblits الافتراضيين اللذين يستخدمهما AlphaFold. قد تؤدي نتائج هذه الأساليب المختلفة إلى تنبؤات مختلفة قليلاً حول بنية البروتين بسبب الاختلافات في المعلومات التطورية التي تم التقاطها داخل اتفاقات الدعم الإداري. يدعم AlphaPulldown تنفيذ بحث MMseqs2 الذي تم إجراؤه بواسطة ColabFold، والذي يوفر أيضًا خادم ويب لإنشاء MSA، لذلك لا يلزم التثبيت المحلي لقواعد البيانات.
استشهد: إذا كنت تستخدم MMseqs2، فيرجى تذكر الاستشهاد بما يلي: Mirdita M, Schütze K, Moriwaki Y, Heo L, Ovchinnikov S, Steinegger M. ColabFold: جعل طي البروتين في متناول الجميع. أساليب الطبيعة (2022) دوى: 10.1038/s41592-022-01488-1
تنبيه: لتجنب التحميل الزائد على الخادم البعيد، لا ترسل عددًا كبيرًا من المهام في وقت واحد. إذا كنت تريد حساب اتفاقات الخدمة للعديد من التسلسلات، فيرجى استخدام MMseqs2 محليًا.
لتشغيل create_individual_features.py
باستخدام MMseqs2 عن بعد، أضف العلامة --use_mmseqs2=True
:
مصدر تفعيل AlphaPulldown create_individual_features.py --fasta_paths=--data_dir=<المسار إلى قواعد بيانات Alphafold> --output_dir= --use_mmseqs2=صحيح --max_template_date=<أي تاريخ تريده، بتنسيق مثل: 01-01-2050>
بعد الانتهاء من تشغيل البرنامج النصي، سيبدو output_dir
الخاص بك كما يلي:
output_dir
|-proteinA.a3m
|-proteinA_env/
|-proteinA.pkl
|-proteinB.a3m
|-proteinB_env/
|-proteinB.pkl
...
انتقل إلى الخطوة التالية 2.1 التشغيل الأساسي.
لا يوفر AlphaPulldown واجهة أو رمزًا لتشغيل MMseqs2 محليًا، ولن يقوم بتثبيت MMseqs2 أو أي برامج أخرى مطلوبة. يجب على المستخدم تثبيت MMseqs2 وقواعد بيانات ColabFold وبحث ColabFold والتبعيات الأخرى المطلوبة وتشغيل محاذاة MSA أولاً. يمكن العثور على دليل مثال على ColabFold GitHub.
لنفترض أنك قمت بنجاح بتشغيل MMseqs2 محليًا باستخدام برنامج colab_search
؛ سيقوم بإنشاء ملف A3M لكل بروتين من اهتمامك. وبالتالي، يجب أن يبدو output_dir
الخاص بك كما يلي:
output_dir
|-0.a3m
|-1.a3m
|-2.a3m
|-3.a3m
...
تمت تسمية ملفات a3m هذه من colabfold_search
بشكل غير ملائم. وبالتالي، فقد قدمنا البرنامج النصي rename_colab_search_a3m.py
لمساعدتك في إعادة تسمية جميع هذه الملفات. قم بتنزيل البرنامج النصي من https://github.com/KosinskiLab/AlphaPulldown/blob/main/alphapulldown/scripts/rename_colab_search_a3m.py وقم بتشغيل:
مؤتمر نزع السلاحput_dir بايثون rename_colab_search_a3m.py path_to_fasta_file_you_used_as_input_for_colabfold_search
بعد ذلك سوف يصبح output_dir
الخاص بك:
output_dir
|-proteinA.a3m
|-proteinB.a3m
|-proteinC.a3m
|-proteinD.a3m
...
هنا، proteinA
و proteinB
وما إلى ذلك، يتوافقان مع الأسماء الموجودة في ملف FASTA الذي أدخلته (على سبيل المثال، >proteinA
سيعطيك proteinA.a3m
، >proteinB
سيعطيك proteinB.a3m
، وما إلى ذلك).
ملاحظة: يمكنك أيضًا توفير ملف MSA المخصص الخاص بك بتنسيق
.a3m
بدلاً من استخدام الملفات التي تم إنشاؤها بواسطة MMSeq2 أو HHMER القياسي. ضع الملفات المسماة بشكل مناسب في دليل الإخراج واستخدم الكود كما يلي.
بعد ذلك، ارجع إلى دليل مشروعك باستخدام ملف FASTA الأصلي وأشر إلى هذا الدليل في الأمر:
مصدر تفعيل AlphaPulldown create_individual_features.py --fasta_paths=--data_dir=<المسار إلى قواعد بيانات Alphafold> --output_dir= --skip_existing=False --use_mmseqs2=صحيح --seq_index=<أي رقم تريده أو تخطى العلامة لتشغيله واحدًا تلو الآخر>
سيقوم AlphaPulldown تلقائيًا بالبحث في ملفات a3m المقابلة لكل بروتين. في النهاية، سيبدو output_dir
الخاص بك كما يلي:
output_dir
|-proteinA.a3m
|-proteinA.pkl
|-proteinB.a3m
|-proteinB.pkl
|-proteinC.a3m
|-proteinC.pkl
...
<