SMILES
SMILES is a linear notation that denotes the structures of chemical molecules using ASCII strings.
Introducció
Section titled “Introducció”Les cadenes de SMILES (Simplified Molecular Input Line Entry Specification) són molt útils per ser introduïdes en programes especialitzats i representar molècules sense la necessitat de dibuixar la molècula manualment.
Hi ha regles específiques sobre com representar àtoms, enllaços, aromaticitat, anells i ramificacions, etc. Per exemple, els enllaços simples no cal representar-los, però els enllaços dobles es poden representar utilitzant el signe =. Els àtoms d’hidrogen normalment s’ignoren.
Per exemple, CH2O (Etè) es representa com C=O.
OpenSmiles és una versió del llenguatge SMILES per a química patrocinada per la comunitat i basada en estàndards oberts.
En aquest enllaç tens la OpenSMILES specification
Molecular Fingerprinting
Section titled “Molecular Fingerprinting”Molecular fingerprints are a way to encode a molecule’s structure directly as a bit vector. There are several algorithms but a commonly used one is the ECFP4 notation that captures both the atom’s properties and the properties of neighboring atoms within a diameter of 4. Then a hashing function is used to convert this identifier into a fixed-size bit vector [7]. A typical application of this representation is to find molecular similarity.
Another common representation of a molecule is as a Graph. E.g., Adjacency Matrix. If we imagine molecules as graphs, then a node represents an atom, the edge represents the bond between the two atoms. Graphical representations can be more advantageous especially if spatial differences are important as it can preserve this data as opposed to a linear data model like SMILES.
Entorn de treball
Section titled “Entorn de treball”Crea un projecte smiles:
uv init smilescd smilesuv add rdkitHere is a small snippet of code that uses RDKit to do transform Benzene.
from rdkit import Chemfrom rdkit.Chem import AllChem, Draw
mol = Chem.MolFromSmiles('C1=CC=CC=C1')Draw.MolToImage(mol).show()Els àtoms estan representats per l’abreviatura estàndard de cada element químic, entre claudàtors, com ara [Au] per a l’or.
Els claudàtors es poden ometre per a “subconjunts orgànics” de B, C, N, O, P, S, F, Cl, Br, i I. Tots els altres elements han d’estar tancats entre claudàtors.
Si s’ometen els claudàtors, s’assumeix el nombre propi d’àtoms d’hidrogen implícits; per exemple, la cadena SMILES per a l’aigua és simplement O.
from rdkit import Chemfrom rdkit.Chem import AllChem, Draw
def draw_smile(smi): mol = Chem.MolFromSmiles(smi) Draw.MolToImage(mol).show()
draw_smile("O")L’aigua és H2O, per tant, pots ometre el H2 perquè està implicit.
Un àtom que porta una o diverses càrregues elèctriques s’ha de tancar entre claudàtors (sigui quin sigui), seguit del símbol H si està enllaçat a un o diversos àtoms d’hidrogen (aquests van seguits del seu nombre, excepte si només n’hi ha un: NH4 per a l’amoni), després del signe ’+’ per a una càrrega positiva, o del signe ’-’ per a una càrrega negativa. El nombre de càrregues s’especifica després del signe (excepte si només n’hi ha una); tanmateix, és possible escriure el signe de la/les càrrega/es tantes vegades com càrregues té l’ió: en lloc de “Ti+4”, es pot escriure perfectament “Ti++++” (Titani IV, Ti4+). Així, l’anió hidròxid es representa per [OH-], el catió oxoni per [OH3+], i el catió cobalt III (Co3+) per [Co+3] o per [Co+++].
Typescript
Section titled “Typescript”El contingut d'aquest lloc web té llicència CC BY-NC-ND 4.0.
©2022-2025 xtec.dev