หน่วย
1. ปัญญาประดิษฐ์เบื้องต้นในวิชาเคมี: บทบาท ขอบเขต การตรวจสอบความถูกต้อง และจริยธรรม 2. การเป็นตัวแทนระดับโมเลกุลและโครงสร้างทางเคมี: การตรวจสอบความถูกต้องด้วย SMILES, InChI และ RDKit 3. การทำนายปฏิกิริยาและกลไก: ผลิตภัณฑ์ สภาพ และการทำนายปฏิกิริยาที่ไม่พึงประสงค์ 4. รองรับการตีความสเปกตรัม: NMR, IR และ Mass Spectrometry 5. การทบทวนวรรณกรรมและการวางแผนการสังเคราะห์: แหล่งที่มา ขั้นตอน และแผนงาน 6. การวิเคราะห์ข้อมูลทางเคมีและ Python: แพนด้า ปริมาณสัมพันธ์ และการสอบเทียบ 7. การทำนายคุณสมบัติระดับโมเลกุลและ QSAR: ความละเอียด pKa และขีดจำกัดของโมเดล 8. เอกสารประกอบห้องปฏิบัติการ: สมุดบันทึกการทดลอง, ELN และความสามารถในการทำซ้ำ 9. การประเมินความปลอดภัยและอันตราย: GHS, SDS และขีดจำกัดของปัญญาประดิษฐ์ 10. การยืนยัน ภาพหลอน และความซื่อสัตย์ทางวิทยาศาสตร์ 11. มนุษย์ในการทดลอง: จริยธรรม ความเป็นส่วนตัว ความรับผิดชอบ และขั้นตอนการทำงานแบบครบวงจร
หน่วย 2 / 11

การเป็นตัวแทนระดับโมเลกุลและโครงสร้างทางเคมี: การตรวจสอบความถูกต้องด้วย SMILES, InChI และ RDKit

กำไร:

  • ความสามารถในการระบุโมเลกุลไม่ใช่ด้วยชื่อ แต่โดยการเป็นตัวแทนโครงสร้าง (SMILES กับมนุษย์, InChI/InChIKey พร้อมฐานข้อมูล)
  • ความสามารถในการตรวจจับโครงสร้างที่ไม่ถูกต้องหรือไม่ถูกต้องโดยการแยกวิเคราะห์ ตรวจสอบ และกำหนดรูปแบบมาตรฐานของรอยยิ้มแต่ละอันที่ได้รับจากปัญญาประดิษฐ์ด้วย RDKit
  • สามารถเข้าใจได้ว่าปริมาณที่กำหนด เช่น น้ำหนักโมเลกุลและสูตร ควรได้รับจากเครื่องมือที่ใช้กฎ ไม่ใช่จากแบบจำลองภาษา

เงื่อนไขแรกในการใช้ AI อย่างปลอดภัยในวิชาเคมีคือการเขียนโมเลกุลในภาษาที่ทั้งเครื่องจักรและมนุษย์สามารถเข้าใจได้ คุณพูดว่า "ฟีนอล" AI เข้าใจถูกแล้ว แต่เมื่อคุณพูดว่า "กรด" มีความเป็นไปได้มากมาย ชื่อมีความคลุมเครือ การแสดงโครงสร้างมีความแม่นยำ ในหน่วยนี้ เราจะเรียนรู้สัญลักษณ์พื้นฐานสองประการที่แปลโมเลกุลเป็นข้อความ (SMILES และ InChI) และเครื่องมือที่ตรวจสอบสิ่งเหล่านั้นตามที่กำหนด (RDKit) เป้าหมายของเรา: เพื่อมอบโมเลกุลให้กับ AI ในลักษณะที่จะไม่มีวันเข้าใจผิด และเพื่อยืนยันโครงสร้างที่ AI สร้างขึ้นด้วยเครื่องมือ

รอยยิ้มคืออะไร?

