Method "isSimilarTo" in chemaxon.struc.CGraph

User ceb580837f

10-03-2006 13:53:42

jchem3[1].1.5 is in use!





Dear Sirs,





with regard to the above mentioned class (in a great package) I have a


question! The function of this class is either not completely clear to


me or it has mistakes!





First the elucidation of the method:


> is the method made to make a comparison between two structures and give only "true" if two molecules are completely identical?





Second could there be mistakes in your program


> when I apply this method for the comparison of two structures, especially with five-membered aromatic rings, it returns "true" for for examples the molecules 1 and 2 and a similar result is obtained for the molecule 3 and 4.


Although the properties, like aromaticity, atom count, bond count,


etc. are identical these molecules clearly differ in connectivity and


can not be treated as chemically identical.





The result was especially surprising since the same method was applied


to - for example structure 5 and 6. In this case the molecule has


completely identical properties (3xN, 3xC, aromaticity, etc) but only


differs in connectivity. And as said in this case the method returned


false. So finally the method seemed not really consistent to me and I


have the suspicion on a mistake in the method.





Thanks for your answer in advance,


Ruud van Deursen

ChemAxon a3d59b832c

12-03-2006 08:16:00

Dear Ruud,





We will check the mentioned method. For deciding the equality of two molecules, I recommend the chemaxon.sss.search.MolSearch class with PERFECT search type:


Code:



              Molecule qMol, tMol;





              // ...





              MolSearch s = new MolSearch();





              s.setSearchType(SearchConstants.PERFECT);


              s.setQuery(qMol);


              s.setTarget(tMol);





              if(s.isMatching()) {


                  // equal


              }








The molecules have to be aromatized before passed to MolSearch. See the documentation for further details:


http://www.chemaxon.com/jchem/doc/api/chemaxon/sss/search/MolSearch.html





Best regards,


Szabolcs

ChemAxon a3d59b832c

12-03-2006 16:10:31

... Or if you are looking for a way to measure relative similarity between molecules (e.g. chemical Tanimoto similarity), you should use


the JChem Screen package:





http://www.chemaxon.com/products.html#Screen





Screen generates descriptors from molecules, for example chemical or pharmacophore fingerprints and (dis)similarity functions or metrics are used to measure similarity between these descriptors. See the above link for details.





Best regards,


Szabolcs

User ef5e605ae6

14-03-2006 09:58:57

Thank you for reporting the bug. It has been hidden for long because the isSimilarTo method is only used in one marvin class and called only in a special case. I fixed it, the bugfix will appear in Marvin 4.1 (or the next 4.1 beta).
Spook1979 wrote:
when I apply this method for the comparison of two structures, especially with five-membered aromatic rings, it returns "true" for for examples the molecules 1 and 2 and a similar result is obtained for the molecule 3 and 4.
Now it returns false in both cases.


Peter