يحتوي هذا الريبو على رموز تصميم الجسم المضاد الشرطي الخاص بنا كترجمة رسم بياني مكافئ ثلاثي الأبعاد. MEAN هو اختصار لشبكة M متعددة القنوات E quivariant Attention N المقترحة في ورقتنا.
لقد قمنا بإعداد البرنامج النصي لإعداد البيئة في scripts/setup.sh، يرجى تثبيت التبعيات فيه باستخدام bash scripts/setup.sh
قبل تشغيل الكود الخاص بنا.
لقد قدمنا البيانات الموجزة المستخدمة في ورقتنا من SAbDab، RAbD، SKEMPI_V2 في مجلد الملخصات، يرجى تنزيل جميع بيانات الهيكل من صفحة التنزيل الخاصة بـ SAbDab. نظرًا لأنه يتم تحديث SAbDab أسبوعيًا، يمكنك أيضًا تنزيل أحدث ملف ملخص من موقعه الرسمي على الويب. تفترض الإرشادات التالية أن بيانات البنية المعاد ترقيمها بواسطة imgt موجودة في المجلد all_structures/imgt .
لقد قدمنا نصوص shell لإجراءات مختلفة للتجارب، والتي توجد إما في نصوص المجلدات أو في المجلد الجذر لمستودعنا. بالنسبة للنصوص البرمجية الموجودة في البرامج النصية ، يمكنك تشغيلها بدون وسيطات لرؤية تلميحات الاستخدام الخاصة بها، والتي سيتم توضيحها أيضًا في الملف التمهيدي (README) لاحقًا. الشيء الوحيد الذي قد يحتاج إلى شرح هو معلمة الوضع التي تأخذ قيمة إما 100 أو 111. 100 يعني أنه يتم استخدام السلسلة الثقيلة فقط في السياق، و 111 يعني أن السلسلة الثقيلة والسلسلة الخفيفة وكذلك الحاتمة يتم أخذها في الاعتبار في السياق. الأحدث هو الإعداد الكامل لتصميم CDR المرتبط بمولد الضد، في حين أن الأول مخصص فقط للمقارنة مع RefineGNN. <نوع النموذج> في الوسائط يحدد فقط بادئة الدليل لحفظ/تحميل نقاط التفتيش، ونحن نستخدم المتوسط في الأقسام التالية. الرجاء محاولة استخدام الدلائل المطلقة عند تمرير الوسائط إلى البرامج النصية إذا واجهت مشاكل تتعلق بالمسارات.
لقد قدمنا البرامج النصية لإعداد البيانات والتدريب والتقييم
فيما يلي مثال لتقييم متوسطنا:
bash scripts/prepare_data_kfold.sh summaries/sabdab_summary.tsv all_structures/imgt
GPU=0 bash scripts/k_fold_train.sh summaries 111 mean 9901
GPU=0 bash scripts/k_fold_eval.sh summaries 111 mean 0
من خلال تشغيل bash scripts/prepare_data_kfold.sh summaries/sabdab_summary.tsv all_structures/imgt
، سيقوم البرنامج النصي بنسخ pdbs في الملخص إلى Summaries/pdb ، وتحويل الملخص إلى تنسيق json، وإنشاء تقسيمات بيانات 10 أضعاف لكل ملف cdr، مما يؤدي إلى يتطلب مساحة ~ 5G. إذا كنت تريد القيام بإعداد البيانات في دليل آخر، ما عليك سوى نسخ ملف التلخيص هناك واستبدال ملخصات/sabdab_summary.tsv بالمسار الجديد. أيضًا، لكل عملية تدريب متوازية، سيتم حفظ نقاط التحقق في الإصدار 0، 1، ... لذلك تحتاج إلى تحديد معرف الإصدار باعتباره الوسيط الأخير لـ k_fold_eval.sh .
قبل تشغيل هذه المهمة، يرجى على الأقل تشغيل أوامر تنزيل ملخص json لـ SAbDab في scripts/prepare_data_kfold.sh (السطر 23-31). سنفترض أن ملف json موجود في Summaries/sabdab_all.json.
مثال:
bash scripts/prepare_data_rabd.sh summaries/rabd_summary.jsonl all_structures/imgt summaries/sabdab_all.json
GPU=0 MODE=111 DATA_DIR=summaries/cdrh3 bash train.sh mean 3
GPU=0 MODE=111 DATA_DIR=summaries/cdrh3 bash rabd_test.sh 0
لقد قمنا أيضًا بتوفير نقطة التفتيش المدربة المستخدمة في ورقتنا عند نقاط التفتيش/ckpt/rabd_cdrh3_mean.ckpt. يمكنك استخدامه للاختبار عن طريق تشغيل GPU=0 MODE=111 DATA_DIR=summaries/cdrh3 bash rabd_test.sh 0 checkpoints/ckpt/rabd_cdrh3_mean.ckpt
. سيتم حفظ النتائج في المجلد المسمى النتائج ضمن نفس الدليل مثل نقطة التفتيش.
قبل تشغيل هذه المهمة، يرجى على الأقل تشغيل أوامر تنزيل ملخص json الخاص بـ SAbDab في scripts/prepare_data_kfold.sh (السطر 23-31). سنفترض أن ملف json موجود في Summaries/sabdab_all.json.
مثال:
bash scripts/prepare_data_skempi.sh summaries/skempi_v2_summary.jsonl all_structures/imgt summaries/sabdab_all.json
GPU=0 MODE=111 DATA_DIR=summaries bash train.sh mean 3
GPU=0 CKPT_DIR=summaries/ckpt/mean_CDR3_111/version_0 bash ita_train.sh
GPU=0 DATA_DIR=summaries bash ita_generate.sh summaries/ckpt/mean_CDR3_111/version_0/ita/iter_i.ckpt # specify the checkpoint from iteration i for testing
لقد قمنا أيضًا بتوفير نقطة التفتيش بعد ضبط ITA عند نقاط التفتيش/ckpt/opt_cdrh3_mean.ckpt. يمكنك استخدامه مباشرة للاستدلال عن طريق تشغيل GPU=0 DATA_DIR=summaries bash ita_generate.sh checkpoints/ckpt/opt_cdrh3_mean.ckpt
. سيقوم هذا البرنامج النصي بإنشاء 100 مرشح محسن لكل جسم مضاد في ملخصات/skempi_all.json والإبلاغ عن أعلى 1 من حيث ddg المتوقع. سيتم وضع pdbs للمرشحين الأمثل في نفس دليل نقطة التفتيش.
نوفر أيضًا البرنامج النصي لتصميم/تحسين CDR الفردي على scritps/design.py. يتطلب البرنامج النصي إدخال pdb يحتوي على السلسلة الثقيلة والسلسلة الخفيفة والمستضد. يجب إعادة ترقيم pdb باستخدام نظام IMGT مقدمًا، وهو ما يمكن تحقيقه عن طريق البرنامج النصي الموجود على data/ImmunoPDB.py fron ANARCI. فيما يلي مثال لتصميم CDR-H3 لـ 1ic7 pdb:
python ./data/ImmunoPDB.py -i data/1ic7.pdb -o 1ic7.pdb -s imgt # renumber the pdb
python ./scripts/design.py --pdb 1ic7.pdb --heavy_chain H --light_chain L
سيتم حفظ ملف pdb الذي تم إنشاؤه بالإضافة إلى ملخص تسلسل CDR-H3 في ./results. نقطة التحقق الافتراضية المستخدمة في البرنامج النصي هي نقاط التفتيش/ckpt/rabd_cdrh3_mean.ckpt. يمكنك تمرير نقطة التفتيش الخاصة بك عن طريق الوسيطة --ckpt path/to/your/checkpoint
(على سبيل المثال، استخدم opt_cdrh3_mean.ckpt لتحسين CDR)
علاوة على ذلك، فإن البرنامج النصي قادر على استيعاب pdbs متعددة كمدخلات، على سبيل المثال:
python ./scripts/design.py
--pdb pdb1 pdb2 ...
--heavy_chain Hchain1 Hchain2 ...
--light_chain Lchain1 Lchain2 ...
شكرا لاهتمامك بعملنا!
لا تتردد في طرح أي أسئلة حول الخوارزميات والأكواد وكذلك المشكلات التي واجهتها أثناء تشغيلها حتى نتمكن من جعلها أكثر وضوحًا وأفضل. يمكنك إما إنشاء مشكلة في github repo أو الاتصال بنا على [email protected].
يتم استعارة بعض الرموز من اتفاقيات إعادة الشراء الحالية: