[adding the list to the reply]
On Thu, Jul 18, 2013 at 5:39 PM, Syeda Sabrina <[email protected]> wrote:
> Hi Greg,
>
> For the following reaction I tried to get the reactant template.
> Reaction: [C:15][c:12]1[c:11][c:10][c:9]([c:14][c:13]1)[S:
> 6](=[O:7])(=[O:8])[O:5]\[C:4]=[C:3]\[Cl,Br,I:1]>>[C:4]#[C:3]
> .[C:15][c:12]1[c:11][c:10][c:9]([c:14][c:13]1)[S:6]([O-:5])
> (=[O:7])=[O:8].[*:1]
>
> Code:
> rxn =
> AllChem.ReactionFromSmarts('[C:15][c:12]1[c:11][c:10][c:9]([c:14][c:13]1)[S:6](=[O:7])(=[O:8])[O:5]\[C:4]=[C:3]\[Cl,Br,I:1]>>[C:4]#[C:3].[C:15][c:12]1[c:11][c:10][c:9]([c:14][c:13]1)[S:6]([O-:5])(=[O:7])=[O:8].[*:1]')
>
> rTemplates = [rxn.GetReactantTemplate(x) for x in
> range(rxn.GetNumReactantTemplates())]
>
>
> for rT in rTemplates:
> ...: print Chem.MolToSmiles(rT, True)
> >>
> [CH3:15][c:12]1[cH:13][cH:14]-[c:9]([S:6](=[O:8])(=[O:7])[O:5]/[CH:4]=[CH:3]/[Cl:1])[cH:10][cH:11]1
>
> As you can see I get a single bond between carbon 9 and 14. But according
> to the reaction smart it should be aromatic bond. Since reactant template
> might not be a valid molecule to get smiles from it I tried to loop over
> the bonds also to confirm it.
>
You should remember that the reactant and product templates in the
reactions built by ReactionFromSmarts have been built from SMARTS, not from
SMILES. This means that most sanitization work has not been done with them,
so there's no aromaticity perception.
A non-specified bond in SMARTS means "single or aromatic", you can see this
by using Chem.MoltoSmarts() instead of Chem.MolToSmiles():
In [12]: for templ in rTemplates:
print Chem.MolToSmarts(templ,True)
....:
[C:15]-,:[c:12]1:,-[c:11]:,-[c:10]:,-[c:9](-,:[c:14]:,-[c:13]:,-1)-,:[S:6](=[O:7])(=[O:8])-,:[O:5]-[C:4]=[C:3]-[Cl,Br,I:1]
The logic for what Chem.MolToSmiles puts into SMILES when atoms or bonds
have queries is based on making some guesses/assumptions (there's no right
answer). You're seeing the results of those guesses when you output SMILES.
Does that help?
-greg
>
> for rT in rTemplates:
> ...: for b in rT.GetBonds():
> ...: print b.GetBeginAtom().GetSymbol(),
> b.GetEndAtom().GetSymbol(), b.GetBondType(), b.GetIsAromatic()
> ...:
> C C SINGLE False
> C C AROMATIC False
> C C AROMATIC False
> C C AROMATIC False
> C C AROMATIC False
> C C SINGLE False
> C S SINGLE False
> S O DOUBLE False
> S O DOUBLE False
> S O SINGLE False
> O C SINGLE False
> C C DOUBLE False
> C Cl SINGLE False
> C C DOUBLE True
>
> so as you can see we have only 4 aromatic bonds instead of 5 from the
> ring. Do you have any thoughts about it?
>
> Thanks
> *Sabrina*
> *
> *
>
------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
Rdkit-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss