AI-Mengikat
AI-Bind adalah saluran pembelajaran mendalam yang memberikan prediksi pengikatan yang dapat ditafsirkan untuk protein dan ligan yang belum pernah dilihat sebelumnya. AI-Bind mampu melakukan penyaringan cepat terhadap perpustakaan kimia yang besar dan memandu simulasi auto-docking yang mahal secara komputasi dengan memprioritaskan pasangan protein-ligan untuk validasi. Pipeline ini memerlukan masukan fitur kimia sederhana seperti rangkaian asam amino suatu protein dan SMILE isomer suatu ligan, yang membantu mengatasi keterbatasan yang terkait dengan kurangnya struktur protein 3D yang tersedia.
Pracetak tersedia di: https://arxiv.org/abs/2112.13168
Mengapa AI-Bind?
Kekurangan Model ML yang Ada dalam Memprediksi Pengikatan Protein-Ligan
Ketertarikan kami dalam memprediksi pengikatan protein dan ligan yang belum pernah dilihat sebelumnya mendorong kami membagi kinerja pengujian model pembelajaran mesin yang ada (misalnya, DeepPurpose) menjadi tiga komponen:
(a) Uji transduktif: Ketika protein dan ligan dari kumpulan data uji terdapat dalam data pelatihan,
(b) Uji semi-induktif: ketika hanya ligan dari kumpulan data uji yang ada dalam data pelatihan, dan
(c) Uji induktif: Ketika protein dan ligan dari kumpulan data uji tidak ada dalam data pelatihan.
Kita belajar bahwa hanya performa pengujian induktif yang merupakan metrik yang dapat diandalkan untuk mengevaluasi seberapa baik model pembelajaran mesin mempelajari pengikatan dari fitur struktural protein dan ligan. Kami mencatat bahwa sebagian besar model menyajikan kinerja pengujian transduktif, yang terkait dengan memprediksi hubungan tak terlihat dalam jaringan interaksi protein-ligan yang digunakan dalam pelatihan. Kami mengeksplorasi bagaimana model ML mencapai performa transduktif yang sebanding dengan algoritme yang lebih sederhana (yaitu, model konfigurasi jaringan), yang sepenuhnya mengabaikan struktur molekul dan menggunakan informasi derajat untuk membuat prediksi yang mengikat.
Apa yang ditawarkan AI-Bind?
Pipeline AI-Bind memaksimalkan kinerja pengujian induktif dengan menyertakan negatif yang berasal dari jaringan dalam data pelatihan dan memperkenalkan pra-pelatihan tanpa pengawasan untuk penyematan molekuler. Pipeline divalidasi melalui tiga arsitektur neural yang berbeda: model VecNet, VAENet, dan Siam. Arsitektur berperforma terbaik di AI-Bind adalah VecNet, yang masing-masing menggunakan Mol2vec dan ProtVec untuk menyematkan protein dan ligan. Penyematan ini dimasukkan ke dalam dekoder (Perceptron Multi-lapisan), yang memprediksi kemungkinan pengikatan.
Interpretabilitas AI-Bind dan Mengidentifikasi Situs Pengikatan Aktif
Kami memutasi blok penyusun tertentu (trigram asam amino) dari struktur protein untuk mengenali wilayah yang paling memengaruhi prediksi pengikatan dan mengidentifikasinya sebagai lokasi pengikatan potensial. Di bawah ini, kami memvalidasi prediksi situs pengikatan aktif AI-Bind pada protein manusia TRIM59 dengan memvisualisasikan hasil simulasi auto-docking dan memetakan situs prediksi ke residu asam amino tempat pengikatan ligan. Situs pengikatan yang diprediksi AI-Bind dapat memandu pengguna dalam membuat grid optimal untuk simulasi docking otomatis, sehingga semakin mengurangi waktu simulasi.
Menyiapkan AI-Bind dan Memprediksi Pengikatan Protein-Ligan (Pedoman untuk pengguna akhir)
Pengaturan perangkat keras untuk AI-Bind
Kami melatih dan menguji semua model kami melalui server di Google Cloud Platform dengan CPU Intel Broadwell dan GPU NVIDIA Tesla T4. Versi Python yang digunakan di AI-Bind adalah 3.6.6. Versi CUDA yang digunakan adalah 9.0.
Menggunakan Docker
Silakan gunakan buruh pelabuhan ini untuk menjalankan AI-Bind: https://hub.docker.com/r/omairs/foodome2
Menggunakan file persyaratan
Semua modul Python dan versi terkait yang diperlukan untuk AI-Bind tercantum di sini: persyaratan.txt
Gunakan pip install -r requiremen.txt untuk menginstal paket terkait.
versi rdkit yang digunakan di AI-Bind: '2017.09.1' (Untuk instalasi, periksa dokumentasi di sini: https://www.rdkit.org/docs/Install.html, perintah: conda install -c rdkit rdkit)
Pastikan notebook VecNet-User-Frontend.ipynb dan tiga file di folder AIBind (AIBind.py, init .py, dan import_modules.py) berada di folder yang sama.
Unduh dan simpan file data di bawah /data. Tautan unduhan: https://zenodo.org/record/7226641
Instalasi Alternatif menggunakan Docker
- Unduh file buruh pelabuhan bernama "Predictions.dockerfile".
- Di terminal Anda, pindah ke direktori dengan dockerfile dan jalankan: docker build -t aibindpred -f ./Predictions.dockerfile ./
- Untuk menjalankan image sebagai container: docker run -it --gpus all --name aibindpredcontainer -p 8888:8888 aibindpred Anda dapat mengkloning repositori git di dalam container, atau melampirkan volume lokal saat menjalankan container: docker run -it --gpus semua --nama aibindpredcontainer -p 8888:8888 -v ./local_directory:/home aibindpred
- Untuk mengeksekusi shell tambahan di dalam container, jalankan: docker exec -it aibindpredcontainer /bin/bash
- Untuk menjalankan instance notebook Jupyter di dalam container, jalankan : jupyter notebook --ip=0.0.0.0 --port=8888 --allow-root Langkah-langkah di atas akan menginstal semua paket yang diperlukan dan menciptakan lingkungan untuk menjalankan prediksi pengikatan menggunakan AI- Mengikat.
Menjalankan prediksi dari frontend
- Atur file data Anda dalam format kerangka data dengan kolom 'InChiKey', 'SMILE' dan 'target_aa_code'. Simpan kerangka data ini dalam file .csv.
- Jalankan notebook berjudul VecNet-User-Frontend.ipynb untuk membuat prediksi yang mengikat. Probabilitas pengikatan yang diprediksi akan tersedia di bawah judul kolom 'Prediksi Rata-rata'.
Kode dan Data
File Data
Semua file data tersedia di sini: https://zenodo.org/record/7226641
- /data/sars-busters-consolidated/File database: Berisi data pengikatan protein-ligan yang berasal dari DrugBank, BindingDB, dan DTC (Drug Target Commons).
- /data/sars-busters-consolidated/chemicals: Berisi ligan yang digunakan dalam pelatihan dan pengujian AI-Bind dengan penyematan.
- /data/sars-busters-consolidated/GitData/DeepPurpose dan Model Konfigurasi: Melatih data uji terkait dengan validasi silang 5 kali lipat dari Transformer-CNN (DeepPurpose) dan Model Konfigurasi Dupleks.
- /data/sars-busters-consolidated/GitData/interactions: Berisi kumpulan data negatif turunan jaringan yang digunakan dalam pelatihan jaringan saraf AI-Bind.
- /data/sars-busters-consolidated/GitData: Berisi model VecNet terlatih, prediksi yang mengikat pada protein virus dan manusia yang terkait dengan COVID-19, dan ringkasan hasil dari simulasi auto-docking.
- /data/sars-busters-consolidated/master_files: Berisi pasangan protein-ligan negatif absolut (tidak mengikat) yang digunakan dalam pengujian AI-Bind.
- /data/sars-busters-consolidated/targets: Berisi protein yang digunakan dalam pelatihan dan pengujian AI-Bind dengan penyematan terkait.
- /data/sars-busters-consolidated/interactions: Berisi pasangan protein-ligan positif (mengikat) yang berasal dari DrugBank, NCFD (Senyawa Alami dalam Database Makanan), BindingDB, dan DTC.
- /data/sars-busters-consolidated/Auto Docking: Berisi semua file dan hasil validasi AI-Bind pada protein virus dan manusia terkait COVID-19.
- /data/sars-busters-consolidated/Binding Probability Profile Validation: Berisi file yang memvisualisasikan situs pengikatan aktif dari simulasi auto-dcoking.
- /data/sars-busters/Mol2vec: Model Mol2vec dan ProtVec terlatih tersedia di sini.
- /data/sars-busters-consolidated/s4pred: Termasuk kode dan file untuk memprediksi struktur sekunder TRIM59.
Kode
Di sini kami menjelaskan Notebook Jupyter, Modul Python, dan skrip MATLAB yang digunakan di AI-Bind.
AIBind
- AIBind.py: Berisi kelas Python untuk AI-Bind. Mencakup semua arsitektur saraf: VecNet, VAENet, dan Model Siam.
- import_modules.py: Berisi semua modul Python yang diperlukan untuk menjalankan AI-Bind.
Konfigurasi-Model-5 kali lipat
- Model Konfigurasi - Cross-Validation.ipynb: Menghitung kinerja validasi silang 5 kali lipat dari Model Konfigurasi Dupleks pada data BindingDB yang digunakan di DeepPurpose.
- konfigurasi_bipartite.m: Berisi implementasi MATLAB dari Model Konfigurasi Dupleks.
- runscriptposneg.m: Menjalankan Model Konfigurasi Dupleks menggunakan urutan derajat ligan dan protein. File keluaran summat10.csv dan summat01.csv digunakan dalam menghitung performa model konfigurasi.
DeepPurpose-5 kali lipat
- Tujuan Mendalam - Kumpulan Data Akhir - Target Tak Terlihat.ipynb: Kami menjalankan validasi silang 5 kali lipat terhadap target tak terlihat (Uji Semi-Induktif) di DeepPurpose menggunakan negatif yang diturunkan dari jaringan.
- Tujuan Mendalam - Kumpulan Data Akhir - Node Tak Terlihat.ipynb: Kami menjalankan validasi silang 5 kali lipat atas node tak terlihat (Pengujian Induktif) di DeepPurpose menggunakan negatif yang diturunkan dari jaringan.
MolTrans
- example_induktif_AI_Bind_data.py: Kami menjalankan pengujian induktif di MolTrans menggunakan sampel negatif turunan jaringan yang digunakan dalam pelatihan AI-Bind.
- example_induktif_BindingDB.py: Kami menjalankan tes induktif pada MolTrans menggunakan data BindingDB yang digunakan dalam makalah MolTrans.
- example_semi_induktif.py: Skrip ini dapat digunakan untuk menjalankan tes semi-induktif di MolTrans.
- example_transduktif.py: Skrip ini dapat digunakan untuk menjalankan tes transduktif di MolTrans.
Model Tujuan Dalam dan Konfigurasi
- Jalankan Ulang DeepPurpose - Transformer CNN.ipynb: Kami melatih dan menguji DeepPurpose menggunakan data benchmark BindingDB. Berbagai eksperimen pada DeepPurpose telah dilakukan di sini, yang mencakup pengacakan struktur kimia secara acak dan analisis derajat kinerja DeepPurpose.
- Model Konfigurasi pada DeepPurpose data.ipynb: Kami mengeksplorasi kinerja Model Konfigurasi Duplex pada dataset BindingDB yang digunakan di DeepPurpose.
Eigen Berbicara
- Eigen Spokes Analysis.ipynb - Kami menjalankan analisis EigenSpokes di sini pada matriks ketetanggaan gabungan (matriks ketetanggaan persegi dengan ligan dan target di baris dan kolom).
Munculnya jalan pintas
- Without_and_with_constant_fluctuations_p_bind=0.16.ipynb: Membuat dan menjalankan model konfigurasi pada jaringan mainan unipartit berdasarkan sampel protein di BindingDB. Di sini kita mengeksplorasi dua skenario terkait dengan hubungan antara derajat dan konstanta disosiasi - tanpa fluktuasi apa pun dan fluktuasi konstan terhadap nilai konstanta disosiasi.
- With_varying_fluctuations.ipynb: Membuat dan menjalankan model konfigurasi pada jaringan mainan unipartit berdasarkan sampel protein di BindingDB, dengan fluktuasi nilai konstanta disosiasi mengikuti tren serupa seperti pada data BindingDB.
Fitur-Fitur yang Direkayasa
- Memahami Fitur Rekayasa.ipynb: Kami mengeksplorasi kemampuan menjelaskan fitur rekayasa (fitur sederhana yang mewakili molekul ligan dan protein.
- Fitur Rekayasa VecNet - Dimensi Penting Mol2vec dan Protvec.ipynb: Mengidentifikasi dimensi paling penting dalam embeddings Mol2vec dan ProtVec, dalam hal pengikatan protein-ligan.
- Fitur Rekayasa VecNet Concat Original Features.ipynb: Menjelajahi kinerja VecNet setelah menggabungkan penyematan protein dan ligan asli.
- Fitur Rekayasa VecNet.ipynb: Menggantikan penyematan Mol2vec dan ProtVec dengan fitur rekayasa sederhana dalam arsitektur VecNet dan mengeksplorasi kinerjanya.
Mengidentifikasi situs pengikatan aktif
- VecNet-Protein-Trigrams-Study-GitHub.ipynb: Kami memutasi trigram asam amino pada protein dan mengamati fluktuasi dalam prediksi VecNet. Proses ini membantu kita mengidentifikasi potensi situs pengikatan aktif pada urutan asam amino.
Tes Masukan Acak
- VecNet-Unseen_Nodes-RANDOM.ipynb: Menjalankan VecNet pada node yang tidak terlihat (Uji Induktif) dengan ligan dan protein yang tertanam digantikan oleh input acak Gaussian.
- VecNet-Unseen_Nodes-T-RANDOM-Only.ipynb: Menjalankan VecNet pada node yang tidak terlihat (Uji Induktif) di mana penyematan protein digantikan oleh input acak Gaussian.
- VecNet-Unseen_Targets-RANDOM.ipynb: Menjalankan VecNet pada target yang tidak terlihat (Uji Semi-Induktif) dengan ligan dan protein yang tertanam digantikan oleh input acak Gaussian.
- VecNet-Unseen_Targets-T-RANDOM-Only.ipynb: Menjalankan VecNet pada target yang tidak terlihat (Tes Semi-Induktif) di mana penyematan protein digantikan oleh input acak Gaussian.
Siam
- Siamese_Unseen_Nodes.ipynb: Kami membuat kumpulan data negatif yang diturunkan dari jaringan dan menjalankan validasi silang 5 kali lipat pada node yang tidak terlihat (uji induktif) di sini.
- Siamese_Unseen_Targets.ipynb: Kami menjalankan validasi silang 5 kali lipat pada target yang tidak terlihat (tes Semi-Induktif) di sini.
VAEnet
- VAENet-Unseen_Nodes.ipynb: Kami membuat negatif turunan jaringan dan menjalankan validasi silang 5 kali lipat pada node yang tidak terlihat (uji induktif) di sini.
- VAENet-Unseen_Targets.ipynb: Kami menjalankan validasi silang 5 kali lipat pada target yang tidak terlihat (tes Semi-Induktif) di sini.
Validasi
- Analisis Prediksi SARS-CoV-2 VecNet.ipynb: Validasi auto-docking dari 100 prediksi teratas dan terbawah yang dibuat oleh VecNet pada protein virus SARS-CoV-2 dan protein manusia yang terkait dengan COVID-19.
- Binding_Probability_Profile_Golden_Standar_Validation.py: Validasi lokasi pengikatan turunan AI-Bind dengan data pengikatan protein standar emas.
VecNet
- VecNet-Unseen_Nodes.ipynb: Kami membuat negatif yang diturunkan dari jaringan, melakukan validasi silang 5 kali lipat pada node yang tidak terlihat (uji Induktif), dan membuat prediksi pada protein virus SARS-CoV-2 dan protein manusia yang terkait dengan COVID-19.
- VecNet-Unseen_Targets.ipynb: Kami menjalankan validasi silang 5 kali lipat pada target yang tidak terlihat (tes Semi-Induktif) di sini.
Sumber Daya Eksternal
- Pelajari auto-docking menggunakan Autodock Vina: https://www.youtube.com/watch?v=BLbXkhqbebs
- Belajar memvisualisasikan situs pengikatan aktif menggunakan PyMOL: https://www.youtube.com/watch?v=mBlMI82JRfI
Kutip AI-Bind
Jika Anda merasa AI-Bind berguna dalam penelitian Anda, silakan tambahkan kutipan berikut:
@article{Chatterjee2023,
doi = {10.1038/s41467-023-37572-z},
url = {https://doi.org/10.1038/s41467-023-37572-z},
year = {2023},
month = apr,
publisher = {Springer Science and Business Media {LLC}},
volume = {14},
number = {1},
author = {Ayan Chatterjee and Robin Walters and Zohair Shafi and Omair Shafi Ahmed and Michael Sebek and Deisy Gysi and Rose Yu and Tina Eliassi-Rad and Albert-L{'{a}}szl{'{o}} Barab{'{a}}si and Giulia Menichetti},
title = {Improving the generalizability of protein-ligand binding predictions with {AI}-Bind},
journal = {Nature Communications}
}