MolScript: tekstowy język schematów reakcji i mechanizmów ze strzałkami
Krótka odpowiedź: MolScript to mały język tekstowy do schematów reakcji i mechanizmów z przepływem elektronów. Każdą drobinę zapisujesz jako SMILES, łączysz drobiny za pomocą +, ->, <-> lub <=>, oznaczasz atomy, których dotyka strzałka, numerami mapowania atomów i piszesz jeden wiersz move na każdą strzałkę. MolDraw rysuje struktury, warunki, wolne pary elektronowe, ładunki i każdą strzałkę oraz sprawdza każdą strzałkę pod kątem zasad rysowania, zanim ją zobaczysz. Wynikiem jest zwykła, edytowalna zawartość płótna, którą możesz pobrać jako obraz lub jako kod chemfig do LaTeX.
MolScript w skrócie
| Co piszesz | Drobiny jako SMILES, operatory między nimi, warunki w nawiasach po strzałce i wiersze move dla elektronów. |
|---|---|
| Co otrzymujesz | Rozplanowany schemat: struktury, znaki plus, strzałki reakcji, równowagi lub rezonansu, warunki, podpisy, wolne pary elektronowe, ładunki, kropki rodnikowe i strzałki. |
| Rodzaje strzałek | Strzałki dwuelektronowe (->) i półstrzałki jednoelektronowe (~>), od wolnych par, ładunków, rodników, atomów lub wiązań do atomów, wiązań lub wiązań tworzonych. |
| Sprawdzanie | Każdy numer mapowania musi istnieć i być unikatowy; każda strzałka musi zaczynać się tam, gdzie są elektrony; każda narysowana strzałka jest oceniana pod kątem odstępów, celowania, krzywizny i prześwitu. Problemy wracają z numerami wierszy. |
| Wynik | Edytowalne obiekty płótna MolDraw; każdy eksport MolDraw, w tym chemfig (.tex) do dokumentów LaTeX. |
| Gdzie jest używany dziś | Czat AI w MolDraw rysuje mechanizmy, pisząc MolScript, a z niego zbudowane są rysunki mechanizmów w panelu Templates. |
| Co dalej | Otwarty framework dla aplikacji z płótnem i umiejętność AI, którą może wczytać każdy asystent. Zobacz plan rozwoju. |
Twój pierwszy skrypt: SN2
Jon wodorotlenkowy atakuje bromometan od tyłu, a jon bromkowy odchodzi w tym samym etapie. W MolScript to cztery wiersze:
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
Wiersz po wierszu:
title:umieszcza nagłówek nad schematem.- Wiersz schematu wymienia drobiny.
[OH-:1]to jon wodorotlenkowy, którego tlen ma numer mapowania 1;[CH3:2][Br:3]to bromometan z węglem jako 2 i bromem jako 3."hydroxide"to podpis rysowany pod strukturą.->[SN2][acetone]to strzałka reakcji z tekstem nad nią i pod nią. move :1 -> 1..2: wolna para (tutaj ładunek ujemny) atomu 1 przechodzi do wiązania tworzonego między 1 a 2.move 2-3 -> 3: elektrony istniejącego wiązania C–Br przechodzą na brom.
Numery mapowania to etykiety dla Ciebie i dla strzałek. Nigdy nie są rysowane i nie zmieniają cząsteczki.
Język
Drobiny i operatory
Każdy SMILES jest drobiną. Operatory zapisuje się ze spacją po każdej stronie:
+ | Plus między współreagentami lub współproduktami. Drobiny połączone + zawsze pozostają w jednym rzędzie. |
|---|---|
-> | Strzałka reakcji. |
<=> | Strzałka równowagi (dwie strzałki z półgrotami). |
<-> | Strzałka rezonansu (z dwoma grotami). Używaj jej między strukturami rezonansowymi jednej drobiny. |
=> | Strzałka retrosyntezy. |
Tekst nad strzałką i pod nią umieszcza się w nawiasach kwadratowych dołączonych bezpośrednio do niej: ->[NaBH4][MeOH, 0 °C]. Pozostaw pierwszą parę pustą, jeśli tekst ma być tylko pod spodem: ->[][reflux]. Podpis w cudzysłowie po drobinie jest rysowany pod nią: CC(=O)O "acetic acid".
Kilka etapów
Wiersz zaczynający się od operatora kontynuuje schemat od ostatniej drobiny, więc mechanizm czyta się po jednym etapie na wiersz, ze strzałkami danego etapu tuż pod nim:
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+]
Strzałki: wiersze move
Każdy atom, którego dotyka strzałka, dostaje numer mapowania w SMILES: [OH-:1], [CH3:2][Br:3], [O:4] dla zwykłego atomu tlenu. Numery muszą być unikatowe w całym skrypcie. Następnie:
move <from> -> <to> two-electron curly arrow move <from> ~> <to> one-electron fish-hook
Oba końce zapisuje się w ten sam sposób:
:n | Wolna para atomu n. W anionie strzałka zaczyna się od znaku minus, tak jak rysują ją chemicy. |
|---|---|
n | Atom n. Strzałka rodnika zaczyna się od jego kropki. |
n-m | Istniejące wiązanie między atomami n i m. Jako początek: jego elektrony opuszczają wiązanie; jako koniec: czynią z niego wiązanie podwójne. |
n..m | Wiązanie tworzone między n i m (tylko jako koniec). Grot zatrzymuje się obok atomu m, po stronie zwróconej do n. |
Kilka strzałek może dzielić wiersz, rozdzielonych średnikami: move :1 -> 1..4; 4-2 -> 2-3; 3-5 -> 5. Przenoszony atom wodoru zapisz jawnie, [H:5][O:6]CC, aby strzałka mogła zacząć się od jego wiązania. Zmapowane centrum rodnikowe zapisz z liczbą atomów wodoru, aby zachowało kropkę: CC(C)(C)[OH0:1] to rodnik tert-butoksylowy.
Strzałki są rozmieszczane automatycznie. Jeśli chcesz konkretnego wygięcia, dodaj nadpisanie w nawiasach klamrowych: move 2-3 -> 3 {bow=0.3 side=left}.
Dyrektywy i komentarze
title: … | Nagłówek nad schematem. |
|---|---|
per-row: 2 do 8 | Liczba struktur w rzędzie, zanim schemat się złamie (domyślnie 4). |
layout: row, cycle, branch | Kształt schematu: od lewej do prawej, cykl katalityczny lub jeden substrat i kilka produktów. |
# … | Komentarz do końca wiersza. # wewnątrz SMILES (wiązanie potrójne) nie jest komentarzem. |
Błędy
Problemy wracają z numerem wiersza, w którym występują, opisane prostymi słowami, aby człowiek lub asystent AI mógł poprawić wiersz i narysować ponownie:
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
Mniej pisania, więcej rysowania: nazwy, wyróżnienia i numery
Numery mapowania są potrzebne tylko wtedy, gdy atom jest niejednoznaczny. Pierwiastek występujący raz wśród substratów danego etapu sam się nazywa, a w końcu typu wiązanie liczą się tylko atomy związane z drugim końcem. Oto cały mechanizm SN1 bez numerów mapowania, z ponumerowanymi związkami i etapami oraz rzędami biegnącymi tam i z powrotem:
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 to jedyny atom węgla związany z bromem, C+ wybiera kation po ładunku, a :O to wolna para jedynego atomu tlenu w tym etapie. Jeśli pierwiastek występuje dwa razy, MolScript to zgłasza i prosi o numer mapowania.
h2 | Atom wodoru przy atomie 2, dodany jawnie za Ciebie: move :1 -> 1..h2; h2-2 -> 2-3. |
|---|---|
let base = [OH-:1] "hydroxide" | Zdefiniuj drobinę raz, a potem pisz $base. |
[OH]~C([H])([H])([H])~[Br] {ts} | Stan przejściowy: ~ to wiązanie częściowe (kropkowane), a {ts} rysuje nawiasy z ‡ i prostuje wiązania tworzone i zrywane. |
{δ+=2 δ-=3} | Ładunki cząstkowe obok atomów. |
{highlight=2/3-4:blue} | Wypełnienie zakreślaczem atomu 2 i wiązania 3–4. |
{ox=1:II}, {dative=1-2} | Stopnie utlenienia i wiązania metal–ligand dla etapów metaloorganicznych. |
[Ph] [R1] [Nu-:1] | Skróty i grupy R rysowane jako etykiety. |
->[{CC(=O)Cl}][AlCl3] | Reagent narysowany jako struktura nad strzałką. |
layout: cycle | Cykl katalityczny; zakończenie na pierwszej drobinie zamyka pętlę, a eksport do chemfig daje prawdziwe łuki. |
Jak skrypt staje się rysunkiem
Skrypt za każdym razem przechodzi przez te same kroki, więc ten sam skrypt zawsze daje ten sam rysunek:
- Odczyt. Skrypt jest dzielony na wiersze schematu, wiersze move i dyrektywy. Każda drobina, operator, podpis i zestaw warunków jest zapisywany z numerem wiersza.
- Sprawdzenie etykiet. Każdy numer mapowania użyty w move musi być na dokładnie jednym atomie, każde
n-mmusi być prawdziwym wiązaniem, a każdy początek musi mieć elektrony do oddania: wolną parę, ładunek, rodnik lub wiązanie. - Rysowanie drobin. Każdy SMILES staje się strukturą 2D z czystymi kątami wiązań. Jawne atomy wodoru potrzebne strzałce są rysowane jako atomy; ładunki, wolne pary i kropki rodnikowe są dodawane tam, gdzie wskazuje SMILES.
- Rozplanowanie schematu. Struktury, znaki plus i strzałki są układane według rzeczywistych szerokości, rzędy łamią się na strzałkach reakcji, a warunki i podpisy są rozmieszczone tak, aby tekst się nie nakładał.
- Rozmieszczenie strzałek. Każda strzałka wychodzi ze źródła tam, gdzie narysowałby ją chemik, i wygina się z dala od wiązań, etykiet i innych strzałek (szczegóły poniżej).
- Sprawdzenie chemii. Każdy etap ze strzałkami jest odtwarzany na elektronach: każda strzałka zabiera dwa elektrony (jeden dla półstrzałki) z wolnej pary, rodnika lub wiązania i umieszcza je na atomie lub w wiązaniu. Powstałe struktury muszą zgadzać się z zapisanymi po strzałce. Zły produkt (z różnicą atomów i ładunku), atom węgla z dziesięcioma elektronami, strzałka od atomu, któremu nie zostały elektrony, niesparowana półstrzałka lub strzałka rezonansu zrywająca wiązanie σ są zgłaszane z numerem wiersza.
- Ocena każdej strzałki. Każda rozmieszczona strzałka jest mierzona względem zasad. Strzałka, która w zatłoczonym miejscu nie mogła ich spełnić, jest nadal rysowana i zgłaszana jako ostrzeżenie.
- Przekazanie edytowalnych obiektów. Wynik to zwykła zawartość płótna: przeciągnij strukturę, a jej strzałki podążą za nią, zmieniaj styl czegokolwiek i eksportuj.
Zasady rysowania strzałek stosowane przez MolScript:
| Ogon | Na wolnej parze lub znaku minus, kropce rodnikowej lub w środku wiązania oddającego elektrony, nigdy na etykiecie atomu. |
|---|---|
| Grot | Tuż przed atomem przyjmującym elektrony lub w przerwie tworzonego wiązania, po stronie zwróconej do atomu atakującego. |
| Krzywizna | Wygięta na zewnątrz struktury, ze stałym kątem grotu; półstrzałki mają pojedynczy zadzior po zewnętrznej stronie łuku. |
| Prześwit | Z dala od wiązań, etykiet, ładunków, kropek i innych strzałek; strzałki o wspólnym celu rozchodzą się wachlarzem zamiast się nakładać. |
| Długość | Zbyt krótka, by ją odczytać, lub zbyt długa, by za nią podążać – jest oznaczana. |
Każdy mechanizm referencyjny z zestawu testowego MolScript jest rysowany i oceniany według tych zasad przy każdej zmianie MolDraw. Obecnie to 41 mechanizmów z 81 strzałkami, które przechodzą zarówno zasady rysowania, jak i bilans elektronów, a także rysunki z Templates. Każdy z nich zobaczysz w galerii MolScript.
Rozwiązane przykłady
Eliminacja E2: trzy strzałki w jednym etapie
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
Addycja Michaela: łańcuch strzałek przez układ sprzężony
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 przesuwa elektrony π wiązania C=C do wiązania C–C, czyniąc je podwójnym.Diels–Alder: strzałki w pierścieniu
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
Addycja rodnikowa: półstrzałki
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
~> rysuje półstrzałkę. Dwie kończące się na 1..2 spotykają się w środku nowego wiązania.Rezonans: enolan
[CH2-:1][C:2](C)=[O:3] <-> C=C(C)[O-] move :1 -> 1-2 move 2-3 -> 3
<-> to strzałka rezonansu; strzałki zakrzywione pokazują, jak jedna struktura przechodzi w drugą.Zbudowane na MolScript: całe rysunki
Rysunki mechanizmów w panelu Templates w MolDraw (przycisk na dole lewego paska narzędzi) są napisane w MolScript. Każdy etap estryfikacji Fischera, addycji aldolowej i addycji Grignarda to krótki skrypt; szablon dodaje wokół nich panele, etykiety etapów, kółka wyróżnień i uwagi. Ponieważ etapy są tekstem, każda strzałka na każdym rysunku jest sprawdzana tak samo jak w powyższych przykładach.
MolScript i chemfig
chemfig to pakiet LaTeX, którego większość chemików używa do składu struktur i mechanizmów. Jest znakomity w tym, do czego służy, a MolScript nie ma go zastępować wewnątrz LaTeX. Oba opisują różne rzeczy:
| chemfig | MolScript | |
| Co opisujesz | Rysunek: kąt i długość każdego wiązania, a potem zaczepienie, przesunięcie i wygięcie każdej strzałki. | Chemię: drobiny jako SMILES i to, które elektrony gdzie się przemieszczają. |
| Układ | Ręcznie, dla każdej struktury i każdego schematu. | Automatycznie: struktury, rzędy, warunki i podpisy. |
| Zakrzywione strzałki | Ścieżki TikZ między nazwanymi punktami; położenia są ustalane w drugim przebiegu LaTeX. | Jeden wiersz move między numerami mapowania; rozmieszczany i oceniany według zasad rysowania. |
| Błędy | Ujawniają się jako źle wyglądający PDF. | Zgłaszane z numerami wierszy: brakujący numer mapowania, początek bez elektronów, nieistniejące wiązanie. |
| Wynik | Złożony tekst w dokumencie. | Edytowalne obiekty płótna oraz eksport do obrazu, grafiki wektorowej i chemfig. |
| Najlepszy do | Precyzyjna kontrola typograficzna w dokumencie LaTeX. | Szybkie uzyskanie poprawnego, czystego mechanizmu – ręcznie lub od asystenta AI. |
Współpracują ze sobą: rysuj w MolScript, a potem wybierz Download → chemfig (.tex), aby otrzymać kod chemfig do dokumentu. Przykładowe mechanizmy w chemfig pokazują, jak wygląda ten kod.
Dlaczego tekst: MolScript i asystenci AI
MolScript zaprojektowano tak, aby model językowy mógł narysować mechanizm bez jakiegokolwiek operowania współrzędnymi:
- Modele już dobrze piszą SMILES, więc każda drobina jest w znanej im notacji.
- Mapowanie atomów czyni strzałki jednoznacznymi. „Od wolnej pary atomu 1 do wiązania tworzonego między 1 a 2” nie da się źle umieścić, tak jak można źle umieścić „strzałkę od tlenu do węgla”.
- Błędy wskazują, co zrobić. Model, który dostanie
line 3: no atom is tagged :9, może poprawić wiersz 3 i spróbować ponownie. - Geometria nie jest zadaniem modelu. O wygięciach, odstępach i prześwitach decyduje i sprawdza je silnik – a to właśnie tu modele są najsłabsze.
Czat AI w MolDraw już tak działa: poproś go o „mechanizm addycji aldolowej”, a w tle napisze MolScript. MolScript jest też spakowany jako umiejętność AI (skill): jeden folder z dokumentacją języka, zasadami wyłapującymi większość błędów, 41 sprawdzonymi przykładami i małym samodzielnym narzędziem sprawdzającym. Uczy ona asystenta takiego sposobu pracy: zaplanować produkty pośrednie, napisać skrypt, uruchomić sprawdzanie, poprawić każdy zgłoszony problem i dopiero wtedy odpowiedzieć, dzięki czemu mechanizm jest sprawdzony elektron po elektronie, zanim go zobaczysz.
Aby zmierzyć, jak dobrze to działa, istnieje zestaw ewaluacyjny 41 próśb o mechanizmy („pokaż deprotonację kationu tert-butylowego w E1”, „narysuj cykl sprzęgania krzyżowego Pd ze stopniami utlenienia”), każda ze skryptem referencyjnym. Odpowiedź zdobywa cztery punkty: kompiluje się, bilans elektronów się zgadza, kończy się na właściwych produktach, a każda strzałka spełnia zasady rysowania. Skrypty referencyjne uzyskują 100%.
Plan rozwoju: od funkcji MolDraw do otwartego frameworka
Planujemy udostępnić MolScript, jego kompilator oraz silnik schematów i strzałek jako framework open source, którego każda aplikacja z płótnem będzie mogła używać do rysowania reakcji i mechanizmów, z niezawodnością języka programowania: spisaną specyfikacją, stabilnym wynikiem i błędami, na które można zareagować. Oto, co dzieli nas dziś od tego wydania.
Język
| Drobiny, operatory, warunki, podpisy, wiersze kontynuacji | Gotowe |
|---|---|
| Strzałki dwuelektronowe i półstrzałki od wolnych par, ładunków, rodników i wiązań | Gotowe |
Wersjonowana specyfikacja (MolScript 1, molscript: 1) z formalną gramatyką i zestawem testów zgodności | Gotowe |
Nazwane drobiny wielokrotnego użytku: let A = …, a potem $A w kolejnych etapach | Gotowe |
Wskazówki orientacji: {rotate=90}, {flip}, {align=3} | Gotowe |
Stany przejściowe ({ts}, wiązania częściowe z ~), δ+ / δ−, nawiasy | Gotowe |
Wyróżnienia ({highlight=2/3-4:blue}), numery związków i etapów (number: both) | Gotowe |
| Reagenty rysowane jako struktury nad strzałką; skróty (Ph, Ts, Boc) i grupy R | Gotowe |
| Cykle katalityczne zamykające się same w sobie, z czytelnymi etykietami na każdym łuku | Gotowe |
Strzałki wewnątrz cykli, wiązania metal–ligand ({dative=1-2}) i stopnie utlenienia ({ox=1:II}) | Gotowe |
Rzetelność
| Etykiety istnieją, początki mają elektrony, każda narysowana strzałka spełnia zasady geometrii | Gotowe |
|---|---|
| Bilans elektronów: wyznaczenie produktu wynikającego ze strzałek i porównanie go z zapisanym produktem | Gotowe |
| Bilans ładunku i atomów dla każdego etapu; kontrola oktetu, niesparowanych półstrzałek i rezonansu (wiązanie σ) | Gotowe |
Mniej ceregieli z atomami wodoru: h2 nazywa atom wodoru przy atomie 2 | Gotowe |
Mniej numerów mapowania: wystarczy pierwiastek unikatowy w danym etapie (move C-Br -> Br) | Gotowe |
Układ
| Rzędy układane według rzeczywistych szerokości; warunki i podpisy nigdy się nie nakładają | Gotowe |
|---|---|
Zrównoważone łamanie rzędów (3 + 2, a nie 4 + 1) i łamanie według szerokości (width:) | Gotowe |
Krótsze łączniki między rzędami: wrap: snake prowadzi następny rząd z powrotem z krótką strzałką w dół | Gotowe |
Rozmieszczenie w siatce (layout: grid), kolumny wyrównane między rzędami | Gotowe |
Framework
| Kompilator i narzędzie sprawdzające jako samodzielny pakiet, niezależny od aplikacji MolDraw | Gotowe |
|---|---|
| Stabilny, udokumentowany format schematów między kompilatorem a dowolnym rendererem | Gotowe |
| Wyjście na płótno, do SVG i PNG; eksportery do chemfig i JSON | Gotowe |
| Eksport cykli katalitycznych do chemfig z prawdziwymi łukami (i import z powrotem) | Gotowe |
| Narzędzie wiersza poleceń: na wejściu skrypt, na wyjściu raport ze sprawdzenia, obraz lub plik chemfig | Gotowe |
| Wersjonowany układ, aby skrypt rysował się tak samo po aktualizacji | Gotowe |
| Obsługa w edytorze: podświetlanie i problemy na bieżąco podczas pisania (karta MolScript w Templates) | Gotowe |
| Uzupełnianie numerów mapowania, opcji i słów kluczowych w edytorze (Tab wybiera pierwszą podpowiedź) | Gotowe |
| Publiczna galeria mechanizmów referencyjnych, każdy sprawdzany automatycznie | Gotowe |
| Galeria liczy 41 sprawdzonych mechanizmów; rozbudowa do setek | Dalej |
| Udostępnienie pakietu, umiejętności AI i specyfikacji jako open source | Dalej |
Umiejętność AI
| Używana przez czat AI w MolDraw, z błędami z numerami wierszy przekazywanymi z powrotem do modelu | Gotowe |
|---|---|
| Spakowana umiejętność: dokumentacja, zasady, rozwiązane przykłady i krok sprawdzania, który asystent może uruchomić przed odpowiedzią | Gotowe |
| Zestaw ewaluacyjny 41 poleceń dotyczących mechanizmów, oceniany pod kątem poprawnej chemii i czystych strzałek | Gotowe |
| Publikacja wyników głównych modeli AI na zestawie ewaluacyjnym | Dalej |
Jeśli uczysz, piszesz artykuły lub tworzysz oprogramowanie chemiczne i chcesz mieć na to wpływ, napisz do nas przez Request feature w MolDraw.
Wypróbuj
- Otwórz MolDraw i czat AI, a następnie poproś o mechanizm, np. „narysuj mechanizm E2 dla 2-bromopropanu z jonem wodorotlenkowym”. Czat napisze MolScript i go narysuje.
- Możesz też otworzyć Templates na dole lewego paska narzędzi i dodać rysunek estryfikacji Fischera, addycji aldolowej lub Grignarda albo napisać własny skrypt w karcie MolScript: podświetla skrypt, pokazuje problemy podczas pisania i rysuje go na płótnie.
- Przeciągaj, zmieniaj styl lub rozbudowuj wynik jak każdy rysunek, a potem pobierz go jako obraz lub jako chemfig.
Pytania i odpowiedzi
Czym jest MolScript?
MolScript to krótki język tekstowy do schematów reakcji i mechanizmów ze strzałkami. Drobiny zapisuje się jako SMILES, połączone przez +, ->, <-> lub <=>, a każda strzałka to jeden wiersz move między numerami mapowania atomów. MolDraw rysuje struktury, warunki, wolne pary elektronowe, ładunki i strzałki, a wynik pozostaje edytowalny na płótnie.
Jak narysować strzałkę w MolScript?
Oznacz atomy, których dotyka strzałka, numerami mapowania w SMILES, np. [OH-:1] i [CH3:2][Br:3], a następnie napisz move :1 -> 1..2 dla wolnej pary atomu 1 tworzącej wiązanie z atomem 2 oraz move 2-3 -> 3 dla wiązania C–Br rozpadającego się na brom.
Jak narysować półstrzałkę (jednoelektronową)?
Użyj ~> zamiast ->: move 1-2 ~> 1 przesyła jeden elektron wiązania między atomami 1 i 2 na atom 1. Dwie półstrzałki kończące się na tym samym tworzonym wiązaniu (n..m) spotykają się w jego środku.
Czy MolScript jest lepszy od chemfig?
Rozwiązują różne problemy i współpracują ze sobą. chemfig to pakiet LaTeX, w którym każde wiązanie i każdą strzałkę umieszczasz w dokumencie samodzielnie. MolScript opisuje chemię, a układ i geometrię strzałek pozostawia MolDraw, który sprawdza każdą strzałkę. Każdy rysunek MolScript można pobrać jako kod chemfig do dokumentu LaTeX.
Czy asystenci AI potrafią pisać w MolScript?
Tak. Czat AI w MolDraw rysuje mechanizmy, pisząc MolScript, bo modele językowe dobrze piszą SMILES, a mapowanie atomów sprawia, że każdy koniec strzałki jest jednoznaczny. Błędy wracają z numerami wierszy, więc model może je poprawić. Planowana jest spakowana umiejętność AI (skill), z której będą mogli korzystać także inni asystenci.
Czy MolScript będzie open source?
Taki jest plan: język, kompilator oraz silnik schematów i strzałek mają zostać udostępnione jako otwarty framework, którego inne aplikacje z płótnem będą mogły używać do rysowania reakcji i mechanizmów. Plan rozwoju wymienia, co trzeba zrobić najpierw.