Repo ini berisi kode untuk makalah kami Desain Antibodi Bersyarat sebagai Terjemahan Grafik Ekuivalen 3D. MEAN adalah singkatan dari jaringan M ulti-channel E quivariant A ttention N yang diusulkan dalam makalah kami.
kami telah menyiapkan skrip untuk pengaturan lingkungan di scripts/setup.sh, silakan instal dependensi di dalamnya dengan bash scripts/setup.sh
sebelum menjalankan kode kami.
Data ringkasan yang digunakan dalam makalah kami dari SAbDab, RAbD, SKEMPI_V2 telah kami sediakan di folder ringkasan, silakan unduh semua data struktur dari halaman unduh SAbDab. Karena SAbDab diperbarui setiap minggu, Anda juga dapat mengunduh file ringkasan terbaru dari situs resminya. Petunjuk berikut menganggap data struktur yang diberi nomor ulang oleh imgt terletak di folder all_structures/imgt .
Kami telah menyediakan skrip shell untuk berbagai prosedur percobaan, yang terletak di folder skrip atau di folder root repo kami. Untuk skrip di scripts , Anda dapat menjalankannya tanpa argumen untuk melihat petunjuk penggunaannya, yang juga akan diilustrasikan di README nanti. Satu hal yang mungkin memerlukan penjelasan adalah parameter mode yang mengambil nilai 100 atau 111. 100 berarti hanya rantai berat yang digunakan dalam konteksnya, dan 111 berarti rantai berat, rantai ringan serta epitopnya dipertimbangkan dalam konteksnya. Yang terakhir adalah pengaturan lengkap desain CDR pengikat antigen, sedangkan yang pertama hanya untuk perbandingan dengan RefineGNN. <model type> dalam argumen hanya menentukan awalan direktori untuk menyimpan/memuat pos pemeriksaan, kami menggunakan mean di bagian berikut. Silakan coba gunakan direktori absolut saat meneruskan argumen ke skrip jika Anda mengalami masalah terkait jalur.
Kami telah menyediakan skrip untuk persiapan data, pelatihan k-fold dan evaluasi
berikut adalah contoh untuk mengevaluasi MEAN kami:
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
Dengan menjalankan bash scripts/prepare_data_kfold.sh summaries/sabdab_summary.tsv all_structures/imgt
, skrip akan menyalin pdbs dalam ringkasan ke summaries/pdb , mengubah ringkasan ke format json, dan menghasilkan pemisahan data 10 kali lipat untuk setiap cdr, yang membutuhkan ~ ruang 5G. Jika ingin melakukan penyiapan data di direktori lain, copy saja file ringkasan di sana dan ganti summaries/sabdab_summary.tsv dengan path baru. Selain itu, untuk setiap pelatihan paralel, pos pemeriksaan akan disimpan dalam versi 0, 1, ... Jadi, Anda perlu menentukan id versi sebagai argumen terakhir k_fold_eval.sh .
sebelum menjalankan tugas ini, setidaknya jalankan perintah pengunduhan ringkasan json SAbDab di scripts/prepare_data_kfold.sh (baris 23-31). Misalkan file json terletak di summaries/sabdab_all.json.
Contoh:
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
Kami juga telah menyediakan pos pemeriksaan terlatih yang digunakan dalam makalah kami di checkpoints/ckpt/rabd_cdrh3_mean.ckpt. Anda dapat menggunakannya untuk pengujian dengan menjalankan GPU=0 MODE=111 DATA_DIR=summaries/cdrh3 bash rabd_test.sh 0 checkpoints/ckpt/rabd_cdrh3_mean.ckpt
. Hasilnya akan disimpan ke folder bernama hasil di bawah direktori yang sama dengan pos pemeriksaan.
sebelum menjalankan tugas ini, setidaknya jalankan perintah pengunduhan ringkasan json SAbDab di scripts/prepare_data_kfold.sh (baris 23-31). Misalkan file json terletak di summaries/sabdab_all.json.
Contoh:
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
Kami juga telah menyediakan pos pemeriksaan setelah penyetelan ITA di pos pemeriksaan/ckpt/opt_cdrh3_mean.ckpt. Anda dapat langsung menggunakannya untuk inferensi dengan menjalankan GPU=0 DATA_DIR=summaries bash ita_generate.sh checkpoints/ckpt/opt_cdrh3_mean.ckpt
. Skrip ini akan menghasilkan 100 kandidat yang dioptimalkan untuk setiap antibodi di summaries/skempi_all.json dan melaporkan 1 teratas dalam hal prediksi ddg. PDB kandidat yang dioptimalkan akan ditempatkan di direktori pos pemeriksaan yang sama.
Kami juga menyediakan script untuk desain/optimasi CDR tunggal di scritps/design.py. Script memerlukan input pdb yang berisi rantai berat, rantai ringan, dan antigen. Pdb harus dinomori ulang menggunakan sistem IMGT terlebih dahulu, yang dapat dicapai dengan skrip di data/ImmunoPDB.py dari ANARCI. Berikut ini contoh desain CDR-H3 untuk pdb 1ic7:
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 yang dihasilkan serta ringkasan urutan CDR-H3 akan disimpan ke ./results. Pos pemeriksaan default yang digunakan dalam skrip adalah pos pemeriksaan/ckpt/rabd_cdrh3_mean.ckpt. Anda dapat melewati pos pemeriksaan Anda sendiri dengan argumen --ckpt path/to/your/checkpoint
(misalnya gunakan opt_cdrh3_mean.ckpt untuk optimasi CDR)
Selanjutnya script mampu menampung beberapa pdb sebagai input, misalnya:
python ./scripts/design.py
--pdb pdb1 pdb2 ...
--heavy_chain Hchain1 Hchain2 ...
--light_chain Lchain1 Lchain2 ...
Terima kasih atas minat Anda pada pekerjaan kami!
Silakan bertanya jika ada pertanyaan mengenai algoritma, kode, serta permasalahan yang dihadapi dalam menjalankannya agar kami dapat memperjelas dan memperbaikinya. Anda dapat membuat masalah di repo github atau menghubungi kami di [email protected].
Beberapa kode dipinjam dari repo yang ada: