Reinvent adalah alat desain molekuler untuk desain de novo, hopping perancah, penggantian r-kelompok, desain linker, optimasi molekul, dan tugas desain molekul kecil lainnya. Reinvent menggunakan algoritma pembelajaran penguatan (RL) untuk menghasilkan molekul yang dioptimalkan sesuai dengan profil properti yang ditentukan pengguna yang didefinisikan sebagai skor multi-komponen. Transfer Learning (TL) dapat digunakan untuk membuat atau pra-pelatihan model yang menghasilkan molekul lebih dekat ke satu set molekul input.
Sebuah makalah yang menggambarkan perangkat lunak ini telah diterbitkan sebagai akses terbuka dalam Journal of Cheminformatics: Reinvent 4: Desain Molekul Generatif AI modern. Lihat Penulis.MD untuk referensi ke makalah sebelumnya.
Reinvent sedang dikembangkan di Linux dan mendukung GPU dan CPU. Versi Linux sepenuhnya divalidasi. Reinvent pada Windows dan MacOSX mendukung GPU dan CPU tetapi hanya diuji sebagian pada platform ini dan oleh karena itu dukungan terbatas.
Kode ini ditulis dalam Python 3 (> = 3.10). Daftar dependensi dapat ditemukan di repositori (lihat juga instalasi di bawah).
GPU tidak sepenuhnya diperlukan tetapi sangat disarankan untuk alasan kinerja terutama untuk pembelajaran transfer dan pelatihan model. Penguatan Penguatan (RL) membutuhkan perhitungan skor di mana sebagian besar komponen penilaian berjalan pada CPU. Dengan demikian, GPU kurang penting untuk RL (tergantung pada berapa banyak waktu yang dihabiskan untuk CPU).
Perhatikan bahwa jika tidak ada GPU yang diinstal di komputer Anda, kode akan berjalan pada CPU secara otomatis. Reinvent mendukung NVIDIA GPU dan juga beberapa GPU AMD. Untuk sebagian besar tugas desain, memori sekitar 8 gib untuk memori utama CPU dan memori GPU sudah cukup.
conda create --name reinvent4 python=3.10
conda activate reinvent4pip install -r requirements-linux-64.lockpip install torch==2.2.1 torchvision==0.17.1 torchaudio==2.2.1 --index-url https://download.pytorch.org/whl/rocm5.7requirements-macOS.lock untuk macosx.pip install --no-deps .reinvent ke jalur Anda. reinvent --helpReinvent adalah alat baris perintah dan berfungsi terutama sebagai berikut
reinvent -l sampling.log sampling.toml Ini menulis informasi logging ke file sampling.log . Jika Anda ingin menulis ini ke layar, tinggalkan bagian -l sampling.log . sampling.toml adalah file konfigurasi. Format pengguna utama adalah TOML karena cenderung lebih ramah. JSON juga dapat digunakan, tambahkan -f json , tetapi editor khusus direkomendasikan karena formatnya sangat sensitif terhadap perubahan kecil.
Contoh file konfigurasi untuk semua mode yang dijalankan terletak di config/toml di jalur repositori dan file dalam file -file ini perlu disesuaikan dengan instalasi lokal Anda. Secara khusus, model yang sudah dibuat sebelumnya terletak di priors dan Anda akan memilih model dan mode lari yang sesuai tergantung pada masalah penelitian yang Anda coba atasi. Ada informasi tambahan dalam config/toml di beberapa file *.md dengan instruksi tentang cara mengkonfigurasi file toml. Prior internal dapat direferensikan dengan notasi titik (lihat reinvent/prior_registry.py ).
Jupyter Notebooks Instruksi dasar dapat ditemukan di komentar dalam contoh konfigurasi di config/toml .
Notebook disediakan di notebooks/ direktori. Harap dicatat bahwa kami memberikan buku catatan dalam format "skrip lampu" Jupytext. Untuk bekerja dengan skrip lampu, Anda perlu menginstal Jupytext. Beberapa paket lain juga akan berguna.
pip install jupytext mols2grid seaborn File Python di notebooks/ kemudian dapat dikonversi ke notebook misalnya
jupytext -o Reinvent_demo.ipynb Reinvent_demo.pyPerbarui file kunci dengan pip-tools (tolong, jangan edit file secara manual):
pip-compile --extra-index-url=https://download.pytorch.org/whl/cu121 --extra-index-url=https://pypi.anaconda.org/OpenEye/simple --resolver=backtracking pyproject.toml Untuk memperbarui satu paket, gunakan pip-compile --upgrade-package somepackage (lihat dokumentasi untuk Pip-tools).
Subsistem penilaian menggunakan mekanisme plugin sederhana (paket namespace asli Python). Jika Anda ingin menulis plugin Anda sendiri, ikuti instruksi di bawah ini. Tidak perlu menyentuh salah satu kode penemuan kembali. Repositori publik berisi direktori contrib dengan beberapa contoh yang berguna.
/top/dir/somewhere/reinvent_plugins/components WHERE /top/dir/somewhere adalah lokasi yang nyaman untuk Anda.__init__.py baik dalam reinvent_plugins atau components karena ini akan merusak mekanisme. Tidak apa -apa untuk membuat paket normal dalam components selama Anda mengimpornya dengan benar.comp_* menjadi reinvent_plugins/components . File dengan nama yang berbeda akan diabaikan yaitu tidak diimpor. Direktori akan dicari secara rekursif sehingga menyusun kode Anda sesuai kebutuhan tetapi nama direktori/paket harus unik./top/dir/somewhere ke variabel lingkungan PYTHONPATH atau gunakan mekanisme lain untuk memperluas sys.path . Ini terutama untuk pengembang dan admin/pengguna yang ingin memastikan bahwa instalasi berfungsi. Informasi di sini tidak relevan dengan penggunaan praktis reinvent. Silakan merujuk ke penggunaan dasar untuk instruksi tentang cara menggunakan perintah reinvent .
Proyek Reinvent menggunakan kerangka kerja pytest untuk pengujiannya. Sebelum Anda menjalankannya, pertama -tama harus membuat file konfigurasi untuk pengujian.
Di direktori proyek, buat file config.json di configs/ direktori. Anda dapat menggunakan contoh config example.config.json sebagai basis. Pastikan Anda mengatur MAIN_TEST_PATH ke direktori yang tidak ada. Di situlah file sementara akan ditulis selama pengujian. Jika diatur ke direktori yang ada, direktori itu akan dihapus setelah tes selesai.
Beberapa tes memerlukan lisensi OpenEye yang berpemilik. Anda harus mengatur beberapa hal untuk membuat tes membaca lisensi Anda. Cara sederhana adalah dengan hanya mengatur variabel lingkungan OE_LICENSE ke jalur file yang berisi lisensi.
Setelah Anda memiliki konfigurasi dan lisensi Anda dapat dibaca, Anda dapat menjalankan tes.
$ pytest tests --json /path/to/config.json --device cuda