Μονάδες
1. Εισαγωγή στην Τεχνητή Νοημοσύνη στη Χημεία: Ρόλοι, Όρια, Επικύρωση και Ηθική 2. Μοριακή αναπαράσταση και χημική δομή: Επικύρωση με SMILES, InChI και RDKit 3. Πρόβλεψη και μηχανισμός αντίδρασης: Πρόβλεψη προϊόντος, κατάστασης και ανεπιθύμητων αντιδράσεων 4. Υποστήριξη ερμηνείας φάσματος: NMR, IR και Φασματομετρία Μάζας 5. Ανασκόπηση βιβλιογραφίας και σχεδιασμός σύνθεσης: Πηγή, Διαδικασία και Οδικός Χάρτης 6. Ανάλυση χημικών δεδομένων και Python: pandas, στοιχειομετρία και βαθμονόμηση 7. Molecular Property Prediction και QSAR: Resolution, pKa και Model Limits 8. Εργαστηριακή Τεκμηρίωση: Σημειωματάριο Πειράματος, ELN και Αναπαραγωγιμότητα 9. Αξιολόγηση ασφάλειας και επικινδυνότητας: GHS, SDS και τα όρια της τεχνητής νοημοσύνης 10. Επιβεβαίωση, ψευδαίσθηση και επιστημονική ακεραιότητα 11. Άνθρωπος στον Πειραματισμό: Ηθική, Ιδιωτικό Απόρρητο, Υπευθυνότητα και Ροή εργασιών από άκρο σε άκρο
Μονάδα 2 / 11

Μοριακή αναπαράσταση και χημική δομή: Επικύρωση με SMILES, InChI και RDKit

Κέρδη:

  • Δυνατότητα αναγνώρισης μορίων όχι με το όνομα αλλά με αναπαράσταση δομής (SMILES με ανθρώπους, InChI/InChIKey με βάση δεδομένων)
  • Δυνατότητα ανίχνευσης μη έγκυρων ή εσφαλμένων δομών με ανάλυση, επικύρωση και κανονικοποίηση κάθε SMILES που δίνεται από την τεχνητή νοημοσύνη με το RDKit
  • Να είστε σε θέση να κατανοήσετε ότι ντετερμινιστικές ποσότητες όπως το μοριακό βάρος και ο τύπος πρέπει να λαμβάνονται από το εργαλείο που βασίζεται σε κανόνες και όχι από το γλωσσικό μοντέλο.

Η πρώτη προϋπόθεση για την ασφαλή χρήση της τεχνητής νοημοσύνης στη χημεία είναι να γράψετε το μόριο σε μια γλώσσα που τόσο η μηχανή όσο και ο άνθρωπος μπορούν να κατανοήσουν. Λες "φαινόλη", η τεχνητή νοημοσύνη το καταλαβαίνει σωστά. αλλά όταν λες «οξύ» υπάρχουν χιλιάδες πιθανότητες. Τα ονόματα είναι διφορούμενα. Οι αναπαραστάσεις της δομής είναι ακριβείς. Σε αυτή την ενότητα, θα μάθουμε τις δύο βασικές σημειώσεις που μεταφράζουν το μόριο σε κείμενο (SMILES και InChI) και το εργαλείο που τις επαληθεύει ντετερμινιστικά (RDKit). Στόχος μας: να δώσουμε το μόριο στην τεχνητή νοημοσύνη με τρόπο που δεν θα παρεξηγηθεί ποτέ και να επιβεβαιώσουμε τη δομή που παράγει η τεχνητή νοημοσύνη με ένα εργαλείο.

Τι είναι το SMILES;

Το SMILES (Simplified Molecular-Input Line-Entry System) είναι μια μορφή γραφής ενός μορίου σε μία γραμμή κειμένου. Τα άτομα αντιπροσωπεύονται με γράμματα, οι δεσμοί με σύμβολα και οι δακτύλιοι με αριθμούς. Παραδείγματα:

  • Αιθανόλη: CCO (άνθρακας-άνθρακας-οξυγόνο, σιωπηρά υδρογόνα).
  • Βενζόλιο: c1cccccc1 (το πεζό "c" υποδηλώνει αρωματικό άνθρακα, το 1 κλείνει τον δακτύλιο).
  • Ασπιρίνη: CC(=O)Oc1ccccc1C(=O)O.
  • Καφεΐνη: Cn1cnc2c1c(=O)n(C)c(=O)n2C.

Η δύναμη του SMILES είναι ότι μεταφέρει ολόκληρη τη δομή του συνδέσμου σε μία μόνο γραμμή. Η αδυναμία του είναι ότι το ίδιο μόριο μπορεί να έχει πολλαπλά έγκυρα ΧΑΜΟΓΕΛΑ (αυτό ονομάζεται μη κανονικότητα). Θα το λύσουμε αυτό με το RDKit σε λίγο.

