LogP Calculation using logPPlugin

User fe5cbe5ff5

29-07-2008 18:13:12


I am using the Calculator plugins in JChem 5.0.6 and I have written a simple java program that takes in a Smiles string for a compound and calculates its LogP value. Problem is, the logP values that my program is calculating from the getlogPTrue() method and the getlogPMicro() method are both not matching with the compounds actual logP value. So either I am using the wrong method or the methods are not calculating the right logP value for a compound, given its Smiles string. Please help! My program is as follows:

public class GetLogP {

public static void main(String args[]) {


Properties params = new Properties();

logPPlugin lplugin = new logPPlugin();





MolImporter mi = new MolImporter(new ByteArrayInputStream("O=C(O)[C@@H](N)Cc2c1ccccc1nc2".getBytes()));

Molecule target = mi.read();



double logp = lplugin.getlogPTrue();

double logpm = lplugin.getlogPMicro();

int count = target.getAtomCount();

double[] increments = new double[count];

for (int i=0; i < count; ++i) {

increments = lplugin.getAtomlogPIncrement(i);


System.out.println("True logP : "+logp);

System.out.println("Micro logP: "+logpm);

System.out.println("logP increments: ");

for (int i=0; i < count; ++i) {






catch(IOException ioe){


catch(PluginException pe){




ChemAxon e08c317633

31-07-2008 08:29:12


What are the values you get, and what do you expect?


User fe5cbe5ff5

31-07-2008 15:51:02

I tried the program with the smiles string for 'Phenylalanine' which is O=C(O)[C@@H](N)Cc1ccccc1

The value I got with the program is -3.88 and when I look it up in the web (chemspider.com) it is listing the ACD/LogP as 1.11 and XLogP as -1.40

So these are 3 different values and I don't know why there is a difference between the value my program is calculating and the values in Chemspider. Same is the case with a couple of other compounds like glucose and oleic.

User fe5cbe5ff5

31-07-2008 15:55:11

By the way, I forgot to mention that although my program shows that I set the ChlorideIonConcentration and the NaKIonConcentration to 0.2, I did change it to 0(zero).

User 851ac690a0

01-08-2008 10:54:32


Phenylalanine is a zwitterionic molecule. It is ionized in water at optional pH. This is why the "correct logP” depends strongly on the pH.

The next four microspecies may exist in aqueous solution in different amount at given pH.





The first unionized microspecies "NC(CC1=CC=CC=C1)C(O)=O" has a positive logP value which is approx. 1.0. This positive value is theoretically correct, however, the effect of the ionized microspecies on the logP omitted.

The "correct logP" can be calculated by considering the 4 microspecies in the solution.

The logPTrue() method calculates the "correct logP" in this way; therefore, the 4 microspecies mentioned above are accounted in the logP prediction.

The experimental logP of phenylalanine is between [-1.0] - [-1.6]. This value depends on the pH and the counter ion type/concentration.

The counter ion concentration usually between 0.05-0.1 mol/l. Try to set any value from this range for the chloride/sodium ion concentrations.


User fe5cbe5ff5

01-08-2008 20:02:34

Thank You! Your response was very helpful.