SMILES (ระบบป้อนบรรทัดโมเลกุลแบบง่าย) เป็นรูปแบบหนึ่งของการเขียนโมเลกุลในข้อความบรรทัดเดียว อะตอมแสดงด้วยตัวอักษร พันธะด้วยสัญลักษณ์ และวงแหวนด้วยตัวเลข ตัวอย่าง:

  • เอทานอล: CCO (คาร์บอน–คาร์บอน–ออกซิเจน; ไฮโดรเจนโดยนัย)
  • เบนซิน: c1ccccc1 (c ตัวพิมพ์เล็กหมายถึงคาร์บอนอะโรมาติก โดย 1 ปิดวงแหวน)
  • แอสไพริน: CC(=O)Oc1ccccc1C(=O)O
  • คาเฟอีน: Cn1cnc2c1c(=O)n(C)c(=O)n2C

พลังของ SMILES คือการนำโครงสร้างลิงก์ทั้งหมดมาไว้ในบรรทัดเดียว จุดอ่อนของมันคือโมเลกุลเดียวกันสามารถมี SMILES ที่ถูกต้องได้หลายอัน (ซึ่งเรียกว่า non-canonality) เราจะแก้ไขปัญหานี้ด้วย RDKit ในอีกสักครู่

คำแนะนำ: "canonical SMILES" สำหรับโมเลกุลคือการสะกดมาตรฐานเดียวสำหรับโมเลกุลนั้น หากต้องการดูว่ารอยยิ้มสองตัวเป็นโมเลกุลเดียวกันหรือไม่ ให้กำหนดรูปแบบมาตรฐานและเปรียบเทียบกัน ไม่ควรเท่ากันในข้อความ แต่ควรเป็นโมเลกุลที่เท่ากัน

InChI คืออะไร?

InChI (International Chemical Identifier) ​​​​เป็นตัวระบุมาตรฐานที่พัฒนาโดย IUPAC ความแตกต่างจาก SMILES คือโมเลกุลเดียวกันจะให้ InChI เท่ากันเสมอ นั่นคือมันเป็นบัญญัติในธรรมชาติ ยาวและอ่านยาก แต่เหมาะสำหรับการจับคู่ฐานข้อมูล ใช้ตัวย่อ "InChIKey" (สรุป 27 ตัวอักษร) ในการค้นหา

  • แอสไพริน InChIKey: BSYNRYMUTXBXSQ-UHFFFAOYSA-N.

กฎ: ผู้คนพูดด้วยรอยยิ้ม (อ่าน) เครื่องจักรและฐานข้อมูลตรงกับ InChI/InChIKey (ตรงกันทั้งหมด) มอบรอยยิ้มให้กับ AI; ยืนยันในฐานข้อมูลด้วย InChIKey

RDKit: เครื่องมือตรวจสอบที่กำหนด

RDKit เป็นไลบรารีเคมีแบบโอเพ่นซอร์ส ต่างจากโมเดลภาษาตรงที่เป็นกฎ: แยกวิเคราะห์ SMILES, คำนวณน้ำหนักโมเลกุล, สร้าง Canonical SMILES, ส่งกลับ InChI/InChIKey, ดึงโมเลกุล ดังนั้น RDKit จึง "คำนวณ" สิ่งที่ AI "คาดการณ์" นี่คือหัวใจของเวิร์กโฟลว์: AI สร้างขึ้น, RDKit ยืนยัน

ขั้นตอนการยืนยันขั้นพื้นฐาน:

จาก rdkit import Chemจาก rdkit.Chem import Descriptors, Drawsmiles = "CC(=O)Oc1ccccc1C(=O)O" Chem.MolToSmiles(mol)) print("Molecular Formula:", Chem.rdMolDescriptors.CalcMolFormula(mol)) print("น้ำหนักโมเลกุล:", รอบ(Descriptors.MolWt(mol), 2), "g/mol") พิมพ์ ("InChIKey:", Chem.MolToInchiKey(mol))

