Greg,

That fixed it! Thanks so much, that makes a lot more sense now.

-Chris

On Fri, Oct 6, 2017 at 1:25 AM, Greg Landrum <greg.land...@gmail.com> wrote:

> Hi Chris,
>
> There's an additional step performed during sanitization that recognizes
> that the implicit H needs to be on the N. The steps of a normal full
> molecular sanitization operation are documented here:
> http://www.rdkit.org/docs/RDKit_Book.html#molecular-sanitization
>
> The adjustHs() function is not exposed directly to Python, but you can
> take care of aromaticity assignment and adjustHs in a single call with the
> SanitizeMol() function:
>
> In [21]: m = Chem.MolFromMolBlock(mb,sanitize=False)
>
> In [22]: Chem.SanitizeMol(m,sanitizeOps=Chem.SANITIZE_SETAROMATICITY|
> Chem.SANITIZE_ADJUSTHS)
> Out[22]: rdkit.Chem.rdmolops.SanitizeFlags.SANITIZE_NONE
>
> In [23]: Chem.MolToSmiles(m)
> Out[23]: 'CC(C)c1cccc2c(Cl)cc(-c3ccc(-c4ccc(C(=O)O)cc4)[nH]3)nc12'
>
> I highlighted the N in the heterocyle with the implicit H.
>
> Hopefully this helps.
>
> Best,
> -greg
> p.s. Note: while testing parts of this answer I uncovered a bug in
> AdjustHs() that causes it to fail for molecules that include atoms with
> "bad valences": https://github.com/rdkit/rdkit/issues/1605 This looks
> like it should be easy to fix for the upcoming release.
>
>
> On Thu, Oct 5, 2017 at 11:06 PM, Chris Murphy <
> chris.mur...@schrodinger.com> wrote:
>
>> Hi!
>>
>> I'm running at an issue with implicit hydrogens on aromatic heteroatoms.
>> I am feeding the following sdf into a mol object:
>>
>>
>>   Mrv16c5 10021719092D
>>
>>  28 31  0  0  0  0            999 V2000
>>    -2.9000    0.2076    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>    -2.1871    0.6228    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0
>>     0.0063    0.2957    0.0000 N   0  0  0  0  0  0  0  0  0  0  0  0
>>    -0.7486    0.6354    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>    -1.4657    0.2118    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>     0.5599    0.9164    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>    -2.9000   -0.6228    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>    -2.1829   -1.0380    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>    -1.4657   -0.6228    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>    -3.6214    0.6228    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>    -0.6731    1.4574    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>     0.1405    1.6335    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>     3.8646    0.5976    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>     1.3860    0.8367    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>     3.0384    0.6731    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>     4.3469    1.2687    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
>>     1.7257    0.0818    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>     1.8641    1.5161    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>     2.6861    1.4322    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>     2.5477   -0.0021    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>    -2.1829   -1.8683    0.0000 Cl  0  0  0  0  0  0  0  0  0  0  0  0
>>    -3.6297    1.4532    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>     4.2085   -0.1656    0.0000 O   0  0  0  0  0  0  0  0  0  0  0  0
>>    -3.6214   -1.0463    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>    -4.3385    0.1992    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>    -4.3385   -0.6311    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>    -4.3469    1.8600    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>    -2.9042    1.8683    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0
>>   2  1  1  0  0  0  0
>>   3  4  1  0  0  0  0
>>   4  5  1  0  0  0  0
>>   5  2  2  0  0  0  0
>>   6  3  1  0  0  0  0
>>   7  1  1  0  0  0  0
>>   8  7  1  0  0  0  0
>>   9  8  2  0  0  0  0
>>  10  1  2  0  0  0  0
>>  11  4  2  0  0  0  0
>>  12 11  1  0  0  0  0
>>  13 15  1  0  0  0  0
>>  14  6  1  0  0  0  0
>>  15 19  1  0  0  0  0
>>  16 13  2  0  0  0  0
>>  17 14  2  0  0  0  0
>>  18 14  1  0  0  0  0
>>  19 18  2  0  0  0  0
>>  20 17  1  0  0  0  0
>>  21  8  1  0  0  0  0
>>  22 10  1  0  0  0  0
>>  23 13  1  0  0  0  0
>>  24  7  2  0  0  0  0
>>  25 10  1  0  0  0  0
>>  26 25  2  0  0  0  0
>>  27 22  1  0  0  0  0
>>  28 22  1  0  0  0  0
>>  24 26  1  0  0  0  0
>>   9  5  1  0  0  0  0
>>   6 12  2  0  0  0  0
>>  20 15  2  0  0  0  0
>> M  END
>> $$$$
>>
>> The nitrogen in the heterocycle should have 1 implicit hydrogen on it,
>> and when I look at it after initially creating the mol object, it does. I
>> want to convert it to aromatic form, so I am calling
>> rdmolops.SetAromatize(mol). Once I do this however, it seems that the
>> implicit hydrogen on the nitrogen is removed, which then causes an error to
>> be thrown if I ever try to convert it back to kekule form or do any kind of
>> sanitization. Maybe my understanding of aromaticity is wrong, but shouldn't
>> the hydrogen be on the nitrogen regardless of whether or not it is
>> considered to be in an aromatic form?
>>
>> I could be misunderstanding rdkit's aromaticity models, but for my
>> purposes, I want to be able to convert the mol to either kekule or aromatic
>> form depending on some configuration settings. Is there a way to manipulate
>> the hydogrens on an atom in this case?
>>
>> Thanks!
>> Chris
>>
>> ------------------------------------------------------------
>> ------------------
>> 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
>> Rdkit-discuss@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
>>
>>
>
------------------------------------------------------------------------------
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
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to