Reinvent เป็นเครื่องมือออกแบบโมเลกุลสำหรับการออกแบบ de novo, การกระโดดนั่งร้าน, การเปลี่ยนกลุ่ม R-Group, การออกแบบ linker, การเพิ่มประสิทธิภาพโมเลกุลและงานออกแบบโมเลกุลขนาดเล็กอื่น ๆ Reinvent ใช้อัลกอริทึมการเรียนรู้เสริมแรง (RL) เพื่อสร้างโมเลกุลที่ดีที่สุดที่สอดคล้องกับโปรไฟล์คุณสมบัติที่ผู้ใช้กำหนดไว้ซึ่งกำหนดเป็นคะแนนหลายองค์ประกอบ การถ่ายโอนการเรียนรู้ (TL) สามารถใช้ในการสร้างหรือฝึกอบรมแบบจำลองที่สร้างโมเลกุลใกล้กับชุดของโมเลกุลอินพุต
บทความที่อธิบายซอฟต์แวร์ได้รับการเผยแพร่เป็นการเข้าถึงแบบเปิดในวารสารเคมีบำบัด: Reinvent 4: การออกแบบโมเลกุลที่มีการสร้างแบบกำเนิด AI - โมเดิร์น ดูผู้เขียน MD สำหรับการอ้างอิงถึงเอกสารก่อนหน้า
Reinvent กำลังได้รับการพัฒนาบน Linux และรองรับทั้ง GPU และ CPU เวอร์ชัน Linux ได้รับการตรวจสอบอย่างสมบูรณ์ reinvent on Windows และ MacOSX รองรับทั้ง GPU และ CPU แต่ได้รับการทดสอบเพียงบางส่วนบนแพลตฟอร์มเหล่านี้และดังนั้นการสนับสนุนจึงมี จำกัด
รหัสถูกเขียนใน Python 3 (> = 3.10) รายการของการพึ่งพาสามารถพบได้ในที่เก็บ (ดูการติดตั้งด้านล่างด้วย)
GPU ไม่จำเป็นอย่างเคร่งครัด แต่แนะนำอย่างยิ่งสำหรับเหตุผลด้านประสิทธิภาพโดยเฉพาะอย่างยิ่งสำหรับการถ่ายโอนการเรียนรู้และการฝึกอบรมแบบจำลอง การเรียนรู้เสริมแรง (RL) ต้องการการคำนวณคะแนนที่ส่วนประกอบที่ให้คะแนนส่วนใหญ่ทำงานบน CPU ดังนั้น GPU จึงมีความสำคัญน้อยกว่าสำหรับ RL (ขึ้นอยู่กับระยะเวลาที่ใช้ใน CPU)
โปรดทราบว่าหากไม่มีการติดตั้ง GPU ในคอมพิวเตอร์ของคุณรหัสจะทำงานบน CPU โดยอัตโนมัติ Reinvent รองรับ Nvidia GPU และ AMD GPU บางส่วน สำหรับงานออกแบบส่วนใหญ่หน่วยความจำประมาณ 8 GIB สำหรับทั้งหน่วยความจำหลัก CPU และหน่วยความจำ 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 สำหรับ macOSXpip install --no-deps .reinvent ลงในเส้นทางของคุณ reinvent --helpReinvent เป็นเครื่องมือบรรทัดคำสั่งและทำงานเป็นหลักดังนี้
reinvent -l sampling.log sampling.toml สิ่งนี้เขียนข้อมูลการบันทึกไปยังไฟล์ sampling.log หากคุณต้องการเขียนสิ่งนี้ลงบนหน้าจอให้ทิ้งส่วนที่ -l sampling.log sampling.toml เป็นไฟล์การกำหนดค่า รูปแบบผู้ใช้หลักคือ TOML เนื่องจากมีแนวโน้มที่จะเป็นมิตรมากขึ้น JSON สามารถใช้งานได้เช่นกันเพิ่ม -f json แต่แนะนำให้ใช้โปรแกรมแก้ไขเฉพาะเนื่องจากรูปแบบมีความอ่อนไหวต่อการเปลี่ยนแปลงเล็กน้อย
ตัวอย่างไฟล์การกำหนดค่าสำหรับโหมดการรันทั้งหมดจะอยู่ใน config/toml ในที่เก็บและพา ธ ไฟล์ในไฟล์เหล่านี้จะต้องปรับให้เข้ากับการติดตั้งในพื้นที่ของคุณ โดยเฉพาะอย่างยิ่งโมเดลก่อนหน้าที่พร้อมทำอยู่ใน priors และคุณจะเลือกโมเดลและโหมดการทำงานที่เหมาะสมขึ้นอยู่กับปัญหาการวิจัยที่คุณพยายามแก้ไข มีข้อมูลเพิ่มเติมใน config/toml ในไฟล์ *.md หลายไฟล์พร้อมคำแนะนำเกี่ยวกับวิธีการกำหนดค่าไฟล์ TOML นักบวชภายในสามารถอ้างอิงได้ด้วยสัญกรณ์จุด (ดู reinvent/prior_registry.py )
Jupyter คำแนะนำพื้นฐานสามารถพบได้ในความคิดเห็นในตัวอย่างการกำหนดค่าใน config/toml
สมุดบันทึกมีให้ใน notebooks/ ไดเรกทอรี โปรดทราบว่าเราจัดเตรียมสมุดบันทึกในรูปแบบ "สคริปต์แสง" ของ JupyText ในการทำงานกับสคริปต์แสงคุณจะต้องติดตั้ง JupyText แพ็คเกจอื่น ๆ อีกสองสามอย่างจะมีประโยชน์เช่นกัน
pip install jupytext mols2grid seaborn ไฟล์ Python ใน notebooks/ สามารถแปลงเป็นสมุดบันทึกได้เช่น
jupytext -o Reinvent_demo.ipynb Reinvent_demo.pyอัปเดตไฟล์ล็อคด้วย pip-tools (โปรดอย่าแก้ไขไฟล์ด้วยตนเอง):
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-Tools)
ระบบย่อยการให้คะแนนใช้กลไกปลั๊กอินง่าย ๆ หากคุณต้องการเขียนปลั๊กอินของคุณเองให้ทำตามคำแนะนำด้านล่าง ไม่จำเป็นต้องสัมผัสรหัส reinvent ใด ๆ พื้นที่เก็บข้อมูลสาธารณะมีไดเรกทอรี 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
โครงการ Reinvent ใช้เฟรมเวิร์ก pytest สำหรับการทดสอบ ก่อนที่คุณจะเรียกใช้พวกเขาก่อนคุณต้องสร้างไฟล์กำหนดค่าสำหรับการทดสอบ
ในไดเรกทอรีโครงการสร้างไฟล์ config.json ใน configs/ directory คุณสามารถใช้ตัวอย่างการกำหนดค่า example.config.json เป็นฐาน ตรวจสอบให้แน่ใจว่าคุณตั้ง MAIN_TEST_PATH เป็นไดเรกทอรีที่ไม่มีอยู่จริง นั่นคือที่จะเขียนไฟล์ชั่วคราวระหว่างการทดสอบ หากตั้งค่าเป็นไดเรกทอรีที่มีอยู่ไดเรกทอรีนั้นจะถูกลบออกเมื่อการทดสอบเสร็จสิ้น
การทดสอบบางอย่างจำเป็นต้องมีใบอนุญาต Openeye ที่เป็นกรรมสิทธิ์ คุณต้องตั้งค่าบางอย่างเพื่อให้การทดสอบอ่านใบอนุญาตของคุณ วิธีง่ายๆคือการตั้งค่าตัวแปรสภาพแวดล้อม OE_LICENSE ไปยังเส้นทางของไฟล์ที่มีใบอนุญาต
เมื่อคุณมีการกำหนดค่าและใบอนุญาตของคุณสามารถอ่านได้คุณสามารถเรียกใช้การทดสอบ
$ pytest tests --json /path/to/config.json --device cuda