I am a computer scientist, not a chemist, working with RDKit. I need to compute something described to me as "RR, the number of rigid single or fused ring systems in the molecule."

I know I can access the rings of a molecule with AtomRings and BondRings. However, I don't know how to select only the "rigid" ones. Perhaps all ring systems are "rigid" and the word is just there for emphasis and redundancy? If not, how can I tell?

  • $\begingroup$ We're going to need to know what "rigid" means to help here. One strict possibility is it means only aromatic rings. Another is that any ring that isn't too flexible should count, so maybe 6 and possibly 7 and maybe (?) 8-membered aliphatic rings would be fine. But then cyclooctyne isn't very flexible even though it's all aliphatic. $\endgroup$
    – Curt F.
    Dec 24, 2020 at 2:17
  • $\begingroup$ You can try on the RDKit mailing list. We've thought about the same kind of thing and .. it's hard to come up with a good definition. Small rings are rigid because they can't flex (e.g. 3-membered rings). Some rings qualify because they have double or aromatic rings. $\endgroup$ Dec 24, 2020 at 3:17
  • 3
    $\begingroup$ I think the easiest thing would be to go through the SSSR (smallest set of smallest rings) and first see if any of the bonds are in another ring system (so fused) and then see if any of the atoms could be considered flexible. The best definition I can come up with for a potentially flexible ring atom seems to be "both neighboring atoms only have single bonds and are not connected to each other." I'm not sure how well that heuristic holds up - "flexibility" of ring atoms mostly goes back to hand-waving around "I can move it." $\endgroup$ Dec 24, 2020 at 3:21

1 Answer 1


My group has thought about this as we pursue better methods for finding conformers which would ideally include flexing rings.

I'm not aware of a current descriptor for "rigid" rings because it's one of those concepts that chemists discuss but is more of a heuristic for "I can move some of the atoms." (Which would imply you need some sort of molecular dynamics to determine - solvable but not fast to compute.)

Let's try something like this:

  1. To get the number of fused ring systems, you'd go through the SSSR (smallest set of smallest rings) and see if a ring bond is also a member of another ring. If so, that's a fused ring system. You'd then need to do graph traversal to find all ring bonds in the fused ring system (i.e., in cholesterol there's only one fused ring system).

  2. To get "rigid single rings" you'd need to go around the ring atoms and see if there is at least one "flexible" ring atom. The best heuristic I've derived for a potentially flexible ring atom seems to be "both neighboring atoms only have single bonds and are not connected to each other."

This last heuristic would ignore 3-membered rings (e.g., neighboring atoms are connected), benzene (i.e., atoms have double/aromatic bonds), .. seems to get most things right.

IMHO, even fused ring systems can flex, which is why my group has centered on item #2 - finding ring atoms that can move. But if you're implementing someone else's heuristic from a paper, you'll need to carefully do the ring traversal in #1 to accurately count the fused ring systems.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.