Using RDKit to count "RR, the number of rigid single or fused ring systems in the molecule"
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 &quot;rigid&quot; rings because it's one of those concepts that chemists discuss but is more of a heuristic for &quot;I can move some of the atoms.&quot; (Which would imply you need some sort of molecular dynamics to determine - solvable but not fast to compute.)
Let's try something like this:

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).

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


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.