On Feb 7, 2017, at 19:02, Curt Fischer <curt.r.fisc...@gmail.com> wrote:
> My ultimate goal is an easy way to create rdkit molecules that have isotopic 
> substitutions but which are otherwise exactly the same as non-substituted 
> variants.  What's the best approach?  Is it to directly call .SetIsotope() 
> like I do above?


There are other solutions. For example, you can ask RDKit to generate the 
SMILES with all explicit hydrogens.

>>> Chem.MolToSmiles(mol, allHsExplicit=True)

It's then trivial to manipulate the SMILES syntax at the string level to set an 

>  This requires figuring out the rdkit atom index of my target atom, which is 
> doable but perhaps (?) overly complicated?

It comes down to how you want to specify the target atom.

If it's the position of the atom in the SMILES string, then it's (almost) 
trivial - the atom index is the index of the term in the SMILES string, minus 
any '[H]' terms.

If you specify the target atom with a SMARTS then use RDKit's SMARTS matching 
to get the atom indices.

>   Converting to InChI and back seems to avoid the problem, I guess because 
> MolToInchi() has a removeHs parameter that defaults to True.  That also seems 
> a bit hack-ish but I'm not sure what the best approach is.

I don't understand how that avoids any problem. How do you specify the target 
atom for that case?

In any case, won't the InChI normalization affect some of your structures 
(e.g., detaching metals) and make it even harder to specify isotopes?


Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
Rdkit-discuss mailing list

Reply via email to