logP - more detailed information

User 568550d85a

06-05-2009 16:14:00

Hello


I tried to understand the logP calculation settings/types better. I looked at the user and the developers guide but got stuck... Therefore I have some questions:


1) There are 3 models to calculate the logP (VG, KLOP, PHYSPROP). Which of them is the most "common" (used in literature)? If I choose the "weighted" option, which model is taken in the end? The one with the least incertitude?


2) There are logPnonIonic, logPMicro, logDpI and logPTrue.



Is this correct? And which criterions are used to find out the logPTrue (the most typical of the above?)


3) I have a small test program


public static void main(String[] args) throws Exception {
        String[] sarr = {"OC(=O)CC","CCCNCCC"};
        logPPlugin lp = new logPPlugin();
lp.setlogPMethod(METHOD_WEIGHTED);
        for (int i = 0; i < sarr.length; i++) {
            Molecule m = new MolHandler(sarr).getMolecule();
            lp.setMolecule(m);
            lp.run();
            System.out.println(sarr + " " + lp.getlogPNonionic()
                    + " " + lp.getlogPMicro()
                    + " "  + lp.getlogDpI()
                    + " " + lp.getlogPTrue());
        }


the output is:


OC(=O)CC NaN NaN NaN 0.47719013266666666
CCCNCCC NaN NaN NaN 1.5657822276666666
What did I do wrong?

Many thanks in advance for your time.
lorenz


 



 

User 851ac690a0

11-05-2009 08:41:03

Hi,


 


1) There are 3 models to calculate the logP
(VG, KLOP, PHYSPROP). Which of them is the most "common" (used in
literature)?


These logP methods were developed by us based partly on the atom types given in reference 1.   The three abrevations only refer to the appropiate training logP data set according to the next references.



  1. Viswanadhan, V. N.; Ghose, A. K.; Revankar, G. R. and Robins, R. K., J.Chem.Inf.Comput.Sci., 1989, 29, 3, 163-172;

  2. Klopman, G.; Li, Ju-Yun.; Wang, S.; Dimayuga, M.: J.Chem.Inf.Comput.Sci., 1994, 34, 752;

  3. PhysProp© database


Here is a review from 'the most common' methods:


J.Pharm.Sci., DOI 10.1002/jps.21494 . Published online in Wiley InterScience, 2008


 


If I choose the "weighted" option, which model is taken in
the end? The one with the least incertitude?


Weighted method is a combination of the above three logP calclulations. Weigth is equal (1/3) by default setting. The calculated logP in this way will be the arithmetic avarage of the three methods.The weighted method usually provides more reliable logP value than one of the three separate methods.



2) There are logPnonIonic, logPMicro, logDpI and logPTrue.
logPMicro is the logP of the input structure (ion or not).
logPnonIonic is the logP of the uncharged structure (ionized structures are neutralized).
logDpI is the logP at the isoelectric point of the structure


Is this correct?


Yes you are right.


And which criterions are used to find out the logPTrue (the most typical of the above?)


If the 'submitted molecule' is monoprotic acididic or basic type then the "logP" of the uncharged form is calculated.


If the 'submitted molecule' is ampholite/zwitterion then the "logD" is calculated.


Here is a 'good' reference about the "logP" of ampholytes/zwitterions:


Pagliara et.al., Chem.Rev. 1997, 97, 3385-3400


 


3) I have a small test program


One of  our plugin developer will  respond to this question.



Jozsi

User 568550d85a

11-05-2009 09:38:23

Dear Jozsi,


Thank you very much for that information. I would be really nice if you could update your API documentation correspondingly.


lori

ChemAxon e08c317633

15-05-2009 15:48:31











lb02f962 wrote:

3) I have a small test program


public static void main(String[] args) throws Exception {
        String[] sarr = {"OC(=O)CC","CCCNCCC"};
        logPPlugin lp = new logPPlugin();
lp.setlogPMethod(METHOD_WEIGHTED);
        for (int i = 0; i < sarr.length; i++) {
            Molecule m = new MolHandler(sarr).getMolecule();
            lp.setMolecule(m);
            lp.run();
            System.out.println(sarr + " " + lp.getlogPNonionic()
                    + " " + lp.getlogPMicro()
                    + " "  + lp.getlogDpI()
                    + " " + lp.getlogPTrue());
        }


the output is:


OC(=O)CC NaN NaN NaN 0.47719013266666666
CCCNCCC NaN NaN NaN 1.5657822276666666
What did I do wrong? 



Hi,


Check the code example in the logPPlugin API documentation header.


Use the setUserTypes(String) method to set the calculation types.


Possible types: logP,logPTrue,logPMicro,logPNonionic,logDpI (logP means all of, logPTrue means the most typical of logPMicro,logPNonionic,logDpI which exists for the input molecule) multiple values should be separated by "," (e.g.: "logPTrue,logPNonionic,logDpI").


The getlogPNonionic(), getlogPMicro(), getlogDpI() and getlogPTrue() methods will return the correct results if the corresponding types are set with the setUserTypes(String) method.


I hope this helps,


Zsolt

User 568550d85a

18-05-2009 09:20:08










Zsolt wrote:













Hi,


Check the code example in the logPPlugin API documentation header.


Use the setUserTypes(String) method to set the calculation types.


Possible types: logP,logPTrue,logPMicro,logPNonionic,logDpI (logP means all of, logPTrue means the most typical of logPMicro,logPNonionic,logDpI which exists for the input molecule) multiple values should be separated by "," (e.g.: "logPTrue,logPNonionic,logDpI").


The getlogPNonionic(), getlogPMicro(), getlogDpI() and getlogPTrue() methods will return the correct results if the corresponding types are set with the setUserTypes(String) method.


I hope this helps,


Zsolt



Hello


Thanks for the information, it works now.


What looks strange to me is: "logPTrue()  Returns the most typical logP among logD at pI, micro logP and nonionic logP.". So if logPTrue is calculated at least one of logP, logDpI or logPNonionic should be not "NaN"?


Then it would be nice if in the API Documentation the "default" values would be mentioned somewhere (at least setUserTypes("logPTrue") obviously...). It very nice that the literature reference is already there.


thanks


lori

ChemAxon e08c317633

25-05-2009 12:03:43










lb02f962 wrote:










 

What looks strange to me is: "logPTrue()  Returns the most typical logP among logD at pI, micro logP and nonionic logP.". So if logPTrue is calculated at least one of logP, logDpI or logPNonionic should be not "NaN"?



You are right, it should work that way, but now only for the explicitly set result types will be returned a non NaN value. We will revise the logPPlugin API at a later date.


Zsolt