Pmapper and charges

User f0ce5b6b5a

31-01-2005 17:02:44

Hello everyone,

I am currently testing your pharmacophore API, and I have some questions about it, as I had some problems with cations.

First, in the pharmacophore XML configuration file, the cations are defined like that :
<AtomSet ID="Cationic" Symbol="+">

<![CDATA[ max(ioncharge) > 0.4 ]]>
I don't see why the charge is set to 0.4 ... Isn't it supposed to be either 0 or 1 ?

My second question is about pmapper.

I've tried to use it with the "jchem/examples/config/pharma-calc.xml" file and with this molecule (ph 7) :

"CN=C(N)N". The result was "h;a;h;a/d;a/d".

But at this ph, the first nitrogen should be a cation. Is there a modification to make in the pharma-calc.xml file to get this right ?

Thanks in advance for your answers :)

ChemAxon efa1591b5a

01-02-2005 17:05:31


regarding charge threshold 0.4: I admit that 0.4 is somewhat arbitrary, though we found it appropriate in most tests. The ioncharge function calculates partial atomic charges that are rarely integers like 0 or 1. Positive or negative partial charges are spread in the vicinity of the atom in question.

If your experiments reveal that 0.4 is not suitable for your particular set of structures just modify this threshold according to your needs.

Regarding your second question about amine nitrogens: it is not an obvious to task to define pharmacophoric properties of these atoms. For instance ab initio models reveal that the positive charge on the first nitrogen you refer to spread over hydrogens and the carbon atom.

However, if you want to assign this + charge to the nitrogen you can modify the pharma-calc.xml configuration file. This file is just an example of 'how-to-use' and we are aware of its inaccuracies and incompleteness.

On the other hand, if you look at pharma-frag.xml, you find the following definition:

<AtomSet ID="Cationic" Symbol="+">

<![CDATA[ !neg && ((pos && !nitro:1) || ((amine:1 || hydrazine || amidine:2,3) && !(tertamine:1 || amide:1 || nitro:1 || aniline:1 || phenylhydrazine:2))) ]]>


Which defines both primary and tertiary amine nitrogens cationic. So if you run

pmapper -c pharma-frag.xml

for your input structure "CN=C(N)N" you get:


which is perhaps closer to what you expected.

Our users found that a hybrid approach, where calculations of physico/chemical properties (like pKa, charge) are combined with fragment based property perception is very efficient. It is not rare that our initial, very simple set of rules is extended by some 70-100 specific rules.

Another way to tackel this problem is the extension of the cationic rule in the pharma-calc.xml configuration file. For instance:

<AtomSet ID="Cationic" Symbol="+">

<![CDATA[ max(ioncharge) >= 0.4 || pka > 7 ]]>


gives the following result:


To allow to use the pka function just add the following lines in the <Plugins> section of your xml file:

<Plugin ID="pka" Class="chemaxon.marvin.calculations.pKaPlugin">

<Param Name="pH" Value="7"/>

<Param Name="Type" Value="acidic"/>


In your particular structure delocalization raises further problems. The structure has four equally feasible resonance form that are not handled properly by such simple rule.

Yet another idea, based on the empirical result obtained from ab initio calculation I mentioned above is to calculate accumulated charges for each atom.

<Plugin ID="ioncharge" Class="chemaxon.marvin.calculations.IonChargePlugin">

<Param Name="pH" Value="7"/>

<Param Name="max-ions" Value="8"/>

<Param Name="charge-type" Value="accumulated"/>


This adds charges on hydrogens to charge on the atom, thus it works well in cases where the atom is protonated, e.g. in your example.

I hope these examples provide some help. Apparently, they will not solve all your problems but they may give you some hints how to tackle the problem you are facing with.