On 8/16/10 7:39 AM, eiso wrote:
> hi,
>
> I'm looking for some convenient standard atom naming scheme that I
> could use for assigning (1H) NMR resonances on a large set of compounds.
>
> Preferably, atoms that are topologically similar and/or are chemically
> and or magnetically equivalent would have similar names (or root names),
> for example the protons of a single methylgroup, equivalent protons
> of rotating aromatic groups (like PHE/TYR HD/HE).
>
> My initial thoughts run in this direction:
>
> * generate cansmi (to be independent of how the input format is specified)
>
> * name heavy atoms numerically or alphabetically following the smiles string 
> or
>     molecular tree from the start, preferably taking symmetries in the 
> molecule
>     into account (but how?).

When you generate a canonical SMILES, a string is created that lists the atoms' 
order in that SMILES.  The relevant code in smilesformat.cpp is this:

     if (canonical && !mol.HasData("Canonical Atom Order")) {
       OBPairData *canData = new OBPairData;
       canData->SetAttribute("Canonical Atom Order");
       canData->SetValue(m2s.GetOutputOrder());
       mol.SetData(canData);
     }

It is a space-separated string with the atom->GetIdx() value of each atom in 
canonical order.

> First and last point are trivial I guess, but the middle point seems to
> be quite tricky. I'm probably not the first with this problem, so if anyone
> knows software that does something similar or has suggestions how to approach
> this, I would be very grateful.

I hope this is what you are looking for.

Craig

------------------------------------------------------------------------------
This SF.net email is sponsored by 

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
_______________________________________________
OpenBabel-discuss mailing list
OpenBabel-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-discuss

Reply via email to