IUPAC naming

User 7b0ee04e66

12-01-2007 14:31:45

Good afternoon,





Our users are interested in automatically naming compounds, and I had a look at the page below which seems exactly what we need





http://www.chemaxon.com/shared/alpha/marvin/doc/dev/iupacnaming.html





I have downloaded what I hink is the latest version of Marvin Sketch


(MarvinSketch/Swing 4.2.0alpha2) and tried your example, but the name I got is different from your example, "2-{[2,3-dichloro-4-(2-methylidenebutanoyl)cyclohexa-1,3,5-trien-1-yl]oxy}acetic acid" which makes me think I do not have the latest version ?





I have also tried to draw benzene, and the IUPAC name which was given to me is "cyclohexa-1,3,5-triene".





Could you please send me a link to the latest version so that I can ask our users to test the names produced in more details before we implement it?





Thanks


Catherine

ChemAxon 7c2d26e5cf

12-01-2007 15:17:41

Currently, this is the latest one. Since it is a bit old. We are going to build a new one today. It will be available on the same place. I will send a notification for you when it's ready.

ChemAxon 7c2d26e5cf

12-01-2007 17:42:20

The new alpha release is available (4.2.0alpha3). It includes the updated IUPAC naming export.

User 7b0ee04e66

16-01-2007 12:38:04

Thanks


Catherine

User 677b9c22ff

18-01-2007 04:13:21

Hi,





I like the new IUPAC naming function (as i like most of the new MARVIN functions like solubility and boiling points :-)


and I did a quick test with the alpha version Marvin Applets 4.2.0alpha3 and the NCI99 dataset


and 247656 molecules OK, 1425 molecules had no name, which translates to ~99.42% done,


which is pretty good for a new algorithm. - Tobias: Section edited see below






I think naming is a nice feature to have (like DVD player in a car for the back seats)


but not a 100% must, because things pretty much changed with the introduction of


PubChem and InCHI, so I dont hazzle with these names around anymore like 10 years ago.





But 115 years later its good to have some kind of algorithm anyway :-)


(yes I heard about CAS and Beilstein and ACDLabs and OEChem)





"The first international proposals on the nomenclature


of organic chemistry, made at Geneva in


1892, were revised and extended by the Deiinitive


Report of the Commission for the Reform of Nomenclaturein


Organic Chemistryof theIntemational


Union of Chemistry (I.U.C.) which appeared after


the meeting at Likge in 1930 (LiCge Rules), and


was supplemented by less extensive reports from


the meetings at Lucerne in 1936 and at Rome in


1938."





J. Am. Chem. Soc.; 1960; 82(21); 5545-5574.


Definitive Rules for Nomenclature of Organic Chemistry








Kind regards


Tobias

ChemAxon 7c2d26e5cf

21-01-2007 11:53:43

Thanks for the feedback.

User 677b9c22ff

30-01-2007 22:41:02

Hi,


I had a mixup with different JCHEM and MARVIN versions (I think I have at least 9 different versions installed).


So I had an old Eclipse project running, with the current JChem version, instead of the alpha-version.


The code is just a wrapper from provided API function calls.


Tobias


-------------------------------------------------------------------------------------





Code:
 


package testIUPAC;








import chemaxon.marvin.modules.*;


import chemaxon.marvin.modules.nameimport.*;


import chemaxon.marvin.plugin.PluginException;


import chemaxon.struc.Molecule;





import chemaxon.*;


import chemaxon.formats.*;


import chemaxon.struc.*;


import chemaxon.util.*;


import chemaxon.sss.search.*;


import chemaxon.marvin.beans.*;


import chemaxon.marvin.calculations.logPPlugin;


import chemaxon.calculations.*;


import chemaxon.marvin.calculations.*;


import chemaxon.marvin.plugin.*;








import java.io.*;


import java.util.*;





public class getIUPACnames {








   /*


   Author: Tobias Kind (FiehnLab) (2007)


   Author: Nora Mate, Gyorgy Pirok, Tamas Vertse (ChemAxon), Daniel Bonniot  and many others


   Purpose: Generate IUPAC names from a structure file.


   


   */


   


       /** Defines a MolImporter object to the structure file. */


       private static MolImporter createMolImporter(String filename) {


           MolImporter mi = null;


           try{


               File f = new File(filename);


               FileInputStream fis = new FileInputStream(f);


               mi = new MolImporter(fis);


              


           } catch(FileNotFoundException ex) {


               System.err.println(filename+": not found");


               System.exit(1);


           } catch(MolFormatException ex) {


               System.err.println(filename+": "+ex.getMessage());


               System.exit(1);


           } catch(Exception ex) {


               System.err.println("Error: "+filename+" is not a structure file.");


               System.exit(1);


           }


           return mi;


       }


      


      private static  long countMolecules(String filename) throws PluginException, MolFormatException, IOException


       {


          


           // loads molecules


           MolImporter mi = createMolImporter(filename);


              


           //count all our little molecules - seek back later or close/open again


          // Molecule globaltarget = null;


           long globalmolcounter = 0;


           while (( mi.read()) != null) {


              globalmolcounter++;


           }


           mi.close();


           return globalmolcounter;


       }





   


      public static  void main(String[] args) throws PluginException, MolFormatException, IOException {


      System.out.println("IUPAC Name Test  2007 v1.0"+ " - CPUs:"+Runtime.getRuntime().availableProcessors());


      Runtime.getRuntime().availableProcessors();


      Runtime.getRuntime().freeMemory();


      Runtime.getRuntime().maxMemory();


      Runtime.getRuntime().totalMemory();


         


       /*  The input file format is guessed automatically or specified as an import option


       *  to the constructor. Many different formats are supported like


       *  "mol", "rgf", "sdf", "rdf", "csmol", "csrgf", "cssdf", "csrdf", "cml", "mrv", 


       *  "smiles", "cxsmiles", "pdb", "xyz".


       *  MolImporter can also import gzip compressed and base64 encoded structures.


       */


      


      String    filename = "z:nci99.smi";


            


       //count all our little molecules - seek back later or close/open again


       System.out.println("Number of molecules in " + filename+ ": "+ countMolecules(filename));


      


       // loads molecules for our procedure


       MolImporter mi = createMolImporter(filename);


      


       // for each input molecule run the calculation and display the results


       Molecule target = null;


       String myName = "";


       long molcounter = 0;


       long noNamecounter = 0;


      


       while ((target = mi.read()) != null) {


          


          //count all our little mols - hehe


          molcounter++;


          


          try {


           // set the input molecule


          myName = chemaxon.marvin.modules.nameexport.IUPACNamer.generateName(target);


          


          


          if (myName.contains("NO NAME:" ))


          {


             noNamecounter++;


          }


          


           // run the calculation


           System.out.println(molcounter+"\t" + myName);


          


           } //this is for plugin-errors


          catch (Exception e)


           {


              System.out.println ("Error - " + e );


           }


          


           }


        


       mi.close();


       System.out.println();


       System.out.println((molcounter-noNamecounter)+" molecules OK. " + noNamecounter + " molecules had no name.");


       }


}





ChemAxon e7b9408ca1

31-01-2007 07:31:29

Thanks, Tobias, for rerunning the tests. So, just to be sure the misunderstanding is cleared, the actual result is that Marvin 4.2.0 alpha3 could name 99.4% of the NCI dataset.