User bef34fe65b
09-05-2015 05:59:15
Hi.
I'm totally new to this subject so maybe this case will be a little too basic. The truth is that any advice would help me a lot.
This is the picture. I'll take a SBML file describing a metabolic network, and associate a SMILES string to each compound. The idea is to write some code in javascript to open the SBML file, read the SMILES and the reactions between them, and draw the metabolic network in a coordinate system. Compounds in the Y axis will be classified by the existence of certain functional group, and in the X axis they will be ordered by their number of carbon atoms and their order in the molecule. So isomers have their own positions.
And that's it. I'm not sure if SMILES is an appropriate choice to do this. What do you think?
Any comment would be appreciated.
Regards.
Ps: example attached.
ChemAxon 2cd598e7ad
12-05-2015 11:49:43
Hi,
If I got it well you also write the SBML file yourself, right? In this case I can see no objection to use SMILES (or any other chemical file format) as far as it can represent the compounds. Please, clarify the question if I understood it wrong.
Regards, Domi
User bef34fe65b
02-06-2015 01:12:53
Hi Domi.
Thanks for taking the time. You got me right, but for now i'm just going to take a published SBML file and complete them little by little with the SMILES codes. Like in the chart I attached, I'm just planning to draw a subset of compounds: from 1 to 4 or 5 carbon atoms in the X axis.
I feel a little lost on the way of doing this. Thanks to you I know now that SMILES can handle such data, but don't know where to start. I'd like to do it in Javascript, but can't find any library. Maybe the point is that the algorithms are just to easy to code if you are familiar with this, but I'm not sure because I've never worked with SMILES. Maybe there are libraries, and I just didn't find them.. I don't want to reinvent the wheel if you know what i mean.
Do you have any clue of where can I learn about this?
Regards.
JPS
ChemAxon a202a732bf
02-06-2015 06:25:02
User bef34fe65b
03-06-2015 22:40:02
Thanks Zsuzsa.
I need basically three things that i'm not sure I can do with the ChemAxon library:
- Get the number of carbon atoms in the carbon skeleton of a compound.
- In the case of isomers, identify in which carbon atom - of the linear skeleton - the isomerism is produced.
- Pass a smiles string representing a functional group, and get the number of times the functional group is present in a compound.
Is that possible?
Thanks in advance.
Regards
JPS
ChemAxon a202a732bf
05-06-2015 12:20:53
Hi JPS,
Regarding your first two questions I can advice you to use our Structure Representation API (chemaxon.struc package described at https://www.chemaxon.com/jchem/doc/dev/java/api/) that helps you to handle the chemical graph properties of a molecule like connectivity and atom types. You can import the SMILES string into this representation using the MolImporter API that I recommended earlier.
I can not advice you on an algorithm to find the Carbon skeleton of a molecule or find isomerism, I can answer only specific questions regarding our products and API.
Regarding your third question, it can be performed by the Substructure Search API (class chemaxon.sss.search.Search in the API) for which you can apply for a free academic license that is valid for two years.
Regards,
Zsuzsa
User 870ab5b546
13-06-2015 08:36:15
You might be interested in our functional group finder. Submit a compound to see how we've defined various functional groups in SMILES or SMARTS. We use JChem methods to search for the substructures in given compounds.
Your statement, "In the case of isomers, identify in which carbon atom - of the linear skeleton - the isomerism is produced," doesn't make much sense unless you're talking only about epimers (stereoisomers that differ in configuration at a single stereogenic C atom). If you know that two compounds A and B are epimers at a single position, then you can write an algorithm that finds each stereocenter in A and, for each one, removes the specification of its configuration (e.g., by changing a bold or hashed bond to a regular single bond) and then compares target B to query modified-A; if they match, then that stereocenter differed in A and B.