I use PMapper to map this molecule (jchem3.0.13_pre1):
using this smile :
The three nitrogens of the triazole are returned, but it seems to me that one of them has an implicit H. Does PMapper takes the implicit H into account ?
If not, is there I way for me to distinguish the nitrogens of the triazole ring ?
Looking deeper the pb it seems both jchem and marvin never see any implicit H on the nitrogen of any pyrrol ring.
eg : COc1cc2c(CCNC(C)=O)cnc2cc1Cl
When I ask marvin (marvinView 3.5.7) to display explicitly the hydrogens, no hydrogen appears on the aromaric N.
Just a short reply why the following SMILES has no implicit H on the aromatic N:
The problem is the following:
The N in the pyrrol should be written as:
c1cc[nH]c1. (With implicit H, explicitly written.)
Let's take an example where the situation is not obvious (kekule form):
If you aromatize the molecule, the implicit H should be written explicitly to avoid ambiguity:
Cc1c[nH]cn1 (if the implicit H is not written explicitly it is not possible to tell which aromatic N should get the implicit H).
So to generalise the situation we use the following rules is SMILES:
Aromatic N with no implicit H should be written as: n,
aromatic N with implicit H should be written as [nH].
I agree, that in some situation (like the one you've presented) it is possible to detect that an aromatic N has implicit H, but this would slow down the import definitely. We would like to avoid this.
Moreover I have also checked that Daylight gives an error if you would like to convert the molecule c1ccnc1 to canonical SMILES (http://www.daylight.com/daycgi_tutorials/cansmi.cgi):
|ERROR (CANSMI): Can't interpret SMILES "c1ccnc1" |
As Miklos pointed out, one reason for the loss of H may be that in molfiles the impicit hydrogens on aromatic nitrogens cannot be specified, and your smiles may come from such a source.
We have made a non-standard solution for this which is available since Marvin 4.0.2 and JChem 3.1.2. See details here:
Here is a workaround that transforms the implicit H-s on pyrrole-type rings:
Here is an application of this to your case:
standardize -c "[n:1]1nncc1>>[H:2][n:1]1nncc1" "COc1cc2nnnc2cc1C(=O)NCC3CCCN3CC=C" COc1cc2[nH]nnc2cc1C(=O)NCC3CCCN3CC=C
or with dearomatization:
standardize -c "[n:1]1nncc1>>[H:2][n:1]1nncc1..dearomatize" "COc1cc2nnnc2cc1C(=O)NCC3CCCN3CC=C"
I have tested this with JChem3.1.5 but it may work with JChem3.0.x as well.