Hi All,

This is an interesting topic for me as I also have use for canonical
hydrogens. For this reason I have made a function for prochiral
assignment to RDKit (C++ side). It uses CIPRanks (from
AssignStereochemistry) as starting ranks, but I think it could
probably use the ranks from the new canonicalization algorithm as
well. I have not tried this yet, and don't know if the
pro-S/pro-R-assignment will be the same as with the CIPRank-based
(personally, I don't need the "IUPAC-correct" assignments as long as
the hydrogen canonicalization is consistent). Anyway, if there is
interest, I can make a pull request, but I have to clean it up a
little first.

Best,
Juuso Lehtivarjo

On Thu, Mar 10, 2016 at 9:29 PM, Brian Kelley <fustiga...@gmail.com> wrote:
> No, prochiral atoms have the same rank.  Your question got me thinking to
> how we could detect prochiral atoms, here is the stupidest/simplest solution
> I could come up with, it changes isotopes on every atom until a new chiral
> center is added, this atom is considered prochiral:
>
> def numUnspecifiedStereoAtoms(mol):
>     """Return the number of unspecified stereo atoms in a molecule"""
>     return len([atom for atom in mol.GetAtoms() if
>                 ("_ChiralityPossible" in atom.GetPropNames() and
>                  atom.GetChiralTag() ==
> Chem.rdchem.ChiralType.CHI_UNSPECIFIED)])
>
> def findProchiral(m):
>     """Return indices of prochiral atoms, to find prochiral hydrogens,
>     hydrogens must appear in the graph, see Chem.AddHs"""
>     indices = [ atom.GetIdx() for atom in m.GetAtoms() ]
>     tags = [atom.GetChiralTag() for atom in m.GetAtoms()]
>     num_unspecified = numUnspecifiedStereoAtoms(m)
>     prochiral = []
>     for index in indices:
>         m2 = Chem.Mol(m)
>         m2.GetAtomWithIdx(index).SetIsotope(2)
>         m3 = Chem.MolFromSmiles(Chem.MolToSmiles(m2, isomericSmiles=True))
>         if numUnspecifiedStereoAtoms(m3) != num_unspecified:
>             prochiral.append(index)
>
>
>     return prochiral
>
> print findProchiral(Chem.AddHs(Chem.MolFromSmiles("C1C(C(N)=O)=CNC=C1")))
>
> On Thu, Mar 10, 2016 at 11:30 AM, Peter S. Shenkin <shen...@gmail.com>
> wrote:
>>
>> Is the canonical rank of prochiral H's different or the same? (For example
>> the rank of the H's on C-1 of ethyl chloride.)
>>
>> Thanks,
>> -P.
>>
>>
>> ------------------------------------------------------------------------------
>> Transform Data into Opportunity.
>> Accelerate data analysis in your applications with
>> Intel Data Analytics Acceleration Library.
>> Click to learn more.
>> http://pubads.g.doubleclick.net/gampad/clk?id=278785111&iu=/4140
>> _______________________________________________
>> Rdkit-discuss mailing list
>> Rdkit-discuss@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
>>
>
>
> ------------------------------------------------------------------------------
> Transform Data into Opportunity.
> Accelerate data analysis in your applications with
> Intel Data Analytics Acceleration Library.
> Click to learn more.
> http://pubads.g.doubleclick.net/gampad/clk?id=278785111&iu=/4140
> _______________________________________________
> Rdkit-discuss mailing list
> Rdkit-discuss@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
>

------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785111&iu=/4140
_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to