From: gilleain t. <gil...@gm...> - 2010-03-26 09:36:26
|
Hi, Well, the only places where the word 'random' appears in the CDK (relevant to layout) are the AtomTools and OverlapResolver classes. The atom tools are for 3D layout, but the overlap resolver is for 2D. The overlap resolver is called as the last step of the generateCoordinates method in the SDG, and the main resolveOverlap method of the Resolver seems to be making small nudges to overlapping atoms until a clash score becomes 0 (or maxSteps attempts are done). A call to Math.Random is made to choose the next pair of overlapping atoms, so this may be the source of the randomness. It would be interesting to see if providing the OverlapResolver with a seed would repeatedly give the same diagram for the same input. gilleain On Fri, Mar 26, 2010 at 8:41 AM, JEAN MARC NUZILLARD <jm....@un...> wrote: > Message de Noel O'Boyle <bao...@gm...>: > >> On 25 March 2010 06:54, Sam Adams <se...@ca...> wrote: >>> >>> If the process involves iterating through a HashMap or HashSet at any >>> point that could be the cause of the non-determinism. >>> >>> Switching to a CCG-like algorithm will make the non-determinism worse. >>> As I understand it, their layout algorithm is inherently random: the >>> structure is fragmented into component blocks - rings, chains, groups >>> etc, and sets of constraints/possible layouts generated for each block. >>> As the number of blocks increases this rapidly leads to an explosion in >>> the number of possible combinations of layouts, so a reasonable solution >>> is found by stochastic sampling. >> >> Set the random seed? > > Thank you Noel for this question. > Non-determinism is not a curse of Heaven > (Cosmic rays influence on computers excepted). > If some container object uses a random number generator > in order to enumerate its content, there > should be a way to reset its seed to a given value. > > Jean-Marc > www.univ-reims.fr/LSD > >> >>> Sam >>> >>> >>> On 25/03/2010 00:35, Christoph Steinbeck wrote: >>>> Hi, >>>> >>>> this is a known problem with my SDG code. In fact, if you do the layout >>>> a couple of times in a row, you might get different results. I assume >>>> that this is due to rounding errors. Definitely, there is no intended >>>> random element. >>>> The algorithm should, in theory, be deterministic. >>>> We have advertised a student project to get the layout closer to >>>> something like the CCG people published in JCIM some years ago. >>>> (http://www.ebi.ac.uk/steinbeck/projects.html) >>>> >>>> Cheers, >>>> >>>> Chris >>>> >>>> >>>> >>>> On 22/03/2010 13:41, JEAN MARC NUZILLARD wrote: >>>>> Hi, >>>>> >>>>> I created two identical molecules by calling addAtoms and addBonds >>>>> in the same order with the same arguments and then I generated coordinates >>>>> using a StructureDiagramGenerator. >>>>> Looking with Jmol at the molecules in the corresponding SD file, >>>>> it appeared that the graphs were different. >>>>> Repeting the whole process, I sometimes get the same graphs, >>>>> but sometimes different ones. >>>>> The molecule is camphor. I am usign CDK-1.2.5. >>>>> >>>>> Is there a non-deterministic part in the SDG algorithm? >>>>> Is there a way to purposely get different graphs for the same molecule, >>>>> thus allowing the user to choose the best looking one? >>>>> >>>>> Jean-Marc Nuzillard >>>>> www.univ-reims.fr/LSD >>>>> >>>>> >>>>> >>>>> ------------------------------------------------------------------------------ >>>>> Download Intel® Parallel Studio Eval >>>>> Try the new software tools for yourself. Speed compiling, find bugs >>>>> proactively, and fine-tune applications for parallel performance. >>>>> See why Intel Parallel Studio got high marks during beta. >>>>> http://p.sf.net/sfu/intel-sw-dev >>>>> _______________________________________________ >>>>> Cdk-user mailing list >>>>> Cdk...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/cdk-user >>>> >>> >>> >>> ------------------------------------------------------------------------------ >>> Download Intel® Parallel Studio Eval >>> Try the new software tools for yourself. Speed compiling, find bugs >>> proactively, and fine-tune applications for parallel performance. >>> See why Intel Parallel Studio got high marks during beta. >>> http://p.sf.net/sfu/intel-sw-dev >>> _______________________________________________ >>> Cdk-user mailing list >>> Cdk...@li... >>> https://lists.sourceforge.net/lists/listinfo/cdk-user >>> >> >> ------------------------------------------------------------------------------ >> Download Intel® Parallel Studio Eval >> Try the new software tools for yourself. Speed compiling, find bugs >> proactively, and fine-tune applications for parallel performance. >> See why Intel Parallel Studio got high marks during beta. >> http://p.sf.net/sfu/intel-sw-dev >> _______________________________________________ >> Cdk-user mailing list >> Cdk...@li... >> https://lists.sourceforge.net/lists/listinfo/cdk-user >> >> > > > > > ------------------------------------------------------------------------------ > Download Intel® Parallel Studio Eval > Try the new software tools for yourself. Speed compiling, find bugs > proactively, and fine-tune applications for parallel performance. > See why Intel Parallel Studio got high marks during beta. > http://p.sf.net/sfu/intel-sw-dev > _______________________________________________ > Cdk-user mailing list > Cdk...@li... > https://lists.sourceforge.net/lists/listinfo/cdk-user > |