--Version 20030620
--
-- Needed to suppress special meaning of '&' in sqlplus

set define off
--
-- Encoding of the rules in VCS as SMIRKS
--
-- table is name, smirks,  direction, class, notes.

-- Remove old entries
-- By convention class 0 are the Daylight CIS defined set
-- So remove only this class
--
delete from  transform where class = 0;
commit;

insert into transform values ('Deprotonate',
                '[*+;$([!#6;!$([+]~[-])]):1][H]>>[*+0:1]',
                'FORWARD',
                0,
                'Deprotonation of cations to neutral species where possible');

insert into transform values ('Protonate',
                '[*-;$([!#6;!$([-]~[+]);!$([v4;B,Fe]);!$([v5;S,Se,Te,Sn]);!$([v6;P,As,Sb])]):1]>>[*+0:1][H]',
                'FORWARD',
                0,
                'Protonation of anions to neutral species where valence allows' );

insert into transform values ('Nitros',
                '[O-:1][*+;#7;v4:2]>>[O+0:1]=[*+0;#7;v5:2]',
                'REVERSE',
                0,
                'Nitro groups and N-oxides including aromatics' ||
                'Business rules decide whether to allow 5-valent' ||
                'uncharged nitrogen');

insert into transform values ('P-oxides',
                '[O-:1][P+;v4:2]>>[O+0:1]=[P+0;v5:2]',
                'FORWARD',
                0,
                'P-oxides excluding aromatics' ||
                'Business rules decide whether to prefer 5-valent' ||
                'uncharged phosphorous. It would be unlikely' ||
                'this transform would be run in reverse.');

insert into transform values ('Azides',
                '[N-;X1:1]=[N+;v4:2]>>[N+0:1]#[N+0;v5:2]',
                'REVERSE',
                0,
                'Diazo alkanes and ketones, azides' ||
                'Business rules decide whether to allow 5-valent' ||
                'uncharged nitrogen');


insert into transform values ( 'S-Oxides',
                '[O-:1][*+;X3;$([#16]([#6])[#6]):2]>>[O+0:1]=[*+0;X3;$([#16]([#6])[#6]):2]',
                'FORWARD',
                0,
                'S-oxides including aromatics, but excluding oxyacids of sulphur' ||
                'Business rules decide whether to prefer 4-valent' ||
                'uncharged sulphur');


insert into transform values ('Ionic',
                '[*;$([Li,Na,K,Rb]):1][*;!#1:2]>>[*+:1].[*:2][H]',
                'FORWARD',
                0,
                'Ensure that there are no covalent bonds to Group I metals'||
                'MH is left alone');



commit;

-- Simple salt list for illustration
--
-- table is:  name, smiles, class, note.

-- Remove old entries
-- By convention class 0 are the Daylight CIS defined set
-- So remove only this class
--
delete from  salt where class = 0;
commit;

-- Add normalized version too. vcs_normalize ( smiles, iso, class ) 
-- Use standard class 0
--
-- These will not normalize
--
insert into salt values ('Lithium',   '[Li+]', 0, NULL);
insert into salt values ('Sodium',    '[Na+]', 0, NULL);
insert into salt values ('Potassium', '[K+]',  0, NULL);
insert into salt values ('Rubidium',  '[Rb+]', 0, NULL);
insert into salt values ('Cesium',    '[Cs+]', 0, NULL);
--
-- These will normalize
--
insert into salt values ('Ammonium',   '[NH4+]',
                                0, 'Cationic');
insert into salt values ('Ammonium', vcs_normalize( '[NH4+]',1 ,0 ),
                                0, 'Normalized neutral');
--
insert into salt values ('Fluoride',    '[F-]',
                                0, 'Anionic');
insert into salt values ('Fluoride', vcs_normalize( '[F-]',1 ,0 ),
                                0, 'Normalized neutral' );
insert into salt values ('Chloride',    '[Cl-]',
                                0, 'Anionic');
insert into salt values ('Chloride', vcs_normalize( '[Cl-]',1 ,0 ),
                                0, 'Normalized neutral' );
insert into salt values ('Bromide',     '[Br-]',
                                0, 'Anionic');
insert into salt values ('Bromide', vcs_normalize('[Br-]',1 ,0 ),
                                0, 'Normalized neutral' );
insert into salt values ('Iodide',      '[I-]',
                                0, 'Anionic');
insert into salt values ('Iodide', vcs_normalize('[I-]',1 ,0 ),
                                0, 'Normalized neutral');
--
insert into salt values ('Perchlorate', 'O=Cl(=O)(=O)[O-]',
                                0, 'Anionic');
insert into salt values ('Perchlorate', vcs_normalize( 'O=Cl(=O)(=O)[O-]',1 ,0 ),
                                0, 'Normalized neutral' );
--
-- Add additional states for poly oxyanions to allow the functions 
-- vcs_desalt() and vcs_normalize() to be commutative
-- These extra rows are unnecessary if
-- vcs_desalt ( vcs_normalize(smiles, 1, 0), 1, 0)
-- is used.
--

insert into salt values ('Sulphate', 'O=S(=O)([O-])[O-]',
                                0, 'Anionic');
insert into salt values ('Sulphate', vcs_normalize( 'O=S(=O)([O-])[O-]',1 ,0 ),
                                0, 'Normalized neutral' );
insert into salt values ('Sulphate', 'O=S(=O)(O)[O-]',
                                0, 'Anionic' );
--
insert into salt values ('Phosphate', 'O=P([O-])([O-])[O-]',
                                0, 'Anionic');
insert into salt values ('Phosphate', vcs_normalize( 'O=P([O-])([O-])[O-]',1 ,0 ),
                                0, 'Normalized neutral' );
insert into salt values ('Phosphate', 'O=P(O)([O-])[O-]',
                                0, 'Anionic' );
insert into salt values ('Phosphate', 'O=P(O)(O)[O-]',
                                0, 'Anionic' );
--



commit;