Chemistry Reference
In-Depth Information
T Table 9.1 Example SMIRKS for SMILES Standardization
Name
SMIRKS
nitro
[NX3+:1](=[O:2])-[O-;X1:3]>>[N+0:1]
(=[O:2])=[O+0:3]
oxo-enol
[C:1]=[C:2][OH1:3]>>[H][C:1][C:2]=[Oh0:3]
sulfuro
[SX4+:1](=[O:2])-[O-;X1:3]>>[S+0:1]
(=[O:2])=[O+0:3]
azide
[NX1H0:1]#[NX2H0:2]=[N:3]>>[N-:1]=[N+:2]=[N:3]
available in the chemical cartridges or extensions from several software
vendors. The xform function is not contained in the core functionality
shown in the Appendix.
Using the nitro transformation, the following SQL
Select xform('C[N+](=O)[O-]', '[O:2]=[N+:1][O-:3]>>[O:2]=[N+0:1]=
[O+0:3]');
returns the SMILES CN(=O)=O. This approach can be used for any num-
ber of transformations in order to standardize the SMILES in any table of
the database. Aside from nitro groups, there are other common variations
in SMILES due to valence bond variations. Table 9.1 presents several of
these and the SMIRKS that can be used to standardize them to a common
form. These are just examples and need to be considered carefully for any
application. With a table such as this, the following SQL could standard-
ize an entire table of SMILES.
Update rxntest Set smiles=xform(smiles,smirks) From std_smirks;
where std _ smirks is the name of the table. Of course, whenever updat-
ing an entire table, great care should be taken that there are no unintended
side effects. For example, the oxo-enol transformation is not favored by
some chemists and is actually a tautomerization and not a valence bond
issue.
It might be useful to prevent nonstandard SMILES from ever being
inserted into a table. One way to do this is by using an SQL constraint.
For example, an attempt to insert nonstandard SMILES into the following
table would cause an SQL error.
Create Table atable (smiles Text Check (is_std_smiles(smiles)));
Another approach is to always use a function to insert SMILES into the
table. For example:
Insert Into atable Select make_std_smiles(smiles);
Search WWH ::




Custom Search