I have enumerated a large set of carbocations all of the formula C10H17+, all of course with differing structures. I know there are many different approaches of computing similarity between molecules, however most work best for molecules with differing formulas. I was wondering if anyone knew what the best method would be to compute similarity of different molecules of the same formula. I am thinking of using some sort of graph based method, but I wanted some advice/guidance on what people may think would be the optimal approach if possible.

I am working on a paper in which I am looking to define some sort of pathway space for the formation of terpenes starting from their carbocation precursors. Eventually I want to build a model that will predict which molecules are most likely to be the next intermediate in a cyclisation reaction, given a certain carbocation as input. I want to start by computing the similarity between the carbocations in some way.

  • 2
    $\begingroup$ The title says measure while the body says compute. $\endgroup$
    – Poutnik
    Jul 26, 2022 at 3:47
  • 1
    $\begingroup$ You may have meant "similarity measure" as the similarity model quantity for similarity comparison. $\endgroup$
    – Poutnik
    Jul 26, 2022 at 7:57
  • $\begingroup$ @Poutnik I want to input two molecules and get some sort of value that shows how similar they are. I want to know what similarity measure would be the best to use for molecules that have the same molecular formula. Would you be able to explain to me please the difference between compute and measure? Thank you $\endgroup$
    – BanAckerman
    Jul 26, 2022 at 15:19
  • $\begingroup$ Can similarity be computed ? $\endgroup$
    – Maurice
    Jul 27, 2022 at 10:39

1 Answer 1


tldr; The most common approach is to use fingerprints and compute the Tanimoto similarity

There are a variety of ways to compute "molecular similarity" but the most common approach is to generate molecular fingerprints (e.g., ECFP4 or similar) and then use the Tanimoto coefficient to determine similarity.

For an example of doing this in RDKit, you can adapt code from Stack Overflow or the RDKit manual.

Multiple reviews have considered how appropriate this method including:

For your particular case, it's possible you can come up with a custom fingerprint that encodes the graph, but the ECFP4 / ECFP6 / Morgan fingerprints do a pretty good job of encoding atom environments.

Even if you eventually use a different metric, it's probably a good place to start.

  • $\begingroup$ I was going to mention Tanimoto in the comments, but wasn't sure if it worked for isomers? I couldn't tell if the OP meant different structures as in several isomers, or comparing several different species. Does it work for isomers? $\endgroup$
    – B. Kelly
    Jul 28, 2022 at 13:19
  • $\begingroup$ @B.Kelly They are different structures, just the same formula. They are all all carbocations but with different ring structures and different double bond placements etc. $\endgroup$ Jul 28, 2022 at 16:39
  • $\begingroup$ @GeoffHutchinson What would your opinion be on Graph Edit Distance? Seeing as it will work based on one carbocation transformation to another? $\endgroup$ Jul 28, 2022 at 16:41
  • $\begingroup$ A graph edit distance would be a good metric, definitely. $\endgroup$ Jul 28, 2022 at 16:55
  • 1
    $\begingroup$ @B.Kelly Extended Connectivity Fingerprints do distinguish different isomers, and thus Tanimoto similarity can be calculated. I have no idea how well it does distinguish them however, surely it depends on the kind of molecules. These fingerprints however do not distinguish stereoisomers, though I have seen that the RDKit implemented it in a different manner that might distinguish some stereoisomers as well. $\endgroup$
    – stanton63
    Jul 29, 2022 at 23:07

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .