John May - 2013-06-09

"Those who don't know history are destined to repeat it." - Edmund Burke

Right, time to fix this once and for all!


From looking at stuff the last couple of days I actually think I understand how this ESSSR is done now. I should also add for future discoveries ESSR != ESSSR although the abbreviations both mean nearly the same thing 'Extended Set of Smallest Rings' and 'Extended Smallest Set of Smallest Rings'. The ESSR is published but not a very nice algorithm, the ESSSR is specific to CACTVS and hence used by PubChem.

For that original post chemfp uses smarts matching. Having done those recent relavent cycle algorithms recently I think I can come up with a concise algorithm.

Going to add some links here for future reference and those who stumble across it.

This code fragment will do something with the rings, but filter out all envelope rings. An envelope
ring is a ring which can be constructed by the union of smaller rings. In naphthalene, all rings except
the six-membered rings are envelope rings. In norbornane, the six-membered base ring is not an
envelope, because it does not contain the bridge atom present the five-membered rings and is thus not a union. The envelope filter is a built-in filter which checks the value of property R_TYPE to be
envelope (and not esssr, or sssr).

For the ESSSR count (contains rings covering all 3-ringatom-chain, e.g. 6 rings in cubane) substitute property E_NESSSR