Obtaining the macro pKa's for a multiprotic compound

User 0cf6155cf3

21-07-2008 18:57:20

I am trying to figure out a way to determine the macro pKa's of a multiprotic compound using the pKa plugin calculator Java API.





AFAICT, all that you can do is determine the relative abundance of a given compound's microspecies at a specified pH.





What I would like to calculate would be the values pKa1, pKa2, and pKa3 (from equlibrium constants K1, K2, and K3) as found under section "6. Ionization Steps of the AH3 Molecule", on this web page:





http://chemaxon.com/marvin/help/calculations/pKa.html





Any help with figuring out how to use the API to compute these values would be greatly appreciated.





Kind regards,





~Tomer Altman


SRI, International

ChemAxon e08c317633

22-07-2008 15:14:54

You can use pKaPlugin.getSortedValues(int, double[], int[]) method for this.


Javadoc link: http://www.chemaxon.com/marvin/help/developer/beans/api/chemaxon/marvin/calculations/pKaPlugin.html#getSortedValues(int, double[], int[])





From the next minor version (Marvin 5.0.7) getMacropKaValues(int, double[], int[]) and getMacropKaValues(int) methods also will be available in pKaPlugin class for obtaining the macro pKa values.





Regards,


Zsolt

User 0cf6155cf3

22-07-2008 18:37:23

If I might clarify what you wrote:





* there is currently no way of directly obtaining the macro pKa values of a multiprotic compound using the Marvin API.





* currently, you can get a sorted list of a compound's microspecies' pKa values over a range of pH values.





* there will be a new feature in an upcoming release of Marvin that will allow for these macro pKa's to be obtained directly.





Is that correct?





Thanks,





~Tomer Altman


SRI, International

User 677b9c22ff

23-07-2008 03:52:02

Hi,


just for information, here is a list of 140 exp pka values


measured with CheqSol the chasing equilibrium mode.


The pkas are only in the publication.





http://pubs.acs.org/cgi-bin/sample.cgi/jcisd8/asap/pdf/ci800058v.pdf





The SMILES codes and SDFs can be found in the


solubility challange (ChemAxon taking part ?:-)


http://www-jmg.ch.cam.ac.uk/data/solubility/





So I would match the pkA of Diazoxide (8.63)


Clc1cc2S(=O)(=O)N=C(Nc2cc1)C





Marvin


id apKa1 apKa2 bpKa1 bpKa2 atoms


1 10.44 -0.36 -7.86 10,8,10





by sorting the Marvin values?





Anyway, if someone is interested in some more published


open datasets just drop a line here in the forum (need to dig it out) or maybe someone has some other collections


for testing.


See http://www.cheminformatics.org/ and


http://www.qsarworld.com/qsar-datasets.php








(The polarizability test with Marvin was pretty good, there was


a recent dataset of 400 compounds and Marvin had R^2 of 0.99 and pretty low standard error, only the unit conversion was a mess from


undocumented (au) in (A) or something. See here (supporting information are free):





Fast Approaches for Molecular Polarizability Calculations. Junmei Wang,* Xiang-Qun Xie, Tingjun Hou, and Xiaojie Xu.





http://pubs3.acs.org/acs/journals/supporting_information.page?in_manuscript=jp068423w








Cheers


Tobias

User 851ac690a0

23-07-2008 13:12:01

Hi,


Quote:
* there is currently no way of directly obtaining the macro pKa values of a multiprotic compound using the Marvin API.





* currently, you can get a sorted list of a compound's microspecies' pKa values over a range of pH values.





* there will be a new feature in an upcoming release of Marvin that will allow for these macro pKa's to be obtained directly.





Is that correct?


Currently you can calculate the macro pKa with this method:


pKaPlugin.getSortedValues(int, double[], int[])








Code:
// get the 3 strongest MACRO ACIDIC pKa values


       double[] acidicpKa = new double[3];


       int[] acidicIndexes = new int[3];


       plugin.getSortedValues(pKaPlugin.ACIDIC, acidicpKa, acidicIndexes);





// get the 3 strongest MACRO BASIC pKa values


       double[] basicpKa = new double[3];


       int[] basicIndexes = new int[3];


       plugin.getSortedValues(pKaPlugin.BASIC, basicpKa, basicIndexes);






This method (getSortedValues) has a strange name. I agree in this.





This is why in the next version we will rename (deprecate) it. In the next version this method will be available under the name of getMacropKaValues(int, double[], int[]) and getMacropKaValues(int) as well.








Jozsi

User 0cf6155cf3

23-07-2008 17:29:33

Hi Jozsi,





Thanks for your help & clarification.
Jozsi wrote:






This method (getSortedValues) has a strange name. I agree in this.





This is why in the next version we will rename (deprecate) it. In the next version this method will be available under the name of getMacropKaValues(int, double[], int[]) and getMacropKaValues(int) as well.





Jozsi
I don't mind the name, since there's only so much information that you can pack into a function/variable/method name. But I do wish that more effort was put into the JavaDoc API method & class descriptions. If you just had a short line explaining what getSortedValues does. The documentation mentions nothing of it returning the macro pKa values for a multi-protic molecule. Many of the method documentation entries are far too terse.