REFTINT هي أداة تصميم جزيئية لتصميم DE NOVO ، والقفز السقالة ، واستبدال مجموعة R ، وتصميم الرابط ، وتحسين الجزيء ، ومهام تصميم الجزيئات الصغيرة الأخرى. يستخدم RENTINT خوارزمية التعلم التعزيز (RL) لإنشاء جزيئات محسنة متوافقة مع ملف تعريف خاصية محددة للمستخدم محددة على أنها درجة متعددة المكونات. يمكن استخدام التعلم النقل (TL) لإنشاء أو تدريب نموذج يولد جزيئات أقرب إلى مجموعة من جزيئات الإدخال.
تم نشر ورقة تصف البرنامج على أنها وصول مفتوح في مجلة المعلومات الكيميائية: إعادة اختراع 4: تصميم جزيء توليدي محدد من الذكاء الاصطناعي. انظر المؤلفين. md للاطلاع على الإشارات إلى الأوراق السابقة.
يتم تطوير إعادة اختراع على Linux ويدعم كلاً من GPU و CPU. تم التحقق من صحة إصدار Linux بالكامل. تدعم إعادة اختراع Windows و MacOSX كلاً من GPU و CPU ولكن يتم اختبارها جزئيًا فقط على هذه المنصات ، وبالتالي فإن الدعم محدود.
الكود مكتوب في Python 3 (> = 3.10). يمكن العثور على قائمة التبعيات في المستودع (انظر أيضًا التثبيت أدناه).
وحدة معالجة الرسومات ليست ضرورية بشكل صارم ولكن موصى بها بقوة لأسباب الأداء خاصةً لتحويل التعلم والتدريب النموذجي. يتطلب تعلم التعزيز (RL) حساب الدرجات حيث تعمل معظم مكونات التسجيل على وحدة المعالجة المركزية. وبالتالي ، فإن GPU أقل أهمية بالنسبة لـ RL (اعتمادًا على مقدار الوقت الذي يقضيه على وحدة المعالجة المركزية).
لاحظ أنه إذا لم يتم تثبيت وحدة معالجة الرسومات في جهاز الكمبيوتر الخاص بك ، فسيتم تشغيل الرمز على وحدة المعالجة المركزية تلقائيًا. إعادة اختراع يدعم NVIDIA وحدات معالجة الرسومات وأيضًا بعض وحدات معالجة الرسومات AMD. بالنسبة لمعظم مهام التصميم ، تكون ذكرى حوالي 8 GIB لكلا الذاكرة الرئيسية لوحدة المعالجة المركزية وذاكرة GPU كافية.
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 لـ MacOSX.pip install --no-deps .reinvent إلى مسارك. reinvent --helpإعادة اختراع أداة سطر الأوامر وتعمل بشكل أساسي على النحو التالي
reinvent -l sampling.log sampling.toml هذا يكتب معلومات التسجيل إلى الملف sampling.log . إذا كنت ترغب في كتابة هذا على الشاشة ، فاترك الجزء -l sampling.log . sampling.toml هو ملف التكوين. تنسيق المستخدم الرئيسي هو Toml لأنه يميل إلى أن يكون أكثر ودية. يمكن استخدام JSON أيضًا ، ADD -f json ، ولكن يوصى بالمحرر المتخصص لأن التنسيق حساس للغاية للتغييرات الطفيفة.
توجد ملفات تكوين عينة لجميع أوضاع التشغيل في config/toml في المستودع ومسارات الملفات في هذه الملفات يجب تعديلها مع التثبيت المحلي. على وجه الخصوص ، توجد نماذج مسبقة جاهزة في priors وستختار نموذجًا ووضع التشغيل المناسب اعتمادًا على مشكلة البحث التي تحاول معالجتها. هناك معلومات إضافية في config/toml في عدة ملفات *.md مع تعليمات حول كيفية تكوين ملف toml. يمكن الرجوع إلى البريرين الداخليين بتدوين DOT (انظر reinvent/prior_registry.py ).
Jupyter يمكن العثور على التعليمات الأساسية في التعليقات في أمثلة التكوين في config/toml .
يتم توفير دفاتر الملاحظات في notebooks/ الدليل. يرجى ملاحظة أننا نقدم دفاتر الملاحظات بتنسيق JupyText "Light Script". للعمل مع البرامج النصية الخفيفة ، ستحتاج إلى تثبيت jupytext. بعض الحزم الأخرى ستكون في متناول يدي أيضًا.
pip install jupytext mols2grid seaborn يمكن بعد ذلك تحويل ملفات Python في notebooks/ إلى دفتر ملاحظات على سبيل المثال
jupytext -o Reinvent_demo.ipynb Reinvent_demo.pyقم بتحديث ملفات القفل باستخدام أدوات pip (من فضلك ، لا تقم بتحرير الملفات يدويًا):
pip-compile --extra-index-url=https://download.pytorch.org/whl/cu121 --extra-index-url=https://pypi.anaconda.org/OpenEye/simple --resolver=backtracking pyproject.toml لتحديث حزمة واحدة ، استخدم pip-compile --upgrade-package somepackage (انظر الوثائق الخاصة بأدوات pip).
يستخدم النظام الفرعي للتسجيل آلية مكون إضافي بسيط (حزم مساحة الاسم الأصلية Python). إذا كنت ترغب في كتابة البرنامج المساعد الخاص بك ، فاتبع التعليمات أدناه. ليست هناك حاجة لمس أي من كود إعادة اختراع. يحتوي المستودع العام على دليل Contrib مع بعض الأمثلة المفيدة.
/top/dir/somewhere/reinvent_plugins/components حيث /top/dir/somewhere هو موقع مناسب لك.__init__.py إما في reinvent_plugins أو components لأن هذا من شأنه أن يكسر الآلية. من الجيد إنشاء حزم عادية داخل components طالما كنت تستوردها بشكل صحيح.comp_* في reinvent_plugins/components . سيتم تجاهل الملفات ذات الأسماء المختلفة ، أي لم يتم استيرادها. سيتم البحث في الدليل بشكل متكرر بحيث تهيئة الكود حسب الحاجة ولكن يجب أن تكون أسماء الدليل/الحزم فريدة من نوعها./top/dir/somewhere إلى متغير بيئة PYTHONPATH أو استخدم أي آلية أخرى لتمديد sys.path . هذا هو في المقام الأول للمطورين والمسؤولين/المستخدمين الذين يرغبون في التأكد من أن التثبيت يعمل. المعلومات هنا ليست ذات صلة بالاستخدام العملي لإعادة اختراع. يرجى الرجوع إلى الاستخدام الأساسي للحصول على تعليمات حول كيفية استخدام أمر reinvent .
يستخدم مشروع إعادة التخلص من إطار عمل pytest لاختباراته. قبل تشغيلها ، يجب عليك أولاً إنشاء ملف تكوين للاختبارات.
في دليل المشروع ، قم بإنشاء ملف config.json في configs/ الدليل. يمكنك استخدام مثال config example.config.json كقاعدة. تأكد من تعيين MAIN_TEST_PATH على دليل غير موجود. هذا هو المكان الذي سيتم فيه كتابة الملفات المؤقتة أثناء الاختبارات. إذا تم تعيينه على دليل موجود ، فسيتم إزالة هذا الدليل بمجرد انتهاء الاختبارات.
تتطلب بعض الاختبارات ترخيص Openeye الملكية. يجب عليك إعداد بعض الأشياء لإجراء الاختبارات التي تقرأ ترخيصك. الطريقة البسيطة هي فقط تعيين متغير بيئة OE_LICENSE على مسار الملف الذي يحتوي على الترخيص.
بمجرد حصولك على تكوين ويمكن قراءة ترخيصك ، يمكنك إجراء الاختبارات.
$ pytest tests --json /path/to/config.json --device cuda