การทำนายโครงสร้างโปรตีนด้วย NVIDIA BioNeMo NIM และ Claude Science: เจาะลึกการทำงานของ AI ในงานวิจัยชีววิทยา
ในยุคที่ปัญญาประดิษฐ์ (AI) เข้ามามีบทบาทสำคัญในทุกวงการ งานวิจัยทางวิทยาศาสตร์ก็เช่นกัน AI กำลังเปลี่ยนแปลงวิธีการทำงานวิจัย โดยเฉพาะในสาขาชีววิทยา ที่ AI สามารถช่วยอ่านงานวิจัย วางสมมติฐาน เรียกใช้โมเดล และตัดสินใจว่าควรทดลองเรื่องใดเป็นลำดับถัดไป
บทความนี้จะพาไปสำรวจการทำงานของ NVIDIA BioNeMo Agent Toolkit ที่ผสานรวมกับ Claude Science และ NVIDIA NIM microservices เพื่อให้ AI สามารถจัดการกระบวนการทำนายโครงสร้างโปรตีนที่ซับซ้อน โดยใช้เทคนิคการจัดเรียงลำดับกรดอะมิโนหลายชนิด (Multiple Sequence Alignment - MSA) และโมเดลการพับตัวของโปรตีนหลายแบบ
AI Agent ในงานวิจัย: ความท้าทายและโอกาส
AI Agent หรือ AI ที่มีความสามารถในการตัดสินใจและดำเนินการด้วยตนเอง กำลังพิสูจน์คุณค่าในหลากหลายสาขา รวมถึงวิศวกรรมซอฟต์แวร์ ที่ AI สามารถเขียน ทดสอบ และส่งมอบโค้ดที่ใช้งานได้จริง
ในงานวิจัยทางวิทยาศาสตร์ ความต้องการอาจมีความซับซ้อนและต้องทำซ้ำมากกว่า นักวิจัยต้องประเมินหลักฐาน ปรับปรุงสมมติฐาน และดำเนินการทดลองที่หล่อหลอมการตัดสินใจในภายหลัง แม้แต่การทดลองที่ล้มเหลวก็สามารถนำไปสู่ข้อมูลเชิงลึกที่ไม่คาดคิดได้
ปัญหาทางวิทยาศาสตร์มักต้องการเครื่องมือเฉพาะทาง เช่น การพับตัวของโปรตีน หรือการจำแนกลักษณะโมเลกุล การจัดการและใช้งานเครื่องมือเหล่านี้อาจเป็นเรื่องท้าทาย เพราะแพ็กเกจที่คล้ายกันอาจมีข้อกำหนดด้านสภาพแวดล้อมหรือ API ที่แตกต่างกันมาก AI Agent ทั่วไปอาจรับรู้ได้ว่างานหนึ่งต้องใช้การพับตัวของโปรตีน แต่ไม่สามารถระบุได้ว่าจะต้องใช้โมเดลใด รูปแบบการส่งคำขอ หรือพารามิเตอร์ใดที่มีความสำคัญ
NVIDIA BioNeMo Agent Toolkit: สะพานเชื่อมสู่ความสำเร็จ
NVIDIA BioNeMo Agent Toolkit ถูกสร้างขึ้นเพื่อปิดช่องว่างนี้ โดยรวบรวมโมเดล ไลบรารี และเวิร์กโฟลว์ด้านวิทยาศาสตร์ชีวภาพจาก NVIDIA BioNeMo ตลอดกว่าทศวรรษ ให้กลายเป็น "ทักษะ" (Skills) ที่ AI Agent สามารถเรียกใช้ได้ สำหรับงานด้านชีววิทยา เคมี จีโนมิกส์ และการค้นคว้ายา
เครื่องมือนี้ถูกออกแบบมาให้ทำงานร่วมกับเฟรมเวิร์ก AI Agent ใดก็ได้ ช่วยให้สามารถสร้างเวิร์กโฟลว์ทางวิทยาศาสตร์ที่ซับซ้อนได้โดยใช้ความเชี่ยวชาญเฉพาะด้าน จากการทดสอบภายใน BioNeMo skills ช่วยเพิ่มความถูกต้องของงานจาก 60% เป็น 100% และเพิ่มประสิทธิภาพการใช้โทเค็นขึ้นประมาณสองเท่า
การทำนายโครงสร้างโปรตีนด้วย Claude Science และ NVIDIA NIM
โพสต์นี้จะสาธิตการใช้ Claude Science ซึ่งเป็น AI Workbench สำหรับงานวิจัยทางวิทยาศาสตร์จาก Anthropic ร่วมกับ NVIDIA BioNeMo Agent Toolkit และ NVIDIA NIM เพื่อทำการทำนายโครงสร้างโปรตีน โดยใช้ MSA และโมเดลการพับตัวหลายแบบ เพื่อเปรียบเทียบผลลัพธ์
NVIDIA และ Anthropic ได้ร่วมมือกันผสานรวม BioNeMo Agent Toolkit เข้ากับ Claude Science ทำให้ AI Agent สามารถค้นหา เปิดใช้งาน และเรียกใช้ NVIDIA NIM microservices ได้โดยตรง
การตั้งค่าสภาพแวดล้อม
Claude Science สามารถทำงานได้ในหลายรูปแบบ ขึ้นอยู่กับตำแหน่งของ GPU และข้อกำหนดด้านความปลอดภัย บทความนี้จะเน้นที่การรันแพลตฟอร์มบนเครื่องที่มี GPU โดยคุณอาจต้องเข้าถึงเวิร์กสเตชันหรือเครื่องบนคลาวด์ที่มี NVIDIA L40S GPU หรือ NVIDIA H100 GPU และติดตั้ง Claude Science แล้ว โดยเครื่องต้องมีพื้นที่จัดเก็บประมาณ 700 GB
โดยปกติ Claude Science จะทำงานในสภาพแวดล้อมแบบ Sandbox การเรียกใช้ BioNeMo NIM microservices จำเป็นต้องมี Compute Endpoints ที่เปิดเผยทรัพยากร GPU ในเครื่องหรือระยะไกล ใน Claude Science ให้เลือก Customize > Compute > NVIDIA BioNeMo NIM > Connect จากนั้นนำเข้า BioNeMo Agent Toolkit skills จาก GitHub เพิ่ม NVIDIA API key และเชื่อมต่อกับ Local Endpoints ซึ่งเป็น Docker containers ที่ใช้ GPU ของโฮสต์
หลังจากนำเข้า Skills, จัดเก็บ API key และกำหนดค่าการเชื่อมต่อแล้ว ให้เริ่มโปรเจกต์และ Session ใหม่ จากนั้นสั่งให้ Claude Science สร้าง NIM microservice endpoints ที่จำเป็น
เมื่อได้รับคำสั่ง ให้เลือก Approve endpoint สำหรับทั้งสองโมเดล การตั้งค่า endpoints เหล่านี้จะต้องดาวน์โหลด containers สำหรับแต่ละ microservice
การวิเคราะห์โปรตีน Seh1 และ Mio-family
เมื่อ NIM endpoints ทั้งสามทำงานแล้ว Claude Science จะจัดการเวิร์กโฟลว์การทำนายโครงสร้าง ในตัวอย่างนี้ เราจะพิจารณาโปรตีน Seh1 และโปรตีนคู่หูที่คาดการณ์ไว้จาก Mio-family ใน Paracoccidioides lutzii ซึ่งเป็นเชื้อราที่ก่อให้เกิดโรค paracoccidioidomycosis ตัวอย่างนี้ได้รับแรงบันดาลใจจาก Figure 4e ของงานวิจัย Han, Tsenkov, Venanzi et al.
โปรตีน Seh1 และ Mio-family มีส่วนร่วมในกลไกการรับรู้สารอาหารที่สืบทอดกันมา และโครงสร้างจากสิ่งมีชีวิตอื่น ๆ บ่งชี้ว่า Mio สามารถเติมเต็มโครงสร้างแบบเปิดของ Seh1 ที่เรียกว่า β-propeller ได้ ทำให้คู่นี้เป็นตัวทดสอบที่ดีสำหรับการทำนายโครงสร้างที่ซับซ้อนโดยใช้ MSA
คำถามเชิงโครงสร้าง
ในการศึกษาครั้งนี้ เราใช้ระบบโปรตีนสองชนิดจาก Paracoccidioides lutzii: โปรตีนนิวเคลียร์พอร์ Seh1 (C1GY11) และคู่หูที่ยังไม่ได้รับการจำแนกประเภท (C1HCX1) คำถามเชิงโครงสร้างคือ: โครงสร้างที่คาดการณ์ของ Seh1 จะแตกต่างกันอย่างไรเมื่อจำลองเพียงลำพัง กับเมื่อจำลองร่วมกับคู่หูที่คาดการณ์ไว้?
เพื่อตอบคำถามนี้ Claude Science จะสร้างบริบททางวิวัฒนาการสำหรับลำดับเป้าหมายโดยใช้ MSA จากนั้นส่งการจัดเรียงเหล่านั้นไปยังโมเดลการพับตัวอิสระสองแบบ โดยเก็บรักษาอินพุตและเอาต์พุตไว้ เพื่อให้สามารถตรวจสอบการทำนายแบบ single-chain และ two-chain ภายในแต่ละโมเดลได้
เวิร์กโฟลว์นี้มี 3 ขั้นตอนหลัก:
- สร้าง MSA: สร้าง MSA สำหรับลำดับ single-chain และลำดับคู่ของสปีชีส์ โดยใช้ MSA Search NIM ที่เร่งความเร็วด้วย GPU
- ทำนายโครงสร้างด้วย OpenFold3: ทำนายโครงสร้างสำหรับ single chain และ two-chain complex โดยใช้ OpenFold3 NIM
- ทำนายโครงสร้างด้วย Boltz-2: ทำซ้ำการทำนายด้วย Boltz-2 NIM และประเมินแต่ละโมเดลแยกกัน
ขั้นตอนที่ 1: การสร้าง MSA
Agent จะดึงลำดับโปรตีนทั้งสองจาก UniProt และสร้างการจัดเรียงสองประเภท:
- การจัดเรียงแบบไม่จับคู่ (Unpaired alignment): สำหรับโปรตีนแต่ละชนิด เพื่อให้ข้อมูลเกี่ยวกับโครงสร้างของแต่ละสาย
- การจัดเรียงแบบจับคู่ (Paired alignment): โดยการจับคู่โปรตีนที่เกี่ยวข้องซึ่งพบในสปีชีส์เดียวกัน หากการเปลี่ยนแปลงในโปรตีนหนึ่งสอดคล้องกับการเปลี่ยนแปลงในอีกโปรตีนหนึ่งอย่างสม่ำเสมอ รูปแบบนั้นสามารถช่วยให้โมเดลทำนายจุดที่โปรตีนอาจมีปฏิสัมพันธ์กันได้
ในการรันนี้ การค้นหาพบ 202 ลำดับสำหรับโปรตีนแต่ละชนิด Agent ได้บันทึกแหล่งที่มาและลำดับสำหรับ Seh1 (384 residues) และ C1HCX1 (976 residues) รวมถึง Checksums เพื่อการยืนยัน โดยไม่ได้ตัดลำดับใด ๆ หรือให้เทมเพลตโครงสร้าง ลิแกนด์ หรือข้อจำกัดอื่น ๆ
ขั้นตอนที่ 2: การทำนายโครงสร้างด้วย OpenFold3
OpenFold3 รับรายการโมเลกุลที่มี msa ต่อสาย (unpaired) และสำหรับ complex จะมี paired_msa Agent ทำการรันสองเงื่อนไขด้วยลำดับ Seh1 เดียวกัน:
- Monomer: (chain A พร้อม MSA ของมัน)
- Heteromer: (chains A และ B พร้อม MSA ของพวกมัน บวกกับ
paired_msa)
โดยใช้ผลลัพธ์ mmCIF, ไม่ใช้เทมเพลต และเก็บตัวอย่างที่ส่งคืนทั้งหมด รวมถึงฟิลด์ความมั่นใจที่บริการเปิดเผย
ผลลัพธ์ที่เปิดเผย ได้แก่ confidencescore, complexplddtscore, complexpdescore, ptmscore, iptmscore (พร้อมด้วย format, name, source) runtimemetrics มีอยู่แต่ว่างเปล่า
iptmscoreของ monomer คือ 0 โดยการออกแบบ และconfidencescoreของ OpenFold3 จะให้น้ำหนักกับ interface เป็นอย่างมาก ซึ่งเป็นเหตุผลว่าทำไม monomer ที่พับตัวได้ดี (pTM 0.82, pLDDT 82) จึงยังมีคะแนน composite ต่ำ ควรพิจารณาconfidence_scoreภายใน OpenFold3 ไม่ใช่ข้ามโมเดล
ขั้นตอนที่ 3: การทำนายโครงสร้างด้วย Boltz-2
เงื่อนไขสองแบบเดียวกันถูกรันผ่าน Boltz-2 โดยใช้ Chain ID เดิมและนโยบายแบบไม่มีเทมเพลต ความแตกต่างทางสถาปัตยกรรมเพียงอย่างเดียวที่สำคัญคือ: Boltz-2 ไม่มีฟิลด์ pairedmsa แยกต่างหาก มันรับ MSA ต่อสายหนึ่งชุดและจับคู่ภายใน (concatenatemsas ระดับบนสุดเป็นทางเลือก) ดังนั้นแต่ละสายของ Boltz-2 จึงได้รับ A3M ต่อสายของมัน
Boltz-2 สร้างผลลัพธ์ PAE เต็มรูปแบบ (writefullpae=true)
Boltz-2 ส่งคืนชุดความมั่นใจที่หลากหลายกว่า: confidencescores, ptmscores, iptmscores, proteiniptmscores, complexplddtscores, complexiplddtscores, complexpdescores, complexipde_scores พร้อมด้วย arrays ต่อสายและคู่ และเมทริกซ์ PAE/PDE เต็มรูปแบบ (สูงสุด 1360×1360 สำหรับ complex)
ฟิลด์เดียวที่ถูกร้องขอและบริการปล่อยให้ว่างคือข้อมูลเมตาไทม์รัน (runtime_metrics: {})
MSA คือหัวใจสำคัญของการทำนาย
เนื่องจากเวิร์กโฟลว์นี้ยังรันการทำนายแบบ single-sequence (ไม่มี MSA) คุณค่าของขั้นตอนที่ 1 จึงสามารถวัดผลได้โดยตรง สำหรับ heteromer, interface pTM (iPTM) ซึ่งเป็นเมตริกที่รายงานเกี่ยวกับการสัมผัสที่คาดการณ์ระหว่างสองสาย จะลดลงอย่างมากหากไม่มี MSA ในทั้งสองโมเดล:
- เมื่อมี MSA:
iPTMสูงถึง 0.85 สำหรับ OpenFold3 และ 0.82 สำหรับ Boltz-2 - เมื่อไม่มี MSA: ลดลงเหลือ 0.14 และ 0.19 ตามลำดับ
การทดสอบความทนทานสองประการสนับสนุนผลลัพธ์นี้:
- การรันแต่ละเงื่อนไขด้วยงบประมาณการสุ่มตัวอย่างที่มากขึ้น (OpenFold3
diffusion_samples=5; Boltz-2 ห้าตัวอย่างพร้อมการรีไซเคิลหกขั้น และ 200 ขั้นตอนการสุ่มตัวอย่าง) ภาพรวมยังคงเหมือนเดิมinterfaceที่มี MSA ยังคงสูง และinterfaceที่ไม่มี MSA ยังคงลดลง (เหมือนกับค่าตัวอย่างเดียวภายใน 0.01 iPTM) การสุ่มตัวอย่างเพิ่มเติมไม่สามารถทดแทนข้อมูลทางวิวัฒนาการได้ - ตระกูลโมเดลทั้งสอง (ที่มีสถาปัตยกรรมต่างกัน และสำหรับ Boltz-2 กลไกการจับคู่ MSA ที่แตกต่างกัน) มีคะแนน
iPTMอยู่ภายใน 0.03 ซึ่งแสดงถึงความสอดคล้องกันของโมเดล
ผลลัพธ์ของ monomer แสดงให้เห็นถึงความขึ้นอยู่กับ MSA ของแต่ละโมเดล OpenFold3 ต้องการการจัดเรียงแม้แต่จะพับสายเดี่ยว (pLDDT 82 → 36 หากไม่มี) Boltz-2 พับ monomer ได้ค่อนข้างดีจากลำดับเพียงอย่างเดียว (0.79 → 0.73) แต่ก็ยังไม่สามารถวาง interface ได้หากไม่มี MSA ในทั้งสองกรณี ขั้นตอนที่ 1 ถือเป็นมากกว่าแค่ขั้นตอนการประมวลผลล่วงหน้า แต่เป็นรากฐานที่แท้จริงของสมมติฐานเกี่ยวกับ interface
ตรวจสอบโครงสร้างที่เวิร์กโฟลว์สร้างขึ้น
Agent จะตรวจสอบว่าคู่หูที่คาดการณ์ไว้นั้นเปลี่ยนแปลงโครงสร้าง Seh1 ที่ทำนายไว้หรือไม่ สำหรับแต่ละโมเดล จะทำการซ้อนทับ (superpose) Seh1 chain จาก monomer และ heteromer และตรวจสอบบริเวณ WD40 β-propeller
- มุมมอง monomer และ heteromer ใช้ตำแหน่งกล้องเดียวกันหลังจากการจัดเรียงแกนหลักของ Seh1 แสดงให้
ขอบคุณ แหล่งข้อมูล
https://developer.nvidia.com/blog/run-nvidia-bionemo-nim-microservices-for-protein-structure-prediction-in-claude-science/