SMARTS Pattern to exclude fused rings but include bridges rings

Hello,

I am trying to write a SMARTS pattern to match only unfused rings. The simplest pattern would be for a molecule like piperidine is [#6R1]-1@[#6R1]@[#6R1]@[#6R1]@[#6R1]@[#NR1]-2, where every atom is exactly in one ring system. However using this pattern will exclude bridged rings. Fused rings have only one common bond and have only two atoms in common like decahydroquinoline for example. While bridged rings will have more bonds and atoms in common like 2‐azabicyclo[2.2.2]octane.

I am wondering if it’s possible to write a general pattern for a given ring size system to excludes fused rings but include bridged rings. The alternative ugly option is to recursively write all possible bridged
patterns for a given ring size. Thanks in advance

image
image

Hello @jeanmartel,

do you use the SMARTS Query node and don’t mind to have two of them you could try the following:
with the first SMARTS Query node search for [R] (this will bring all molecules containing rings to the first out-port).
Then, add a second SMARTS query that searches for [x3][x3] and [x4][x4]. [x3] is any atom that has three connections to a ring (you will see this both in fused and bridged rings), but [x3][x3] searches for two of these atoms which are directly connected (so fused rings only). The x4 variant is needed for aromatic fused rings, where you would have four ring connections. Important: the wanted molecules are now in the second out-port, as the fused ones are in the first. I did not test the query for all possible molecules, so please check if the behaviour is as expected.
Best regards,
Daniela

2 Likes

Thanks so much Daniela for pointing out to me the ring connectivity x. I was able to write a general pattern for a 6 membered ring nitrogen heterocycle that could be bridged but cannot be fused.

[!$([#6x3R][*x3R]);!$([#6x4R][*x4R])]-1@[!$([#6x3R][*x3R]);!$([#6x4R][*x4R])]@[!$([#6x3R][*x3R]);!$([#6x4R][*x4R])]@[!$([#6x3R][*x3R]);!$([#6x4R][*x4R])]@[!$([#6x3R][*x3R]);!$([#6x4R][*x4R])]@[!$([#7x3R][*x3R]);!$([#6x4R][*x4R])]-1
1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.