หาก MolFromSmiles คืนค่าเป็น None แสดงว่า AI จะให้โมเลกุลที่ไม่ถูกต้องแก่คุณ เพียงอย่างเดียวนี้ถือเป็นคำเตือนที่มีค่ามาก หากถูกต้อง คุณไม่จำเป็นต้องถามแบบจำลองภาษาสำหรับน้ำหนักโมเลกุลอีกต่อไป มันอยู่ในมือของคุณอย่างแน่นอน

ทีละขั้นตอน: การทำงานร่วมกันของ AI + RDKit

  1. ระบุโมเลกุล: ตั้งชื่อให้ AI และขอรอยยิ้ม ตัวอย่างเช่น "ยืนยัน Canonical SMILES สำหรับพาราเซตามอล"
  2. ตรวจสอบ: แยกวิเคราะห์รอยยิ้มที่เข้ามาด้วย MolFromSmiles หากไม่มี ให้ปฏิเสธ
  3. Canonicalize: ดึงข้อมูลการสะกดตามรูปแบบบัญญัติด้วย MolToSmiles; ใช้สิ่งนี้เสมอตั้งแต่นี้เป็นต้นไป
  4. คำนวณตัวเลข: รับน้ำหนักโมเลกุล สูตร จำนวนวงแหวน จำนวนผู้บริจาค/ตัวรับพันธะไฮโดรเจน ฯลฯ จาก RDKit ไม่ใช่จาก AI
  5. Fix ID: สร้าง InChIKey ค้นหาในฐานข้อมูล (PubChem) ยืนยันว่าโมเลกุลนั้นเป็นสารประกอบที่คุณต้องการจริงๆ

เทมเพลตที่สามารถคัดลอกได้สี่แบบ

1) การขอ SMILES (จากคำนามถึงโครงสร้าง):

ภารกิจ: มอบรอยยิ้มตามรูปแบบบัญญัติสำหรับสารประกอบต่อไปนี้ สารประกอบ: พาราเซตามอล (acetaminophen) กฎ: ให้เฉพาะสตริง SMILES และ InChIKey อย่าเพิ่มคำอธิบายใดๆ เพิ่มเติม หากไม่แน่ใจ เขียนว่า UNSURE ไม่ต้องแต่งหน้า

2) คำขอตรวจสอบ SMILES (จากโครงสร้างไปยังการควบคุม):

ตรวจสอบ SMILES ด้านล่าง: CC(=O)Nc1ccc(O)cc1คำถาม:1) นี่เป็น SMILES ที่ถูกต้องหรือไม่2) สารประกอบนี้สอดคล้องกับ (ชื่อสามัญ) อะไร?3) สูตรโมเลกุลคืออะไรหมายเหตุ: ฉันจะคำนวณน้ำหนักโมเลกุลที่แน่นอนด้วย RDKit; คุณเพียงแค่ให้การตีความโครงสร้างของคุณ

3) การเปรียบเทียบสองการเป็นตัวแทน:

ฉันมี SMILES:A) OCCB) CCOTask สองตัว: โมเลกุลเหล่านี้เหมือนกันหรือต่างกันหรือไม่ เขียนเหตุผลของคุณ หมายเหตุ: ฉันจะตรวจสอบคำตอบของคุณโดยกำหนดรูปแบบมาตรฐานใน RDKit

4) คำอธิบายโครงสร้าง (เพื่อการเรียนรู้):

SMILES: Cn1cnc2c1c(=O)n(C)c(=O)n2CTask: อ่าน SMILES นี้ทีละชิ้นและอธิบายว่าแต่ละสัญลักษณ์หมายถึงอะไร (อะตอม พันธะ วงแหวน กลิ่น) ในภาษาตุรกีธรรมดา บอกด้วยว่าเป็นสารประกอบอะไร

พรอมต์อ่อน / พรอมต์แรง

อ่อนแอ:

ให้คุณสมบัติของอะเซตามิโนเฟน

