Jednostka 2 / 11

Reprezentacja molekularna i struktura chemiczna: walidacja za pomocą SMILES, InChI i RDKit

Zyski:

  • Możliwość identyfikacji cząsteczek nie po nazwie, ale poprzez reprezentację struktury (SMILES z ludźmi, InChI/InChIKey z bazą danych)
  • Możliwość wykrywania nieprawidłowych lub niepoprawnych struktur poprzez analizowanie, sprawdzanie poprawności i kanonizację każdego UŚMIECHU wysyłanego przez sztuczną inteligencję za pomocą RDKit
  • Umiejętność zrozumienia, że wielkości deterministyczne, takie jak masa cząsteczkowa i wzór, należy uzyskać z narzędzia opartego na regułach, a nie z modelu językowego.

Pierwszym warunkiem bezpiecznego stosowania sztucznej inteligencji w chemii jest zapisanie cząsteczki w języku zrozumiałym zarówno dla maszyny, jak i człowieka. Mówisz „fenol”, AI dobrze to rozumie; ale kiedy mówisz „kwas”, istnieją tysiące możliwości. Nazwy są niejednoznaczne; reprezentacje struktur są dokładne. W tym module poznamy dwie podstawowe notacje tłumaczące cząsteczkę na tekst (SMILES i InChI) oraz narzędzie weryfikujące je deterministycznie (RDKit). Nasz cel: przekazać AI cząsteczkę w sposób, którego ona nigdy nie zrozumie źle i potwierdzić za pomocą narzędzia strukturę wytworzoną przez AI.

Co to jest SMILES?

SMILES (Simplified Molecular-Input Line-Entry System) to format zapisywania cząsteczki w jednym wierszu tekstu. Atomy są reprezentowane przez litery, wiązania przez symbole, a pierścienie przez liczby. Przykłady:

  • Etanol: CCO (węgiel – węgiel – tlen; domyślnie wodory).
  • Benzen: c1ccccc1 (małe „c” oznacza węgiel aromatyczny; jedynki zamykają pierścień).
  • Aspiryna: CC(=O)Oc1ccccc1C(=O)O.
  • Kofeina: Cn1cnc2c1c(=O)n(C)c(=O)n2C.

Siła SMILES polega na tym, że przenosi całą strukturę łącza w jednej linii; Jego słabością jest to, że ta sama cząsteczka może mieć wiele ważnych UŚMIECHÓW (nazywa się to niekanonicznością). Za chwilę rozwiążemy ten problem za pomocą RDKit.

Wskazówka: „kanoniczny UŚMIECH” oznaczający cząsteczkę to pojedyncza, standardowa pisownia tej cząsteczki. Aby sprawdzić, czy dwa SMILESy to ta sama cząsteczka, dokonaj ich kanonizacji i porównaj; Nie powinny być równe pod względem tekstowym, ale powinny być równymi cząsteczkami.

Co to jest InChI?

InChI (International Chemical Identifier) ​​to standardowy identyfikator opracowany przez IUPAC. Różnica od SMILES polega na tym, że ta sama cząsteczka zawsze daje ten sam InChI; to znaczy ma charakter kanoniczny. Jest długi i trudny do odczytania, ale idealnie nadaje się do dopasowywania baz danych. Do wyszukiwania używany jest skrót „InChIKey” (27-znakowy skrót).

  • Aspiryna InChIKey: BSYNRYMUTXBXSQ-UHFFFAOYSA-N.

Reguła: Ludzie mówią SMILES (czytaj), maszyny i bazy danych odpowiadają InChI/InChIKey (dokładnie). Daj UŚMIECH dla AI; Potwierdź w bazie danych za pomocą InChIKey.

RDKit: deterministyczny silnik weryfikacji

RDKit to biblioteka chemiinformatyczna typu open source. W przeciwieństwie do modelu językowego, jest on oparty na regułach: analizuje SMILES, oblicza masę cząsteczkową, generuje kanoniczne SMILES, zwraca InChI/InChIKey, rysuje cząsteczkę. Zatem RDKit „oblicza” to, co „przewiduje” sztuczna inteligencja. To jest serce przepływu pracy: AI generuje, RDKit weryfikuje.

Podstawowy proces weryfikacji:

z rdkit import Chemfrom rdkit.Chem import Descriptors, Drawsmiles = "CC(=O)Oc1ccccc1C(=O)O" Chem.MolToSmiles(mol)) print("Wzór cząsteczkowy:", Chem.rdMolDescriptors.CalcMolFormula(mol)) print("Masa cząsteczkowa:", round(Descriptors.MolWt(mol), 2), "g/mol") print("InChIKey:", Chem.MolToInchiKey(mol))