Υπόδειξη: Τα "κανονικά ΧΑΜΟΓΕΛΑ" για ένα μόριο είναι η απλή, τυπική ορθογραφία για αυτό το μόριο. Για να δείτε αν δύο ΧΑΜΟΓΕΛΑ είναι το ίδιο μόριο, κανονικοποιήστε και συγκρίνετε τα. Δεν πρέπει να είναι ίσα κειμενικά, αλλά πρέπει να είναι ίσα μόρια.

Τι είναι το InChI;

Το InChI (International Chemical Identifier) ​​είναι ένα τυπικό αναγνωριστικό που αναπτύχθηκε από την IUPAC. Η διαφορά από το SMILES είναι ότι το ίδιο μόριο δίνει πάντα το ίδιο InChI. έχει δηλαδή κανονικό χαρακτήρα. Είναι μακρύ και δύσκολο στην ανάγνωση, αλλά είναι ιδανικό για αντιστοίχιση βάσεων δεδομένων. Η συντομογραφία "InChIKey" (σύνοψη 27 χαρακτήρων) χρησιμοποιείται για την αναζήτηση.

  • Ασπιρίνη InChIKey: BSYNRYMUTXBXSQ-UHFFFAOYSA-N.

Κανόνας: Οι άνθρωποι μιλούν ΧΑΜΟΓΕΛΑ (διαβάζεται), οι μηχανές και οι βάσεις δεδομένων ταιριάζουν με InChI/InChIKey (ακριβώς). Δώστε ΧΑΜΟΓΕΛΑ στο AI. Επιβεβαιώστε στη βάση δεδομένων με το InChIKey.

RDKit: ντετερμινιστική μηχανή επαλήθευσης

Το RDKit είναι μια βιβλιοθήκη χημειοπληροφορικής ανοιχτού κώδικα. Σε αντίθεση με το γλωσσικό μοντέλο, βασίζεται σε κανόνες: αναλύει το SMILES, υπολογίζει το μοριακό βάρος, δημιουργεί κανονικά SMILES, επιστρέφει InChI/InChIKey, σχεδιάζει το μόριο. Έτσι το RDKit "υπολογίζει" αυτό που "προβλέπει" το AI. Αυτή είναι η καρδιά της ροής εργασίας: το AI δημιουργεί, το RDKit επαληθεύει.

Μια βασική ροή επαλήθευσης:

από rdkit import Chemfrom rdkit.Chem import Descriptors, Drawsmiles = "CC(=O)Oc1ccccc1C(=O)O" Chem.MolToSmiles(mol)) print("Molecular formula:", Chem.rdMolDescriptors.CalcMolFormula(moleculart. 2), "g/mol") print("InChIKey:", Chem.MolToInchiKey(mol))

Εάν το MolFromSmiles επιστρέψει None, το AI σας έχει δώσει ένα μη έγκυρο μόριο. Αυτό και μόνο είναι μια πολύτιμη προειδοποίηση. Εάν ισχύει, δεν χρειάζεται πλέον να ρωτάτε το μοντέλο γλώσσας για το μοριακό βάρος. Είναι στο χέρι σου ντετερμινιστικά.

Βήμα προς βήμα: Διαλειτουργία AI + RDKit

  1. Προσδιορίστε το μόριο: Δώστε στο AI το όνομα, ζητήστε ΧΑΜΟΓΕΛΑ. Για παράδειγμα, "επαληθεύστε τα κανονικά SMILES για παρακεταμόλη."
  2. Επαλήθευση: Αναλύστε τα εισερχόμενα SMILES με το MolFromSmiles. Εάν Καμία, απορρίψτε.
  3. Canonicalize: Ανακτήστε την κανονική ορθογραφία με το MolToSmiles. Να το χρησιμοποιείτε πάντα από εδώ και στο εξής.
  4. Υπολογίστε αριθμούς: Λάβετε μοριακό βάρος, τύπο, αριθμό δακτυλίων, αριθμό δοτών/δεκτών δεσμών υδρογόνου κ.λπ. από το RDKit, όχι από το AI.
  5. Διορθώστε το ID: Δημιουργήστε το InChIKey, αναζητήστε στη βάση δεδομένων (PubChem), επιβεβαιώστε ότι το μόριο είναι όντως η ένωση που θέλετε.

Τέσσερα πρότυπα με δυνατότητα αντιγραφής

1) Ζητώντας ΧΑΜΟΓΕΛΑ (από ουσιαστικό σε δομή):

Εργασία: Δώστε τα κανονικά ΧΑΜΟΓΕΛΑ για την παρακάτω ένωση. Ένωση: παρακεταμόλη (ακεταμινοφένη). Κανόνας: Δώστε μόνο τη συμβολοσειρά SMILES και το InChIKey, μην προσθέσετε περαιτέρω εξήγηση. Εάν δεν είστε σίγουροι, γράψτε "ΑΣΦΑΛΙΣΤΟΣ", μην κάνετε up.