"ฟีเจอร์" ไม่ชัดเจน AI สร้างตัวเลขสุ่มตั้งแต่น้ำหนักโมเลกุลจนถึงจุดหลอมเหลว ซึ่งบางส่วนอาจมีค่าผิดพลาด

แข็งแกร่ง:

สารประกอบ: acetaminophen.1) Canonical SMILES และ InChIKey ver.2) ให้สูตรโมเลกุล กฎ: อย่าให้ค่าตัวเลข เช่น น้ำหนักโมเลกุล จุดหลอมเหลว ฯลฯ; ฉันจะรับมันด้วย RDKit/PubChem เพียงแจ้ง ID บิลด์

ความแตกต่าง: เรากำหนดทิศทางของ AI ไปสู่จุดที่แข็งแกร่ง (เอกลักษณ์ของโครงสร้าง) และอยู่ห่างจากจุดอ่อน (ตัวเลขการทดลอง)

การเปรียบเทียบการแสดงผล

คุณสมบัติ

ยิ้ม

อินชิ / อินชิคีย์

ความสามารถในการอ่าน

สูง (เป็นมิตรกับผู้คน)

ต่ำ (เป็นมิตรกับเครื่องจักร)

ความเป็นมาตรฐาน

อาจมีการเปลี่ยนแปลง (ต้องมีการกำหนดเป็นนักบุญ)

โสดโดยธรรมชาติ

การใช้งาน

การสื่อสารของมนุษย์ การวาดภาพ การป้อนข้อมูล

การจับคู่ฐานข้อมูล ตัวตน

สเตอริโอเคมี

รองรับ (@ สัญลักษณ์)

รองรับ (ชั้น)

เพื่อมอบให้กับ AI

ในอุดมคติ

เหมาะสำหรับการยืนยัน

กรณีขนาดเล็ก

กรณีที่ 1 — สองชื่อ หนึ่งโมเลกุล นักเรียนคนหนึ่งคิดว่า "N-acetyl-para-aminophenol" และ "paracetamol" เป็นสารประกอบที่แตกต่างกันและวางแผนการทดลองแยกกันสองครั้ง เมื่อกำหนดมาตรฐานรอยยิ้มใน RDKit ทั้งสองกลายเป็น CC(=O)Nc1ccc(O)cc1; มันเป็นโมเลกุลเดียวกัน แพ้: วางแผนครึ่งวัน; กำไร: สามารถหลีกเลี่ยงได้ด้วยการตรวจสอบการกำหนดรูปแบบมาตรฐาน 2 นาที

