Canonical smiles for tautomers

User 9852713200

19-02-2008 16:56:33

Hi,





O=C1NC=CC=C1 and Oc1ccccn1 are identical compounds, but they have different smiles. Is there any way in Marvin to generate canonical smiles for tautomers like this?





We're using Marvin 5.0.0.





Thanks!

ChemAxon e08c317633

20-02-2008 16:27:07

Hi,





Yes, canonical tautomer of any molecule can be generated and exported to SMILES with Marvin or JChem. I will give you two solutions.





1. Using Tautomerization Plugin and cxcalc command line application (Marvin):





Code:
$ cxcalc canonicaltautomer "O=C1NC=CC=C1" -f smiles


O=C1NC=CC=C1


$ cxcalc canonicaltautomer "Oc1ccccn1" -f smiles


O=C1NC=CC=C1



(Note: Graphical user interface of Tautomerization Plugin can be accessed from the "Tools" menu of MarvinSketch / MarinView. It has no batch processing capabilities.)





2. Using Standardizer application (JChem):


Code:
$ standardize -c tautomerize "O=C1NC=CC=C1" -f smiles


O=C1NC=CC=C1


$ standardize -c tautomerize "Oc1ccccn1" -f smiles


O=C1NC=CC=C1



(Note: Standardizer has also graphical user interface.)





The output format can be specified with "-f" command line option. In both of my examples I used "smiles" output format, but it can be any file format we support.





Example with unique SMILES output format:





Code:
$ standardize -c tautomerize "Oc1ccccn1" -f smiles:u


O=c1cccc[nH]1



Regards,


Zsolt

User 9852713200

20-02-2008 16:53:12

Thanks! However, we'd like to use this "Tautomerization Plugin" directly in our Java swing application. Can you please post sample code for this canonical smiles conversion? Does it require separate license to use this Tautomeriztion Plugin?





thanks again,

ChemAxon e08c317633

20-02-2008 18:19:27

Hi,





Sample code that shows the usage of TautomerizationPlugin for canonical tautomer generation:


Code:
MolImporter importer = new MolImporter(args[0]);


Molecule mol = null;





// create plugin


TautomerizationPlugin plugin = new TautomerizationPlugin();


// set canonical tautomer calculation


plugin.setTakeCanonicalForm(true);





while ((mol = importer.read()) != null) {


    // set target molecule


    plugin.setMolecule(mol);


    // run the calculation


    plugin.run();


    // get the canonical tautomer


    Molecule canonicalTautomer = plugin.getStructure(0);


    System.out.println(canonicalTautomer.toFormat("smiles"));


}


importer.close();






I have attached the whole code that can be used for testing (CanonicalTautomerTest.java).





Usage:
Code:
$ java CanonicalTautomerTest demo.sdf


CCC(=O)OC(C)C[N+](C)(C)C


OC(=O)C1CCCC(=O)C1=O


CC(O)CN


NCC(=O)COP(O)(O)=O


ClC1=C(C=C(C=C1)N(=O)=O)N(=O)=O


CCN1C=NC2=C(N)N=CN=C12


CCC(C)(O)C(O)C(O)=O


OC1C(=O)CC(CC1=O)OP(O)(O)=O


NC1=NC2=C(NC(CN2)CN(C=O)C2=CC=C(C=C2)C(=O)NC(CCC(O)=O)C(O)=O)C(=O)N1


ClCCCl








It reads molecules one by one from the "demo.sdf" input file, generates their canonical tautomer and writes it to the console in SMILES format.





See also: http://www.chemaxon.com/marvin/help/developer/beans/api/chemaxon/marvin/calculations/TautomerizationPlugin.html
width="90%" cellspacing="0" cellpadding="3" border="0" align="center"> Quote: Does it require separate license to use this Tautomeriztion Plugin? Yes, separate license is required for TautomerizationPlugin.





Regards,


Zsolt