Msketch/Marvin/Molconvert problem - w inhouse stereo smiles

User 677b9c22ff

22-08-2007 01:21:35

Hi,


I have some smiles codes which came out of Reactor-->Standardizer-->molconvert.


If I go to Marvin 4.11.1 and import these SMILES codes


and select Show Source (SMILES - non stereo) it will always


show some weird SMILES codes. For example (weird):





Code:
CC(=O)N1c2cccc[c:5]2[C:1](=O)[C:6]1=NOC(C)(C)C








Even if I select source unique SMILES (which I suspect is a real canonizer)


it always shows the reaction mapping numbers and always shows


the stereo information. Running these molecules through the


Standardizer with remove stereo, remove chiral, remove mapping does not change anything. Is there a molconvert option to do that?





I would expect something like (hand-drawn)


Code:
CC(=O)N1c2ccccc2C(=O)\C1=N/OC(C)(C)C








What would be the proper way to remove these weird SMILES code formats with the [] brackets?





Thank you in advance.


Tobias

ChemAxon a3d59b832c

22-08-2007 13:21:57

Hi,





There is an "Unmap" Standardizer action, but currently it only works for reactions. Our colleagues already registered the request that it should work for molecules also.





In the meantime, you can create a custom program using the Marvin API to remove atom maps. Let us know if you would like some pointers to the required methods and classes.





Regards,


Szabolcs

User 677b9c22ff

22-08-2007 18:54:41

Hi,


you mean something like this old forum post for clearing atom maps?





for (int i=mol.getAtomCount()-1; i >= 0; --i) {


mol.getAtom(i).setAtomMap(0);





I attached some code which uses the automatic format input guesser molimporter and automatic molexporter. May it be helpful to others.


The funny thing is, once you know the function (I did not know it),


its actually pretty easy to write some code using the API.





Tobias

ChemAxon a3d59b832c

22-08-2007 19:26:47

Yes, I had exactly this in my mind, but forgot about the old forum code. Thank you for sharing this with us!

User 677b9c22ff

23-08-2007 02:41:58

Hi,


I tried also to get rid of *ALL* stereo information, but the following code


did not clean my molecules.





target.getAtom(i).setStereoGroupType(StereoConstants.STGRP_NONE);


target.getAtom(i).setStereoGroupType(StereoConstants.ATOMSTEREO_NONE);


target.getAtom(i).setStereoGroupType(StereoConstants.CHIRALITYSUPPORT_NONE);





What are the correct functions?


Tobias

User 677b9c22ff

23-08-2007 02:54:27

Hi,


I tried also to get rid of *ALL* stereo information, but the following code


did not clean my molecules.





target.getAtom(i).setStereoGroupType(StereoConstants.STGRP_NONE);


target.getAtom(i).setStereoGroupType(StereoConstants.ATOMSTEREO_NONE);


target.getAtom(i).setStereoGroupType(StereoConstants.CHIRALITYSUPPORT_NONE);





example:


[#6][C@H](O)[C@H](O)[C@H](O)CO





What are the correct functions?


Tobias

ChemAxon 25dcd765a3

23-08-2007 06:49:11

Hi





If you want to remove stereo information, you can use one of the standardizer simple action string


"clearstereo" (clear stereo, both chirality and double bond)


"clearstereo:chirality" (clear chirality)


"clearstereo:doublebond" (clear double bond stereo)


see http://www.chemaxon.com/jchem/doc/user/StandardizerConfiguration.html#actionstring


for more detail.





Andras

User 677b9c22ff

23-08-2007 19:12:01

Hi Andras,


unfortunately due to the mentioned bug above,


I can not use the Standardizer (it will not work).


These structures come out of Reactor and can not be cleaned.


The single smarts I gave above can be cleaned (but not all the other structures).





standardize -c "absolutestereo:clear..clearstereo..clearstereo:doublebond" problem.sdf





Tobias

ChemAxon 25dcd765a3

24-08-2007 16:05:00

If you have molecules in 2D, the chiral stereo and double bond stereo information can be cleared using the following code:


Code:



for(int i = 0; i<m.getBondCount(); i++){


    MolBond b = m.getBond(i);


// remove parity info


    b.setFlags(0,MolBond.STEREO_MASK);


// remove CIS TRANS info


    int t = b.getType();


    if (t == 2 || t == MolBond.SINGLE_OR_DOUBLE || t == MolBond.DOUBLE_OR_AROMATIC || t == MolBond.ANY){


   b.setFlags(StereoConstants.CIS|StereoConstants.TRANS, StereoConstants.CTUMASK);


    }


}








Andras

User 677b9c22ff

24-08-2007 18:42:46

Thank you!


Tobias