1. I want to compare to molecules listing their common substructures graph and their
un-commom substructures graph. How can i do this kind of comparison with chemaxon API.
2. Is it possible with fingerprints?
thanks in advance.
1, I suggest to use the MCS class. This will find the largest common subgraph of the two input molecules. If, how ever, you would like to find all common subgraphs (above a certain size) then this won't work for you. Besides, it doe snot provide direct methods to retrieve the "un-common" subgraph. This feature, however, has been planned to add to the API for a while to as we received quite a few request for that. At present this task has not yet been scheduled though.
2, Fingerprinting is not used in MCS search. Using fingerprint to find the common subgraph, well, our fingerprint are not directly suitable for that. They encode subgraphs, but the coding is just one way, from structure to fingerprint. There's no possible algorithm to do it backwards, ie. find the fragment, subgraphs from the fingerprints.
Can you tell us what is the original, higher level problem you are trying to tackle? Though we are a tool-kit company yet we are eager to learn for what purposes and how our tools are used. We may even develop the full solution if the problem appears to be general enough.
We have a research project in my lab that work in in the filed of molecular similarity between small compounds. the idea is to correlate small changes in molecules (graph parts of the molecules) to other properties of the molecules and activity. We need a program that enumarate the common parts (included small parts (Atoms))of two compounds. Also, We need to identified the parts and subgraph that are differents between this two molecules (). Is only as a research project. We are now considering the most proeficient API to do this work. Is is posible to enumerate al the parts of a compounds and the make a comparison for each part?.
The idea of the fingerprints it only a short and fast comparison between these two molecules, because if they are very distance (disimilarity) we don't want to compare them.
Thanks for your help
Your idea to speed up things with some fingerprint based pre-filtering should help a lot.
I don't quite understand what do you mean by "enumerate al the parts of a compounds" - does it refer to disconnected fragments in the molecular structure, or you mean disconnected MCES?
The idea of my research is to enumarate all posible fragments of a two small molecules. (I think that this procedure is the same that the klurtor program used to generate the hiretical cluster between compounds). Then with the small fragment I run a comparison bettween the molecules, Each fragment of one molecule is compared with each fragment of the other molecule. With this procedure we identified the common fragments (parts or groups) and un-commons fragments between molecules.
This is my idea.
How can i do this kind of work with the Chemaxon API?
Thanks in advance.
JKlustor is not suitable for generating fragments of molecules. For that purposes you may need to use the Fragmenter tool instead. I recommend to use the CCQ fragmentation to obtain meaningful small fragments. You don't need to write program and use the API, this functionality is available in the command line.
You can compare these small fragments against each other using the jcsearch tool, though this will be a computationally intensive procedure. If, however, the two sets of structures to be compared is reasonable small (less than 1000 structures) then this should be doable.
Thanks for your answer. I will look for your solution.
Thanks in advance