Hi Gilleain, Thanks for the answer. Looks like a nice alternative. However, I can't seem to figure out where certain things are located. I'm using CDK-1.5.3. CDKInChI is a missing class, InchiReader.getPermutationFromAuxInfo(String) is missing too. I changed InchiReader to org.openscience.cdk.io.INChIReader.
Should I revert to another version of CDK, or is this functionality sitting somewhere in a side project? Or 3rd: is this supposed to be pseudo code and do I need to fill in the gaps? :) Regards, Nick -----Original Message----- From: gilleain torrance [mailto:[email protected]] Sent: Tuesday, September 10, 2013 4:59 PM To: Nick Vandewiele Cc: [email protected] Subject: Re: [Cdk-user] renumbering of atoms according to inchi canonicalization scheme? Hi Nick, Sorry, no - there is no implementation of the InChI canonicalization routine in the CDK (that I know of!) that doesn't involve actually generating the InChI using the c-libraries. The best you can get is to do something like: public int[] getCanonicalPermutation(IAtomContainer container) { int atomCount = container.getAtomCount(); try { CDKInChI cdkInchi = new CDKInChI(); List<INCHI_OPTION> options = new ArrayList<INCHI_OPTION>(); options.add(INCHI_OPTION.DoNotAddH); cdkInchi.getInChI(container, options); // do nothing with it! String auxInfo = cdkInchi.getAuxinfo(); int[] permutation = InchiReader.getPermutationFromAuxInfo(auxInfo); int[] invP = new int[atomCount]; for (int i = 0; i < atomCount; i++) { invP[permutation[i]] = i; } return invP; } catch (CDKException c) { int[] permutation = new int[atomCount]; for (int index = 0; index < atomCount; index++) { permutation[index] = index; } return permutation; } } which will give you a permutation of the atoms according to the inchi. Of course, it generates an inchi at the same time... gilleain On 9/10/13, Nick Vandewiele <[email protected]> wrote: > Hi, > > > > Imagine I created an IAtomContainer by adding atom after atom. Now I > want to reorder the atoms so that their atom numbers comply to the > rules of the canonicalization scheme of inchi. I want to do that > without actually generating the inchi of the atom container and > re-using the inchi to create a new atom container. Just reshuffling > the atom numbers so that they are canonical. > > > > Does CDK have something that does this? > > > > > > regards > > Nick > > > > ------------------------------------------------------------------------------ How ServiceNow helps IT people transform IT departments: 1. Consolidate legacy IT systems to a single system of record for IT 2. Standardize and globalize service processes across IT 3. Implement zero-touch automation to replace manual, redundant tasks http://pubads.g.doubleclick.net/gampad/clk?id=51271111&iu=/4140/ostg.clktrk _______________________________________________ Cdk-user mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/cdk-user