2) Αίτημα επικύρωσης SMILES (από δομή σε έλεγχο):

Εξετάστε τα SMILES παρακάτω: CC(=O)Nc1ccc(O)cc1Ερωτήσεις:1) Είναι έγκυρο SMILES;2) Σε ποια ένωση αντιστοιχεί (κοινή ονομασία);3) Ποιος είναι ο μοριακός τύπος;Σημείωση: Θα υπολογίσω το ακριβές μοριακό βάρος με το RDKit. Απλώς δίνετε την ερμηνεία της δομής σας.

3) Σύγκριση δύο παραστάσεων:

Έχω δύο ΧΑΜΟΓΕΛΑ:Α) OCCB) CCOTask: Είναι αυτά το ίδιο μόριο ή διαφορετικά; Γράψτε το σκεπτικό σας. Σημείωση: Θα διασταυρώσω την απάντησή σας κανονικοποιώντας την στο RDKit.

4) Επεξήγηση δομής (για μαθησιακούς σκοπούς):

ΧΑΜΟΓΕΛΑ: Cn1cnc2c1c(=O)n(C)c(=O)n2CTΕργασία: Διαβάστε αυτό το ΧΑΜΟΓΕΛΟ κομμάτι-κομμάτι και εξηγήστε τι σημαίνει κάθε σύμβολο (άτομο, δεσμός, δαχτυλίδι, αρωματικότητα) στα απλά τουρκικά. Πείτε επίσης ποια ένωση είναι.

Αδύναμη προτροπή / Ισχυρή προτροπή

Αδύναμο:

Δώστε τις ιδιότητες της ακεταμινοφαίνης.

Το "χαρακτηριστικό" είναι ασαφές. Το AI δημιουργεί τυχαίους αριθμούς από το μοριακό βάρος μέχρι το σημείο τήξης, μερικοί από τους οποίους θα είναι λανθασμένοι.

Δυνατό:

Ένωση: ακεταμινοφαίνη.1) Canonical SMILES και InChIKey έκδοση.2) Δώστε τον μοριακό τύπο. Κανόνας: ΜΗΝ ΔΙΝΕΤΕ ΑΡΙΘΜΗΤΙΚΕΣ τιμές όπως μοριακό βάρος, σημείο τήξης κ.λπ. Θα τα πάρω με το RDKit/PubChem. Απλώς δώστε το αναγνωριστικό κατασκευής.

Διαφορά: Κατευθύναμε το AI προς αυτό στο οποίο είναι ισχυρό (ταυτότητα δομής) και μακριά από αυτό στο οποίο είναι αδύναμο (πειραματικοί αριθμοί).

Σύγκριση εντυπώσεων

χαρακτηριστικό

ΧΑΜΟΓΕΛΑ

InChI / InChIKey

Αναγνωσιμότητα

Υψηλό (φιλικό προς τους ανθρώπους)

Χαμηλό (φιλικό προς τη μηχανή)

κανονικότητα

Υπόκειται σε αλλαγή (χρειάζεται αγιοποίηση)

φυσικά ανύπαντρη

Χρήση

ανθρώπινη επικοινωνία, σχέδιο, εισαγωγή

Αντιστοίχιση βάσης δεδομένων, ταυτότητα

στερεοχημεία

Υποστηρίζει (σύμβολα @)

Υποστηρίζει (επίπεδα)

να δώσει στην ΑΙ

ιδανικό

Ιδανικό για επιβεβαίωση

μίνι θήκες

Περίπτωση 1 — Δύο ονόματα, ένα μόριο. Ένας μαθητής σκέφτηκε ότι η «Ν-ακετυλ-παρα-αμινοφαινόλη» και η «παρακεταμόλη» ήταν διαφορετικές ενώσεις και σχεδίασε δύο ξεχωριστά πειράματα. Όταν κανονικοποιήθηκαν τα SMILES τους στο RDKit, αποδείχθηκαν και τα δύο ότι ήταν CC(=O)Nc1ccc(O)cc1. Ήταν το ίδιο μόριο. Χάθηκε: μισή μέρα προγραμματισμού. κέρδος: θα μπορούσε να είχε αποφευχθεί με έναν έλεγχο κανονικοποίησης 2 λεπτών.

