TopologyAnalyserPlugin.getRings()

User 870ab5b546

14-05-2009 02:31:39

Hi,


TopologyAnalyserPlugin.getRings() currently returns the atom indices of only the SSSR rings in a compound.  I agree that this setting should be default, but it would be useful to have an option to return all rings, including those which are supersets of others.  For example, decalin would return not two, but three rings.


-- Bob

ChemAxon d76e6e95eb

14-05-2009 22:34:45

That kind of ring calculation can take long time in case of some special ring systems. For what purpose would it be useful?

User 870ab5b546

15-05-2009 01:53:00

I've written a method that rotates the groups around a bond by a certain dihedral angle.  It works by removing the rotatable bond, finding the two fragments, and rotating one with respect to the other.  If the bond is part of one or more rings, disconnecting the rotatable bond is insufficient for generating two fragments; one needs to disconnect one additional bond in each ring of which the rotatable bond is part.  With the current getRings() method, each time I disconnect a ring bond, if I still don't find two fragments in the molecule, I need to run getRings() again.  If getRings() returned all the rings, not just the SSSR rings, then I would only have ot run getRings() once.  

ChemAxon d76e6e95eb

18-05-2009 07:28:22

An all ring calculation takes much much longer than calling the current SSSR based method multiple times.


We will publish an existing method of the Geometry class (setDihedral) in its plugin that will not allow rotating ring bonds. Will that be ok for you?

User 870ab5b546

18-05-2009 12:51:59

I already have a setDihedral() method that will rotate both acyclic and ring bonds.  I was just trying to make the code more efficient by not calling the TopologyAnalyzer plugin repeatedly.  But seeing as you say that the all-rings method would be much slower than calling the SSSR method repeatedly, I'll just leave well enough alone.

ChemAxon d76e6e95eb

18-05-2009 14:13:36

We will publish these functions anyway, but in that case not with high priority.