กรณีที่ 2 — การบันทึก SMILES ไม่ถูกต้อง AI ส่งคืน CC(=O)Nc1ccc(O)cc1C( สำหรับตัวแปร (วงเล็บไม่ปิด) นักเรียนเรียกใช้ MolFromSmiles และส่งคืนเป็น None เห็นข้อผิดพลาดทันทีและร้องขอให้แก้ไข SMILES หากไม่มีการตรวจสอบ โครงสร้างที่ผิดพลาดจะแพร่กระจายไปยังบัญชีทั้งหมด

กรณีที่ 3 — น้ำหนักโมเลกุลไม่ถูกต้อง YZ ระบุว่า "น้ำหนักโมเลกุล 214.3 กรัม/โมล" สำหรับไอบูโพรเฟน (C13H18O2) การคำนวณ RDKit ให้ 206.28 กรัม/โมล ส่วนต่าง 0.1 โมล: 21.43 ก. กับ YZ จริง ๆ แล้ว 20.63 ก. ความแตกต่าง 3.9% นี้จะรบกวนการคำนวณปริมาณสัมพันธ์และผลผลิต มันนำแคลคูลัสเชิงกำหนดมา

ข้อผิดพลาดทั่วไป

  • ตั้งชื่อโมเลกุลตามชื่อ คำพ้องความหมาย/ชื่อทางการค้าสับสน ใส่ SMILES หรือ InChI เสมอ
  • เปรียบเทียบ SMILES โดยไม่กำหนดรูปแบบมาตรฐาน OCC และ CCO ต่างกันในข้อความ แต่เหมือนกันในโมเลกุล
  • ถามน้ำหนักโมเลกุลกับแบบจำลองลิ้น นี่คือการคำนวณที่กำหนด ทำได้จาก RDKit หรือดำเนินการด้วยตนเองจากสูตร
  • ไม่สังเกตเห็นรอยยิ้มที่ไม่ถูกต้อง ไม่ตรวจสอบการคืนของ MolFromSmiles None และดำเนินการต่อด้วยโครงสร้างที่ไม่ถูกต้อง
  • ละเลยสเตอริโอเคมี อิแนนทิโอเมอร์ทั้งสองชนิด (ไอโซเมอร์ภาพสะท้อนในกระจก) อาจแสดงผลทางชีวภาพที่แตกต่างกัน ข้ามเครื่องหมาย @/@@ ใน SMILES
ข้อควรสนใจ: สูตรโมเลกุลเดียวกันไม่ได้หมายความว่าโมเลกุลต่างกัน C2H6O เป็นทั้งเอทานอล (CCO) และไดเมทิลอีเทอร์ (COC) ความเท่าเทียมกันของสูตรไม่ใช่ความเท่าเทียมกันของอัตลักษณ์ ใช้ InChIKey เพื่อระบุตัวตน

โดยสรุป

  • ระบุโมเลกุลด้วยสัญกรณ์โครงสร้าง ไม่ใช่ตามชื่อ: SMILES กับมนุษย์ InChI/InChIKey พร้อมฐานข้อมูล
  • RDKit ถูกกำหนดไว้; AI ทำนาย RDKit คำนวณและตรวจสอบ
  • แยกวิเคราะห์ AI SMILES แต่ละรายการด้วย MolFromSmiles แล้วตรวจสอบไม่มี จากนั้นจึงกำหนดรูปแบบมาตรฐาน
  • รับตัวเลข เช่น น้ำหนักโมเลกุลและสูตรจาก RDKit ไม่ใช่จากแบบจำลองภาษา
  • ความเท่าเทียมกันของสูตรไม่ได้หมายถึงเอกลักษณ์ของโมเลกุล ใช้ InChIKey เพื่อระบุตัวตน

งานสมัคร

เลือกสารประกอบสามชนิด (เช่น คาเฟอีน ไอบูโพรเฟน ไกลซีน) ถาม AI สำหรับ Canonical SMILES สำหรับแต่ละอัน จากนั้นเขียนสคริปต์ RDKit (ใช้เทมเพลตด้านบน) และสร้าง: Canonical SMILES, สูตรโมเลกุล, น้ำหนักโมเลกุล, InChIKey SMILES ที่ AI ให้มานั้นถูกต้องกี่อัน? ถ้า YZ ให้น้ำหนักโมเลกุลด้วย ให้คำนวณความแตกต่างเป็นเปอร์เซ็นต์ด้วยค่า RDKit พล็อตสิ่งที่คุณค้นพบลงในตารางเล็กๆ

รายการตรวจสอบ

  • [ ] ฉันรู้ว่า SMILES และ InChI/InChIKey คืออะไร และควรใช้เมื่อใด
  • [ ] ฉันตรวจสอบทุกรอยยิ้มที่ AI มอบให้ด้วย MolFromSmiles
  • [ ] ฉันกำหนดรูปแบบมาตรฐานของรอยยิ้มก่อนที่จะเปรียบเทียบ
  • [ ] ฉันได้รับน้ำหนักโมเลกุลและสูตรจาก RDKit ไม่ใช่จากแบบจำลองภาษา
  • [ ] ฉันยืนยันตัวตนของโมเลกุลในฐานข้อมูลด้วย InChIKey
  • [ ] ฉันรู้สถานการณ์ที่สเตอริโอเคมีมีความสำคัญ