Jeśli MolFromSmiles zwróci None, sztuczna inteligencja podała ci nieprawidłową cząsteczkę; Już samo to jest bardzo cennym ostrzeżeniem. Jeśli jest to prawidłowe, nie trzeba już pytać modelu językowego o masę cząsteczkową; Deterministycznie jest to w twoich rękach.

Krok po kroku: współpraca AI + RDKit

  1. Zidentyfikuj cząsteczkę: nadaj AI nazwę, poproś o UŚMIECH. Na przykład „zweryfikuj kanoniczne SMILES pod kątem paracetamolu”.
  2. Sprawdź: Analizuj przychodzące SMILES za pomocą MolFromSmiles. Jeśli Brak, odrzuć.
  3. Canonicalize: odzyskaj pisownię kanoniczną za pomocą MolToSmiles; Odtąd zawsze używaj tego.
  4. Oblicz liczby: Uzyskaj masę cząsteczkową, wzór, liczbę pierścieni, liczbę donorów/akceptorów wiązań wodorowych itp. z RDKit, a nie z AI.
  5. Identyfikator poprawki: Wygeneruj InChIKey, wyszukaj w bazie danych (PubChem), potwierdź, że cząsteczka rzeczywiście jest tym związkiem, którego szukasz.

Cztery szablony do kopiowania

1) Prośba o UŚMIECH (od rzeczownika do struktury):

Zadanie: Podaj kanoniczne UŚMIECHI dla następującego związku. Związek: paracetamol (acetaminofen). Reguła: Podaj tylko ciąg SMILES i InChIKey, nie dodawaj żadnych dalszych wyjaśnień. Jeśli nie jesteś pewien, napisz „NIEPEWNY”, nie wymyślaj.

2) Prośba o zatwierdzenie SMILES (od struktury do kontroli):

Przeanalizuj poniższe SMILES: CC(=O)Nc1ccc(O)cc1Pytania:1) Czy to prawidłowy SMILES?2) Jakiemu związkowi odpowiada (nazwa zwyczajowa)?3) Jaki jest wzór cząsteczkowy?Uwaga: Dokładną masę cząsteczkową obliczę za pomocą RDKit; Po prostu podajesz interpretację swojej struktury.

3) Porównanie dwóch reprezentacji:

Mam dwa UŚMIECHI:A) OCCB) CCOTask: Czy to ta sama cząsteczka czy różne? Napisz swoje uzasadnienie. Uwaga: sprawdzę Twoją odpowiedź, kanonizując ją w RDKit.

4) Wyjaśnienie struktury (w celach edukacyjnych):

SMILES: Cn1cnc2c1c(=O)n(C)c(=O)n2CTask: Przeczytaj kawałek po kawałku ten SMILES i wyjaśnij, co oznacza każdy symbol (atom, wiązanie, pierścień, aromatyczność) w prostym języku tureckim. Powiedz też, jaki to związek.

Słaba zachęta/silna zachęta

Słabe:

Podaj właściwości acetaminofenu.

„Funkcja” jest niejasna; Sztuczna inteligencja generuje losowe liczby od masy cząsteczkowej do temperatury topnienia, a niektóre z nich będą błędne.

Mocny:

Związek: acetaminofen.1) Canonical SMILES i InChIKey ver.2) Podaj wzór cząsteczkowy.Zasada: NIE PODAJ wartości NUMERYCZNYCH takich jak masa cząsteczkowa, temperatura topnienia itp.; Dostanę je za pomocą RDKit/PubChem. Wystarczy podać identyfikator kompilacji.

Różnica: Skierowaliśmy sztuczną inteligencję w stronę tego, w czym jest silna (tożsamość struktury), a z dala od tego, w czym jest słaba (liczby eksperymentalne).

Porównanie wrażeń

funkcja

UŚMIECHA SIĘ

InChI / InChIKey

Czytelność

Wysoki (przyjazny ludziom)

Niski (przyjazny dla maszyny)

kanoniczność

Zastrzega się możliwość zmian (wymaga kanonizacji)

naturalnie singiel

Użycie

komunikacja międzyludzka, rysunek, wkład

Dopasowanie bazy danych, tożsamość

stereochemia

Podpory (@ symbole)

Podpory (warstwowe)

dać AI

idealny

Idealny do potwierdzenia

mini etui

Przypadek 1 — Dwie nazwy, jedna cząsteczka. Uczeń pomyślał, że „N-acetylo-para-aminofenol” i „paracetamol” to różne związki i zaplanował dwa oddzielne eksperymenty. Po kanonizacji ich SMILES w RDKit okazało się, że obaj to CC(=O)Nc1ccc(O)cc1; To była ta sama cząsteczka. Stracone: pół dnia planowania; zysk: można było tego uniknąć dzięki 2-minutowej kontroli kanonizacji.

Przypadek 2 — Nieprawidłowe przechwytywanie UŚMIECHÓW. Sztuczna inteligencja zwróciła CC(=O)Nc1ccc(O)cc1C( dla wariantu (nawiasy niezamknięte). Uczeń uruchomił MolFromSmiles, zwrócił None, natychmiast zauważył błąd i zażądał poprawienia SMILES. Bez weryfikacji wadliwa struktura rozprzestrzeniłaby się na wszystkie konta.

Przypadek 3 — Nieprawidłowa masa cząsteczkowa. YZ stwierdził, że „masa cząsteczkowa 214,3 g/mol” dla ibuprofenu (C13H18O2). Obliczenia RDKit dały 206,28 g/mol. Różnica dla 0,1 mola: 21,43 g dla YZ, a właściwie 20,63 g. Ta różnica wynosząca 3,9% zakłóciłaby stechiometrię i obliczenia wydajności. Przyniósł rachunek deterministyczny.

Typowe błędy

  • Nadanie cząsteczce nazwy. Synonimy/nazwy handlowe są mylone. Zawsze uwzględniaj SMILES lub InChI.
  • Porównywanie SMILES bez kanonizacji. OCC i CCO różnią się tekstem, ale są takie same w cząsteczkach.
  • Zapytanie masy cząsteczkowej o model języka. Jest to obliczenie deterministyczne; Robi się to z RDKit lub ręcznie z formuły.
  • Nie zauważanie nieprawidłowych UŚMIECHÓW. Nie sprawdzanie zwrotu MolFromSmiles None i kontynuowanie pracy z niewłaściwą strukturą.
  • Zaniedbanie stereochemii. Te dwa enancjomery (izomery w lustrzanym odbiciu) mogą wykazywać różne skutki biologiczne; Pomijanie znaków @/@@ w UŚMIECHACH.
Uwaga: Ten sam wzór cząsteczkowy nie oznacza różnych cząsteczek. C2H6O to zarówno etanol (CCO), jak i eter dimetylowy (COC). Równość formuły nie jest równością tożsamości; Do identyfikacji użyj InChIKey.

Podsumowując

  • Identyfikuj cząsteczki według zapisu struktury, a nie nazwy: SMILES z człowiekiem, InChI/InChIKey z bazą danych.
  • RDKit jest deterministyczny; AI przewiduje, RDKit oblicza i weryfikuje.
  • Przeanalizuj każdy AI SMILES za pomocą MolFromSmiles i sprawdź Brak, a następnie dokonaj kanonizacji.
  • Uzyskaj liczby takie jak masa cząsteczkowa i wzór z RDKit, a nie z modelu językowego.
  • Równość formuły nie oznacza tożsamości molekularnej; Do identyfikacji użyj InChIKey.

Zadanie aplikacji

Wybierz trzy związki (np. kofeina, ibuprofen, glicyna). Poproś AI o kanoniczne UŚMIECHI dla każdego. Następnie napisz skrypt RDKit (użyj szablonu powyżej) i wygeneruj: kanoniczny SMILES, wzór cząsteczkowy, masę cząsteczkową, InChIKey. Ile UŚMIECHÓW podanych przez sztuczną inteligencję było ważnych? Jeśli YZ podał również masę cząsteczkową, oblicz różnicę jako procent z wartością RDKit. Zapisz swoje ustalenia na małym stoliku.

lista kontrolna

  • [ ] Wiem, czym są SMILES i InChI/InChIKey i kiedy ich używać.
  • [ ] Weryfikuję każdy SMILES podany przez AI za pomocą MolFromSmiles.
  • [ ] Kanonizuję UŚMIECHI przed ich porównaniem.
  • [ ] Masę cząsteczkową i wzór otrzymuję z RDKit, a nie z modelu językowego.
  • [ ] Potwierdzam tożsamość cząsteczki w bazie danych za pomocą InChIKey.
  • [ ] Znam sytuacje, w których ważna jest stereochemia.