MolScript: ภาษาข้อความสำหรับแผนภาพปฏิกิริยาและกลไกลูกศรโค้ง
คำตอบสั้น ๆ: MolScript เป็นภาษาข้อความขนาดเล็กสำหรับแผนภาพปฏิกิริยาและกลไกการผลักอิเล็กตรอน คุณเขียนแต่ละสปีชีส์เป็น SMILES เชื่อมสปีชีส์ด้วย +, ->, <-> หรือ <=> ติดหมายเลขแมปอะตอมให้อะตอมที่ลูกศรแตะ และเขียนบรรทัด move หนึ่งบรรทัดต่อลูกศรโค้งหนึ่งอัน MolDraw วาดโครงสร้าง สภาวะ อิเล็กตรอนคู่โดดเดี่ยว ประจุ และลูกศรทุกอัน และตรวจลูกศรทุกอันตามกฎการวาดก่อนที่คุณจะเห็น ผลลัพธ์เป็นเนื้อหาบนพื้นที่วาดธรรมดาที่แก้ไขได้ และดาวน์โหลดเป็นภาพหรือโค้ด chemfig สำหรับ LaTeX ได้
สรุป MolScript โดยย่อ
| สิ่งที่คุณเขียน | สปีชีส์เป็น SMILES ตัวดำเนินการระหว่างสปีชีส์ สภาวะในวงเล็บเหลี่ยมหลังลูกศร และบรรทัด move สำหรับอิเล็กตรอน |
|---|---|
| สิ่งที่คุณจะได้รับ | แผนภาพที่จัดวางแล้ว: โครงสร้าง เครื่องหมายบวก ลูกศรปฏิกิริยา ลูกศรสมดุลหรือเรโซแนนซ์ สภาวะ คำบรรยาย อิเล็กตรอนคู่โดดเดี่ยว ประจุ จุดเรดิคัล และลูกศรโค้ง |
| ชนิดของลูกศร | ลูกศรโค้งสองอิเล็กตรอน (->) และลูกศรหัวเบ็ดหนึ่งอิเล็กตรอน (~>) จากอิเล็กตรอนคู่โดดเดี่ยว ประจุ เรดิคัล อะตอม หรือพันธะ ไปยังอะตอม พันธะ หรือพันธะที่กำลังเกิด |
| การตรวจสอบ | หมายเลขแมปทุกตัวต้องมีอยู่และไม่ซ้ำ ลูกศรทุกอันต้องเริ่มจากที่ที่มีอิเล็กตรอน และลูกศรทุกอันที่วาดจะถูกประเมินเรื่องระยะห่าง ทิศทาง ความโค้ง และระยะเว้น ปัญหาจะส่งกลับพร้อมหมายเลขบรรทัด |
| เอาต์พุต | วัตถุบนพื้นที่วาด MolDraw ที่แก้ไขได้ และการส่งออกทุกแบบของ MolDraw รวมถึง chemfig (.tex) สำหรับเอกสาร LaTeX |
| ใช้ที่ไหนบ้างในปัจจุบัน | แชต AI ของ MolDraw วาดกลไกด้วยการเขียน MolScript และภาพกลไกในแผง Templates สร้างจาก MolScript |
| ขั้นต่อไป | เฟรมเวิร์กแบบเปิดสำหรับแอปพื้นที่วาด และ AI skill ที่ผู้ช่วยใดก็โหลดได้ ดูแผนงาน |
สคริปต์แรกของคุณ: SN2
ไฮดรอกไซด์เข้าทำโบรโมมีเทนจากด้านหลัง และโบรไมด์หลุดออกในขั้นเดียวกัน ใน MolScript เขียนได้ในสี่บรรทัด:
title: SN2 of bromomethane [OH-:1] "hydroxide" + [CH3:2][Br:3] "bromomethane" ->[SN2][acetone] CO "methanol" + [Br-] move :1 -> 1..2 move 2-3 -> 3
ทีละบรรทัด:
title:ใส่หัวเรื่องเหนือแผนภาพ- บรรทัดแผนภาพระบุสปีชีส์
[OH-:1]คือไฮดรอกไซด์ที่ออกซิเจนมีหมายเลขแมป 1[CH3:2][Br:3]คือโบรโมมีเทนที่คาร์บอนเป็น 2 และโบรมีนเป็น 3"hydroxide"เป็นคำบรรยายที่วาดใต้โครงสร้าง->[SN2][acetone]เป็นลูกศรปฏิกิริยาที่มีข้อความด้านบนและด้านล่าง move :1 -> 1..2: อิเล็กตรอนคู่โดดเดี่ยว (ในที่นี้คือประจุลบ) บนอะตอม 1 ไปยังพันธะที่กำลังเกิดระหว่าง 1 และ 2move 2-3 -> 3: อิเล็กตรอนของพันธะ C–Br ที่มีอยู่ไปยังโบรมีน
หมายเลขแมปเป็นป้ายสำหรับคุณและลูกศร ไม่ถูกวาดออกมา และไม่เปลี่ยนโมเลกุล
ภาษา
สปีชีส์และตัวดำเนินการ
SMILES ใดก็เป็นสปีชีส์ได้ ตัวดำเนินการเขียนโดยเว้นวรรคทั้งสองข้าง:
+ | เครื่องหมายบวกระหว่างสารตั้งต้นร่วมหรือผลิตภัณฑ์ร่วม สปีชีส์ที่เชื่อมด้วย + จะอยู่ในแถวเดียวกันเสมอ |
|---|---|
-> | ลูกศรปฏิกิริยา |
<=> | ลูกศรสมดุล (ลูกศรหัวครึ่งสองอัน) |
<-> | ลูกศรเรโซแนนซ์ (หัวสองข้าง) ใช้ระหว่างรูปเรโซแนนซ์ของสปีชีส์เดียวกัน |
=> | ลูกศรการสังเคราะห์ย้อนกลับ |
ข้อความเหนือและใต้ลูกศรใส่ในวงเล็บเหลี่ยมติดกับลูกศร: ->[NaBH4][MeOH, 0 °C] เว้นคู่แรกว่างไว้ถ้าต้องการข้อความด้านล่างอย่างเดียว: ->[][reflux] คำบรรยายในเครื่องหมายคำพูดคู่หลังสปีชีส์จะวาดใต้สปีชีส์นั้น: CC(=O)O "acetic acid"
หลายขั้น
บรรทัดที่ขึ้นต้นด้วยตัวดำเนินการจะต่อแผนภาพจากสปีชีส์สุดท้าย กลไกจึงอ่านได้บรรทัดละหนึ่งขั้น โดยมีลูกศรของขั้นนั้นอยู่ใต้บรรทัดทันที:
title: SN1 of tert-butyl bromide C[C:1](C)(C)[Br:2] ->[slow] C[C+:3](C)C + [Br-] move 1-2 -> 2 -> C[C+:4](C)C + [OH2:5] move :5 -> 5..4 ->[fast] CC(C)(C)[OH2+]
ลูกศรโค้ง: บรรทัด move
ทุกอะตอมที่ลูกศรแตะต้องมีหมายเลขแมปใน SMILES: [OH-:1], [CH3:2][Br:3], [O:4] สำหรับออกซิเจนธรรมดา หมายเลขต้องไม่ซ้ำกันทั้งสคริปต์ จากนั้น:
move <from> -> <to> two-electron curly arrow move <from> ~> <to> one-electron fish-hook
ปลายทั้งสองเขียนแบบเดียวกัน:
:n | อิเล็กตรอนคู่โดดเดี่ยวบนอะตอม n สำหรับแอนไอออน ลูกศรจะเริ่มที่เครื่องหมายลบ ตามที่นักเคมีวาด |
|---|---|
n | อะตอม n ลูกศรของเรดิคัลเริ่มที่จุดของเรดิคัล |
n-m | พันธะที่มีอยู่ระหว่างอะตอม n และ m เมื่อเป็นจุดเริ่ม อิเล็กตรอนจะออกจากพันธะ เมื่อเป็นจุดสิ้นสุด อิเล็กตรอนจะทำให้พันธะเป็นพันธะคู่ |
n..m | พันธะที่กำลังเกิดระหว่าง n และ m (ใช้เป็นจุดสิ้นสุดเท่านั้น) หัวลูกศรหยุดข้างอะตอม m ด้านที่หันไปทาง n |
ลูกศรหลายอันอยู่ในบรรทัดเดียวได้ โดยคั่นด้วยเครื่องหมายอัฒภาค: move :1 -> 1..4; 4-2 -> 2-3; 3-5 -> 5 เขียนไฮโดรเจนที่ถูกถ่ายโอนให้ชัดเจน [H:5][O:6]CC เพื่อให้ลูกศรเริ่มจากพันธะของมันได้ เขียนศูนย์กลางเรดิคัลที่มีแมปพร้อมจำนวนไฮโดรเจนเพื่อให้คงจุดไว้: CC(C)(C)[OH0:1] คือ tert-บิวทอกซิลเรดิคัล
ลูกศรถูกวางโดยอัตโนมัติ ถ้าต้องการความโค้งแบบเฉพาะ ให้เพิ่มค่ากำหนดทับในวงเล็บปีกกา: move 2-3 -> 3 {bow=0.3 side=left}
คำสั่งกำกับและคอมเมนต์
title: … | หัวเรื่องเหนือแผนภาพ |
|---|---|
per-row: 2 ถึง 8 | จำนวนโครงสร้างต่อแถวก่อนแผนภาพขึ้นแถวใหม่ (ค่าเริ่มต้น 4) |
layout: row, cycle, branch | รูปร่างแผนภาพ: ซ้ายไปขวา วัฏจักรตัวเร่ง หรือสารตั้งต้นหนึ่งตัวไปยังผลิตภัณฑ์หลายตัว |
# … | คอมเมนต์จนถึงท้ายบรรทัด # ที่อยู่ใน SMILES (พันธะสาม) ไม่ใช่คอมเมนต์ |
ข้อผิดพลาด
ปัญหาจะส่งกลับพร้อมบรรทัดที่เกิดปัญหาเป็นภาษาที่เข้าใจง่าย เพื่อให้คนหรือผู้ช่วย AI แก้บรรทัดนั้นแล้ววาดใหม่ได้:
line 1: put +, -> or <-> between "[O:1]C" and "[O:1]C" line 3: no atom is tagged :9 in the SMILES (write it as [X:9]) line 4: n..m (a bond being formed) can only be the destination line 5: a move needs -> (curly arrow) or ~> (fish-hook) between its ends C (map 2) has no lone pair
พิมพ์น้อยลง วาดได้มากขึ้น: ชื่อ ไฮไลต์ และหมายเลข
หมายเลขแมปจำเป็นเฉพาะเมื่ออะตอมกำกวม ธาตุที่ปรากฏครั้งเดียวในสารตั้งต้นของขั้นนั้นระบุตัวเองได้ และในปลายแบบพันธะ จะนับเฉพาะอะตอมที่สร้างพันธะกับปลายอีกข้าง นี่คือกลไก SN1 ทั้งหมดโดยไม่มีหมายเลขแมป มีหมายเลขสารและขั้น และแถวที่วกไปวกมา:
title: SN1 with element ends, numbered, snake rows number: both wrap: snake per-row: 3 CC(C)(C)Br ->[slow] C[C+](C)C + [Br-] move C-Br -> Br -> C[C+](C)C + O move :O -> O..C+ ->[fast] CC(C)(C)[OH2+]
C-Br คือคาร์บอนตัวเดียวที่สร้างพันธะกับโบรมีน C+ เลือกแคตไอออนจากประจุ และ :O คืออิเล็กตรอนคู่โดดเดี่ยวของออกซิเจนตัวเดียวในขั้นนั้น ถ้าธาตุปรากฏสองครั้ง MolScript จะแจ้งและขอหมายเลขแมป
h2 | ไฮโดรเจนบนอะตอม 2 ที่ระบบเขียนให้ชัดเจนแทนคุณ: move :1 -> 1..h2; h2-2 -> 2-3 |
|---|---|
let base = [OH-:1] "hydroxide" | กำหนดสปีชีส์ครั้งเดียว แล้วเขียน $base |
[OH]~C([H])([H])([H])~[Br] {ts} | สถานะทรานซิชัน: ~ คือพันธะบางส่วน (เส้นประ) {ts} วาดวงเล็บพร้อม ‡ และจัดพันธะที่กำลังเกิดและกำลังแตกให้ตรง |
{δ+=2 δ-=3} | ประจุย่อยข้างอะตอม |
{highlight=2/3-4:blue} | แถบไฮไลต์บนอะตอม 2 และพันธะ 3–4 |
{ox=1:II}, {dative=1-2} | เลขออกซิเดชันและพันธะโลหะ–ลิแกนด์สำหรับขั้นของสารออร์แกโนเมทัลลิก |
[Ph] [R1] [Nu-:1] | คำย่อและหมู่ R ที่วาดเป็นป้าย |
->[{CC(=O)Cl}][AlCl3] | รีเอเจนต์ที่วาดเป็นโครงสร้างเหนือลูกศร |
layout: cycle | วัฏจักรตัวเร่ง การจบที่สปีชีส์แรกจะปิดวง และส่งออกเป็น chemfig พร้อมส่วนโค้งจริงได้ |
สคริปต์กลายเป็นภาพวาดได้อย่างไร
สคริปต์ผ่านขั้นตอนเดียวกันทุกครั้ง สคริปต์เดียวกันจึงให้ภาพวาดเดียวกันเสมอ:
- อ่าน สคริปต์ถูกแยกเป็นบรรทัดแผนภาพ บรรทัด move และคำสั่งกำกับ แต่ละสปีชีส์ ตัวดำเนินการ คำบรรยาย และชุดสภาวะถูกบันทึกพร้อมหมายเลขบรรทัด
- ตรวจป้าย หมายเลขแมปทุกตัวที่ใช้ใน move ต้องอยู่บนอะตอมเพียงหนึ่งอะตอม
n-mทุกตัวต้องเป็นพันธะจริง และทุกจุดเริ่มต้องมีอิเล็กตรอนให้: อิเล็กตรอนคู่โดดเดี่ยว ประจุ เรดิคัล หรือพันธะ - วาดสปีชีส์ SMILES แต่ละตัวกลายเป็นโครงสร้าง 2D ที่มุมพันธะเรียบร้อย ไฮโดรเจนที่ระบุชัดเจนซึ่งลูกศรต้องใช้จะวาดเป็นอะตอม ประจุ อิเล็กตรอนคู่โดดเดี่ยว และจุดเรดิคัลจะเพิ่มตามที่ SMILES ระบุ
- จัดวางแผนภาพ โครงสร้าง เครื่องหมายบวก และลูกศรถูกจัดเรียงตามความกว้างจริง แถวขึ้นใหม่ที่ลูกศรปฏิกิริยา และสภาวะกับคำบรรยายถูกเว้นระยะไม่ให้ข้อความซ้อนกัน
- วางลูกศรโค้ง ลูกศรแต่ละอันออกจากต้นทางในตำแหน่งที่นักเคมีจะวาด และโค้งหลบพันธะ ป้าย และลูกศรอื่น (รายละเอียดด้านล่าง)
- ตรวจเคมี ทุกขั้นที่มีลูกศรโค้งจะถูกจำลองซ้ำบนอิเล็กตรอน: ลูกศรแต่ละอันนำอิเล็กตรอนสองตัว (หนึ่งตัวสำหรับลูกศรหัวเบ็ด) จากอิเล็กตรอนคู่โดดเดี่ยว เรดิคัล หรือพันธะ ไปไว้บนอะตอมหรือในพันธะ โครงสร้างที่ได้ต้องตรงกับที่เขียนไว้หลังลูกศร ผลิตภัณฑ์ที่ผิด (พร้อมผลต่างของอะตอมและประจุ) คาร์บอนที่มีสิบอิเล็กตรอน ลูกศรจากอะตอมที่ไม่เหลืออิเล็กตรอน ลูกศรหัวเบ็ดที่ไม่มีคู่ หรือลูกศรเรโซแนนซ์ที่ทำลายพันธะ σ จะถูกรายงานพร้อมหมายเลขบรรทัด
- ประเมินลูกศรทุกอัน ลูกศรที่วางแล้วแต่ละอันถูกวัดเทียบกับกฎ ลูกศรที่ทำตามกฎไม่ได้ในจุดที่แออัดจะยังถูกวาดและรายงานเป็นคำเตือน
- ส่งมอบวัตถุที่แก้ไขได้ ผลลัพธ์เป็นเนื้อหาธรรมดาบนพื้นที่วาด: ลากโครงสร้างแล้วลูกศรจะตามไป ปรับสไตล์ได้ทุกอย่าง และส่งออกได้
กฎลูกศรที่ MolScript ใช้:
| หางลูกศร | อยู่บนอิเล็กตรอนคู่โดดเดี่ยวหรือเครื่องหมายลบ จุดเรดิคัล หรือกลางพันธะที่ให้อิเล็กตรอน ไม่อยู่ทับป้ายอะตอม |
|---|---|
| หัวลูกศร | หยุดก่อนถึงอะตอมที่รับอิเล็กตรอนเล็กน้อย หรืออยู่ในช่องว่างของพันธะที่กำลังเกิด ด้านที่หันไปทางอะตอมที่เข้าทำ |
| ความโค้ง | โค้งออกด้านนอกของโครงสร้าง โดยมีมุมหัวลูกศรคงที่ ลูกศรหัวเบ็ดคงเงี่ยงเดียวไว้ด้านนอกของส่วนโค้ง |
| ระยะเว้น | อยู่ห่างจากพันธะ ป้าย ประจุ จุด และลูกศรอื่น ลูกศรที่มีเป้าหมายเดียวกันจะกระจายออกแทนที่จะซ้อนกัน |
| ความยาว | ลูกศรที่สั้นเกินจะอ่านได้หรือยาวเกินจะตามได้จะถูกแจ้งเตือน |
กลไกอ้างอิงทุกแบบในชุดทดสอบของ MolScript จะถูกวาดและประเมินตามกฎเหล่านี้ทุกครั้งที่ MolDraw เปลี่ยนแปลง ปัจจุบันมี 41 กลไกที่มีลูกศรโค้ง 81 อัน ทั้งหมดผ่านทั้งกฎการวาดและการนับอิเล็กตรอน รวมถึงภาพใน Templates ด้วย คุณดูได้ทุกแบบในแกลเลอรี MolScript
ตัวอย่างโจทย์
ปฏิกิริยากำจัด E2: ลูกศรสามอันในขั้นเดียว
title: E2 elimination [OH-:1] + [H:4][CH2:2][CH:3](C)[Br:5] ->[E2] C=CC + O + [Br-] move :1 -> 1..4; 4-2 -> 2-3; 3-5 -> 5
การเติมแบบ Michael: ลูกศรต่อกันเป็นสายผ่านระบบคอนจูเกต
title: Michael addition [CH2-:1]C(C)=O + [CH2:2]=[CH:3][C:4](C)=[O:5] ->[1,4-addition] CC(=O)CCC=C(C)[O-] move :1 -> 1..2; 2-3 -> 3-4; 4-5 -> 5
2-3 -> 3-4 ย้ายอิเล็กตรอน π ของ C=C เข้าไปในพันธะ C–C ทำให้เป็นพันธะคู่Diels–Alder: ลูกศรเป็นวง
title: Diels–Alder [CH2:1]=[CH:2][CH:3]=[CH2:4] + [CH2:5]=[CH2:6] ->[Δ] C1CC=CCC1 move 1-2 -> 2-3; 3-4 -> 4..5; 5-6 -> 6..1
การเติมแบบเรดิคัล: ลูกศรหัวเบ็ด
title: Radical addition of Br• to propene [Br:1] + [CH2:2]=[CH:3]C -> BrC[CH]C move 1 ~> 1..2 move 2-3 ~> 1..2 move 2-3 ~> 3
~> วาดลูกศรหัวเบ็ด สองอันที่สิ้นสุดที่ 1..2 พบกันตรงกลางพันธะใหม่เรโซแนนซ์: อีโนเลต
[CH2-:1][C:2](C)=[O:3] <-> C=C(C)[O-] move :1 -> 1-2 move 2-3 -> 3
<-> คือลูกศรเรโซแนนซ์ ลูกศรโค้งแสดงว่ารูปหนึ่งกลายเป็นอีกรูปได้อย่างไรสร้างบน MolScript: ภาพทั้งภาพ
ภาพกลไกในแผง Templates ของ MolDraw (ปุ่มที่ด้านล่างของแถบเครื่องมือซ้าย) เขียนด้วย MolScript แต่ละขั้นของเอสเทอริฟิเคชันแบบ Fischer การเติมแบบแอลดอล และการเติม Grignard เป็นสคริปต์สั้น ๆ เทมเพลตเพิ่มแผง ป้ายขั้น วงกลมไฮไลต์ และหมายเหตุรอบ ๆ เพราะขั้นต่าง ๆ เป็นข้อความ ลูกศรทุกอันในทุกภาพจึงถูกตรวจด้วยวิธีเดียวกับตัวอย่างด้านบน
MolScript กับ chemfig
chemfig เป็นแพ็กเกจ LaTeX ที่นักเคมีส่วนใหญ่ใช้จัดพิมพ์โครงสร้างและกลไก ทำงานได้ยอดเยี่ยมในสิ่งที่ออกแบบมา และ MolScript ไม่ได้มีไว้แทนที่ใน LaTeX ทั้งสองอธิบายสิ่งที่ต่างกัน:
| chemfig | MolScript | |
| สิ่งที่คุณอธิบาย | ภาพวาด: มุมและความยาวของพันธะแต่ละพันธะ แล้วจุดยึด ระยะเลื่อน และความโค้งของลูกศรแต่ละอัน | เคมี: สปีชีส์เป็น SMILES และอิเล็กตรอนใดเคลื่อนไปที่ไหน |
| การจัดวาง | ทำเอง ทีละโครงสร้างและทีละแผนภาพ | อัตโนมัติ: โครงสร้าง แถว สภาวะ และคำบรรยาย |
| ลูกศรโค้ง | เส้นทาง TikZ ระหว่างจุดที่ตั้งชื่อไว้ ตำแหน่งถูกกำหนดในการรัน LaTeX รอบที่สอง | บรรทัด move หนึ่งบรรทัดระหว่างหมายเลขแมป วางและประเมินตามกฎการวาด |
| ข้อผิดพลาด | ปรากฏเป็น PDF ที่ดูผิด | รายงานพร้อมหมายเลขบรรทัด: หมายเลขแมปที่หายไป จุดเริ่มที่ไม่มีอิเล็กตรอน พันธะที่ไม่มีอยู่ |
| ผลลัพธ์ | ผลลัพธ์ที่จัดพิมพ์ในเอกสาร | วัตถุบนพื้นที่วาดที่แก้ไขได้ พร้อมการส่งออกเป็นภาพ เวกเตอร์ และ chemfig |
| เหมาะสำหรับ | ควบคุมการจัดพิมพ์อย่างละเอียดภายในเอกสาร LaTeX | ได้กลไกที่ถูกต้องและเรียบร้อยอย่างรวดเร็ว ไม่ว่าจะเขียนเองหรือจากผู้ช่วย AI |
ทั้งสองทำงานร่วมกัน: วาดด้วย MolScript แล้วเลือก Download → chemfig (.tex) เพื่อรับโค้ด chemfig สำหรับเอกสารของคุณ ตัวอย่างกลไก chemfig แสดงหน้าตาของโค้ดนั้น
ทำไมต้องเป็นข้อความ: MolScript และผู้ช่วย AI
MolScript ออกแบบมาให้โมเดลภาษาวาดกลไกได้โดยไม่ต้องจัดการพิกัดเลย:
- โมเดลเขียน SMILES ได้ดีอยู่แล้ว ทุกสปีชีส์จึงอยู่ในสัญกรณ์ที่โมเดลรู้จัก
- แมปอะตอมทำให้ลูกศรไม่กำกวม "จากอิเล็กตรอนคู่โดดเดี่ยวบนอะตอม 1 ไปยังพันธะที่กำลังเกิดระหว่าง 1 และ 2" วางผิดที่ไม่ได้ แบบที่ "ลูกศรจากออกซิเจนไปยังคาร์บอน" วางผิดได้
- ข้อผิดพลาดนำไปแก้ได้ โมเดลที่ได้รับ
line 3: no atom is tagged :9แก้บรรทัด 3 แล้วลองใหม่ได้ - เรขาคณิตไม่ใช่งานของโมเดล ความโค้ง ช่องว่าง และระยะเว้นถูกกำหนดและตรวจโดยเอนจิน ซึ่งเป็นจุดที่โมเดลอ่อนที่สุด
แชต AI ของ MolDraw ทำงานแบบนี้อยู่แล้ว: ขอ "กลไกของการเติมแบบแอลดอล" แล้วมันจะเขียน MolScript อยู่เบื้องหลัง MolScript ยังถูกจัดเป็นแพ็กเกจAI skill: โฟลเดอร์เดียวที่มีข้อมูลอ้างอิงภาษา กฎที่จับข้อผิดพลาดส่วนใหญ่ ตัวอย่างที่ตรวจแล้ว 41 ตัวอย่าง และตัวตรวจแบบสแตนด์อโลนขนาดเล็ก ขั้นตอนที่สอนผู้ช่วยคือวางแผนสารมัธยันตร์ เขียนสคริปต์ รันตัวตรวจ แก้ทุกปัญหาที่รายงาน แล้วจึงตอบ กลไกจึงถูกตรวจทีละอิเล็กตรอนก่อนที่คุณจะเห็น
เพื่อวัดว่าได้ผลดีเพียงใด มีชุดประเมินของคำขอกลไก 41 รายการ ("show the E1 deprotonation of the tert-butyl cation", "draw a Pd cross-coupling cycle with oxidation states") แต่ละรายการมีสคริปต์อ้างอิง คำตอบได้สี่คะแนน: คอมไพล์ได้ อิเล็กตรอนสมดุล จบที่ผลิตภัณฑ์ที่ถูกต้อง และลูกศรโค้งทุกอันผ่านกฎการวาด สคริปต์อ้างอิงได้คะแนน 100%
แผนงาน: จากฟีเจอร์ของ MolDraw สู่เฟรมเวิร์กแบบเปิด
แผนคือเผยแพร่ MolScript คอมไพเลอร์ และเอนจินแผนภาพและลูกศรเป็นเฟรมเวิร์กโอเพนซอร์สที่แอปพื้นที่วาดใดก็ใช้วาดปฏิกิริยาและกลไกได้ ด้วยความน่าเชื่อถือแบบภาษาโปรแกรม: มีข้อกำหนดเป็นลายลักษณ์อักษร ผลลัพธ์คงที่ และข้อผิดพลาดที่นำไปแก้ได้ ต่อไปนี้คือสิ่งที่อยู่ระหว่างวันนี้กับการเผยแพร่นั้น
ภาษา
| สปีชีส์ ตัวดำเนินการ สภาวะ คำบรรยาย บรรทัดต่อเนื่อง | เสร็จแล้ว |
|---|---|
| ลูกศรสองอิเล็กตรอนและลูกศรหัวเบ็ดจากอิเล็กตรอนคู่โดดเดี่ยว ประจุ เรดิคัล และพันธะ | เสร็จแล้ว |
ข้อกำหนดที่มีเวอร์ชัน (MolScript 1, molscript: 1) พร้อมไวยากรณ์ทางการและชุดทดสอบความสอดคล้อง | เสร็จแล้ว |
สปีชีส์ที่ตั้งชื่อและนำกลับมาใช้ได้: let A = … แล้วใช้ $A ในขั้นถัดไป | เสร็จแล้ว |
คำแนะนำการวางแนว: {rotate=90}, {flip}, {align=3} | เสร็จแล้ว |
สถานะทรานซิชัน ({ts}, พันธะบางส่วนด้วย ~), δ+ / δ−, วงเล็บ | เสร็จแล้ว |
ไฮไลต์ ({highlight=2/3-4:blue}) หมายเลขสารและหมายเลขขั้น (number: both) | เสร็จแล้ว |
| รีเอเจนต์ที่วาดเป็นโครงสร้างเหนือลูกศร คำย่อ (Ph, Ts, Boc) และหมู่ R | เสร็จแล้ว |
| วัฏจักรตัวเร่งที่ปิดวงในตัว พร้อมป้ายที่อ่านง่ายบนทุกส่วนโค้ง | เสร็จแล้ว |
ลูกศรโค้งภายในวัฏจักร พันธะโลหะ–ลิแกนด์ ({dative=1-2}) และเลขออกซิเดชัน ({ox=1:II}) | เสร็จแล้ว |
ความถูกต้อง
| ป้ายมีอยู่จริง จุดเริ่มมีอิเล็กตรอน ลูกศรทุกอันที่วาดผ่านกฎเรขาคณิต | เสร็จแล้ว |
|---|---|
| การนับอิเล็กตรอน: หาผลิตภัณฑ์ที่ลูกศรบ่งชี้แล้วเปรียบเทียบกับผลิตภัณฑ์ที่เขียนไว้ | เสร็จแล้ว |
| สมดุลประจุและอะตอมของแต่ละขั้น การตรวจออกเตต ลูกศรหัวเบ็ดที่ไม่มีคู่ และเรโซแนนซ์ (พันธะ σ) | เสร็จแล้ว |
จัดการไฮโดรเจนได้ง่ายขึ้น: h2 หมายถึงไฮโดรเจนบนอะตอม 2 | เสร็จแล้ว |
ใช้หมายเลขแมปน้อยลง: ธาตุที่มีตัวเดียวในขั้นนั้นก็เพียงพอ (move C-Br -> Br) | เสร็จแล้ว |
การจัดวาง
| แถวจัดเรียงตามความกว้างจริง สภาวะและคำบรรยายไม่ซ้อนกัน | เสร็จแล้ว |
|---|---|
ตัดแถวอย่างสมดุล (3 + 2 ไม่ใช่ 4 + 1) และตัดตามความกว้าง (width:) | เสร็จแล้ว |
ตัวเชื่อมระหว่างแถวที่สั้นลง: wrap: snake ให้แถวถัดไปย้อนกลับพร้อมลูกศรสั้นชี้ลง | เสร็จแล้ว |
การวางแบบตาราง (layout: grid) คอลัมน์ตรงกันทุกแถว | เสร็จแล้ว |
เฟรมเวิร์ก
| คอมไพเลอร์และตัวตรวจเป็นแพ็กเกจแยก ไม่ขึ้นกับแอป MolDraw | เสร็จแล้ว |
|---|---|
| รูปแบบแผนภาพที่คงที่และมีเอกสาร ระหว่างคอมไพเลอร์กับตัวเรนเดอร์ใดก็ได้ | เสร็จแล้ว |
| ผลลัพธ์สำหรับพื้นที่วาด SVG และ PNG ตัวส่งออกสำหรับ chemfig และ JSON | เสร็จแล้ว |
| การส่งออก chemfig ของวัฏจักรตัวเร่งพร้อมส่วนโค้งจริง (และนำเข้ากลับได้) | เสร็จแล้ว |
| เครื่องมือบรรทัดคำสั่ง: ใส่สคริปต์ ได้รายงานการตรวจ ภาพ หรือไฟล์ chemfig ออกมา | เสร็จแล้ว |
| การจัดวางที่มีเวอร์ชัน เพื่อให้สคริปต์วาดออกมาเหมือนเดิมหลังอัปเกรด | เสร็จแล้ว |
| การรองรับในตัวแก้ไข: ไฮไลต์และแสดงปัญหาขณะพิมพ์ (แท็บ MolScript ใน Templates) | เสร็จแล้ว |
| การเติมหมายเลขแมป ตัวเลือก และคีย์เวิร์ดอัตโนมัติในตัวแก้ไข (Tab เลือกรายการแรก) | เสร็จแล้ว |
| แกลเลอรีกลไกอ้างอิงสาธารณะ ที่ตรวจทุกแบบโดยอัตโนมัติ | เสร็จแล้ว |
| แกลเลอรีมีกลไกที่ตรวจแล้ว 41 แบบ จะขยายให้ถึงหลายร้อยแบบ | ถัดไป |
| เผยแพร่แพ็กเกจ skill และข้อกำหนดเป็นโอเพนซอร์ส | ถัดไป |
AI skill
| ใช้โดยแชต AI ของ MolDraw โดยส่งข้อผิดพลาดพร้อมหมายเลขบรรทัดกลับไปให้โมเดล | เสร็จแล้ว |
|---|---|
| skill แบบแพ็กเกจ: ข้อมูลอ้างอิง กฎ ตัวอย่าง และขั้นตรวจสอบที่ผู้ช่วยรันได้ก่อนตอบ | เสร็จแล้ว |
| ชุดประเมินของคำสั่งกลไก 41 รายการ ให้คะแนนตามความถูกต้องทางเคมีและความเรียบร้อยของลูกศร | เสร็จแล้ว |
| เผยแพร่คะแนนของโมเดล AI หลัก ๆ บนชุดประเมิน | ถัดไป |
ถ้าคุณสอน เขียนบทความ หรือพัฒนาซอฟต์แวร์เคมี และต้องการมีส่วนกำหนดทิศทาง บอกเราผ่าน Request feature ใน MolDraw
ลองใช้
- เปิด MolDraw และแชต AI แล้วขอกลไก เช่น "draw the E2 mechanism of 2-bromopropane with hydroxide" แชตจะเขียน MolScript แล้ววาดให้
- หรือเปิด Templates ที่ด้านล่างของแถบเครื่องมือซ้าย แล้วเพิ่มภาพเอสเทอริฟิเคชันแบบ Fischer แอลดอล หรือ Grignard หรือเขียนสคริปต์ของคุณเองในแท็บ MolScript ซึ่งไฮไลต์สคริปต์ แสดงปัญหาขณะพิมพ์ และวาดบนพื้นที่วาด
- ลาก ปรับสไตล์ หรือต่อเติมผลลัพธ์ได้เหมือนภาพวาดทั่วไป แล้วดาวน์โหลดเป็นภาพหรือเป็น chemfig
คำถามและคำตอบ
MolScript คืออะไร
MolScript เป็นภาษาข้อความสั้น ๆ สำหรับแผนภาพปฏิกิริยาและกลไกลูกศรโค้ง สปีชีส์เขียนเป็น SMILES เชื่อมด้วย +, ->, <-> หรือ <=> และลูกศรโค้งแต่ละอันคือบรรทัด move หนึ่งบรรทัดระหว่างหมายเลขแมปอะตอม MolDraw วาดโครงสร้าง สภาวะ อิเล็กตรอนคู่โดดเดี่ยว ประจุ และลูกศร และผลลัพธ์ยังแก้ไขได้บนพื้นที่วาด
วาดลูกศรโค้งใน MolScript อย่างไร
ติดหมายเลขแมปอะตอมให้อะตอมที่ลูกศรแตะใน SMILES เช่น [OH-:1] และ [CH3:2][Br:3] แล้วเขียน move :1 -> 1..2 สำหรับอิเล็กตรอนคู่โดดเดี่ยวของอะตอม 1 ที่สร้างพันธะกับอะตอม 2 และ move 2-3 -> 3 สำหรับพันธะ C–Br ที่แตกออกไปอยู่บนโบรมีน
วาดลูกศรหัวเบ็ด (หนึ่งอิเล็กตรอน) อย่างไร
ใช้ ~> แทน ->: move 1-2 ~> 1 ส่งอิเล็กตรอนหนึ่งตัวของพันธะระหว่างอะตอม 1 และ 2 ไปที่อะตอม 1 ลูกศรหัวเบ็ดสองอันที่สิ้นสุดที่พันธะที่กำลังเกิดเดียวกัน (n..m) จะมาพบกันตรงกลางพันธะนั้น
MolScript ดีกว่า chemfig หรือไม่
ทั้งสองแก้ปัญหาต่างกันและทำงานร่วมกันได้ chemfig เป็นแพ็กเกจ LaTeX ที่คุณวางพันธะและลูกศรทุกอันเองภายในเอกสาร ส่วน MolScript อธิบายเคมีแล้วปล่อยการจัดวางและเรขาคณิตของลูกศรให้ MolDraw ซึ่งตรวจลูกศรทุกอัน ภาพวาด MolScript ใดก็ดาวน์โหลดเป็นโค้ด chemfig สำหรับเอกสาร LaTeX ได้
ผู้ช่วย AI เขียน MolScript ได้ไหม
ได้ แชต AI ของ MolDraw วาดกลไกด้วยการเขียน MolScript เพราะโมเดลภาษาเขียน SMILES ได้ดี และแมปอะตอมทำให้ปลายลูกศรทุกอันไม่กำกวม ข้อผิดพลาดจะส่งกลับพร้อมหมายเลขบรรทัดเพื่อให้โมเดลแก้ไขได้ มีแผนจะทำ AI skill แบบแพ็กเกจเพื่อให้ผู้ช่วยอื่นใช้ได้ด้วย
MolScript จะเป็นโอเพนซอร์สไหม
นั่นคือแผน: ภาษา คอมไพเลอร์ และเอนจินแผนภาพและลูกศรจะเผยแพร่เป็นเฟรมเวิร์กแบบเปิดที่แอปพื้นที่วาดอื่นใช้วาดปฏิกิริยาและกลไกได้ แผนงานระบุสิ่งที่ต้องทำก่อน