Περίπτωση 2 — Μη έγκυρη λήψη SMILES. Το AI επέστρεψε CC(=O)Nc1ccc(O)cc1C( για μια παραλλαγή (οι αγκύλες δεν ήταν κλειστές). Ο μαθητής έτρεξε το MolFromSmiles, επέστρεψε None, είδε αμέσως το σφάλμα και ζήτησε διορθωμένα SMILES. Χωρίς επαλήθευση, η ελαττωματική δομή θα είχε εξαπλωθεί σε όλους τους λογαριασμούς.

Περίπτωση 3 — Λανθασμένο μοριακό βάρος. Ο ΥΖ είπε "μοριακό βάρος 214,3 g/mol" για την ιβουπροφαίνη (C13H18O2). Ο υπολογισμός RDKit έδωσε 206,28 g/mol. Διαφορά για 0,1 mol: 21,43 g με YZ, στην πραγματικότητα 20,63 g. Αυτή η διαφορά 3,9% θα διαταράξει τη στοιχειομετρία και τον υπολογισμό της απόδοσης. Έφερε ντετερμινιστικό λογισμό.

Συνήθη λάθη

  • Δίνοντας το μόριο με το όνομα. Τα συνώνυμα/εμπορικές ονομασίες έχουν μπερδευτεί. Να συμπεριλαμβάνετε πάντα SMILES ή InChI.
  • Συγκρίνοντας τα ΧΑΜΟΓΕΛΑ χωρίς να τα κανονικοποιούμε. Το OCC και το CCO είναι διαφορετικά σε κείμενο αλλά ίδια σε μόρια.
  • Ζητώντας το μοριακό βάρος στο μοντέλο της γλώσσας. Αυτός είναι ένας ντετερμινιστικός υπολογισμός. Γίνεται από το RDKit ή χειροκίνητα από τον τύπο.
  • Δεν παρατηρώ μη έγκυρα ΧΑΜΟΓΕΛΑ. Μη έλεγχος της επιστροφής του MolFromSmiles None και συνέχιση με λάθος δομή.
  • Παραμέληση της στερεοχημείας. Τα δύο εναντιομερή (ισομερή κατοπτρικής εικόνας) μπορεί να παρουσιάζουν διαφορετικά βιολογικά αποτελέσματα. Παρακάμπτοντας τα σήματα @/@@ στο SMILES.
Προσοχή: Ο ίδιος μοριακός τύπος δεν σημαίνει διαφορετικά μόρια. Το C2H6O είναι και αιθανόλη (CCO) και διμεθυλαιθέρας (COC). Η ισότητα της φόρμουλας δεν είναι ισότητα ταυτότητας. Χρησιμοποιήστε το InChIKey για αναγνώριση.

Συνοπτικά

  • Προσδιορίστε τα μόρια με συμβολισμό δομής, όχι με όνομα: SMILES με άνθρωπο, InChI/InChIKey με βάση δεδομένων.
  • Το RDKit είναι ντετερμινιστικό. Το AI προβλέπει, το RDKit υπολογίζει και επαληθεύει.
  • Αναλύστε κάθε AI SMILES με το MolFromSmiles και ελέγξτε για None και, στη συνέχεια, κάντε κανονικοποίηση.
  • Λάβετε αριθμούς όπως το μοριακό βάρος και ο τύπος από το RDKit, όχι από το μοντέλο γλώσσας.
  • Ισότητα τύπου δεν σημαίνει μοριακή ταυτότητα. Χρησιμοποιήστε το InChIKey για αναγνώριση.

Εργασία εφαρμογής

Επιλέξτε τρεις ενώσεις (π.χ. καφεΐνη, ιβουπροφαίνη, γλυκίνη). Ζητήστε από το AI κανονικά ΧΑΜΟΓΕΛΑ για καθένα. Στη συνέχεια, γράψτε ένα σενάριο RDKit (χρησιμοποιήστε το παραπάνω πρότυπο) και δημιουργήστε: κανονικά SMILES, μοριακός τύπος, μοριακό βάρος, InChIKey. Πόσα από τα ΧΑΜΟΓΕΛΑ που δόθηκαν από το AI ήταν έγκυρα; Εάν το YZ έδωσε επίσης το μοριακό βάρος, υπολογίστε τη διαφορά ως ποσοστό με την τιμή RDKit. Τοποθετήστε τα ευρήματά σας σε ένα μικρό τραπέζι.

λίστα ελέγχου

  • [ ] Ξέρω τι είναι τα SMILES και τα InChI/InChIKey και πότε να τα χρησιμοποιώ.
  • [ ] Επαληθεύω κάθε ΧΑΜΟΓΕΛΟ που δίνεται από AI με το MolFromSmiles.
  • [ ] Κανονίζω τα ΧΑΜΟΓΕΛΑ πριν τα συγκρίνω.
  • [ ] Παίρνω το μοριακό βάρος και τον τύπο από το RDKit, όχι από το μοντέλο γλώσσας.
  • [ ] Επιβεβαιώνω την ταυτότητα του μορίου στη βάση δεδομένων με το InChIKey.
  • [ ] Γνωρίζω καταστάσεις όπου η στερεοχημεία είναι σημαντική.