assignment of bond type in SMARTS string

User f05f6b8c05

07-12-2010 20:01:39

Hi,


When I make a molecule from SMARTS string "cn(=O)c", the aromatic bonds are assigned type 6 (SINGLE_OR_AROMATIC); however, when the SMARTS string is imported as a SMILES, then the aromatic bonds are assigned type 4 (AROMATIC).  Why are they not assigned to be just AROMATIC as a SMARTS string?  How can I get them to be assigned as just AROMATIC?


 


Thanks for any help


Andrew


 


 


This code generates SINGLE_OR_AROMATIC aromatic bonds:


MolHandler mhl = new MolHandler("cn(=O)c", true);


Molecule m = mhl.getMolecule();


MolBond[] mbs = mm.getBondArray();


for (int j=0; j<mbs.length; ++j) {


 


System.out.println(mbs[j].getType());


}


 


 




This code generates AROMATIC aromatic bonds:


MolHandler mhl = new MolHandler("cn(=O)c", false);


Molecule m = mhl.getMolecule();


MolBond[] mbs = mm.getBondArray();


for (int j=0; j<mbs.length; ++j) {


 


System.out.println(mbs[j].getType());


}


 


 

ChemAxon 25dcd765a3

07-12-2010 21:26:01

SMARTS language can describe substructures (queries) and if the bond between two aromatic atoms are not written explicitly it can be single or aromatic. So in the following SMARTS "cn(=O)c" the implicit bonds can be single or aromatic, so we assign single_or_aromatic bond type.


SMILES describes complete molecules. A molecule cannot have query bond type. So the importer should decide to assign single bond or aromatic bond for implicit bond between aromatic atoms. We assign aromatic bond in such cases.


I hope this helps


Andras

User f05f6b8c05

09-12-2010 12:39:01

Hi,


Thanks for the quick response .. I didn't realize "cn(=O)n" was ambiguous .. using "c:n(=O):n" gets me my substructure with (only) aromatic c-n bonds.  Thanks again.