GL1X pKa values against experiment: a benchmark of a structure-based model on 365 measured values in 47 proteins
Bioinformatics LLC · October 2026 · measured with GL1X 3.4.0 (pH model gl1x-ph-1, unchanged through 3.4.2)
Abstract #
GL1X computes the pKa of every ionizable group of a protein structure, and from it the group's charge at the pH of the stomach, the intestine, blood and cell compartments, the protein's isoelectric point and its stability over pH. Until now its pKa values had been compared only with another program, PROPKA 3, which they follow at 0.69 pK units root-mean-square. We report the first comparison with experiment. From PKAD, a curated database of measured protein pKa values, we selected 368 single, well-defined values in 47 wild-type proteins, one per ionizable group, each checked against PKAD-3, PKAD-R and the abstract of its paper, with every exclusion recorded and its reason given; 365 of them received a GL1X value. Against a null model that leaves every group at its model pKa, GL1X is no more accurate overall: 0.88 against 0.91 pK units root-mean-square, a difference of −0.03 with a 95% interval of −0.19 to +0.15 over 2,000 bootstrap resamples of the proteins, and 81% of both within one unit. GL1X helps where groups are strongly shifted (1.82 against 2.64 for measured shifts of 1.5 units or more), for aspartates (0.75 against 1.12) and on crystal structures (0.86 against 0.99); it hurts for histidines, which it sets too low on average, for groups that are barely shifted, and on NMR models (0.95 against 0.54). It gets the direction of shifts of half a unit or more right for 120 of 168 groups, but its shifts run about twice the measured size. Eight of the ten largest errors are buried groups whose charged form the protein stabilizes, which GL1X's desolvation term pushes the other way. The data, the selection, every GL1X answer and the scripts that compute every table are published with the release.
1. Introduction #
A pKa computed from a structure is the quantity behind most of what GL1X's
pH environments report: a group's charge at a given pH, the net
charge and isoelectric point of the protein, the groups that change charge
between two compartments, and the free energy of folding as a function of
pH. The model, gl1x-ph-1, is empirical: each group starts at its model pKa,
the value of the free group in a pentapeptide (Thurlkill et al. 2006), and is
shifted by its burial in the protein (desolvation), by Coulomb interactions
with the other titratable groups, screened for ionic strength, and by
hydrogen bonds, with coupled groups solved together. Its parameters were
calibrated against PROPKA 3 (Olsson et al. 2011), whose values it reproduces
at 0.69 pK units root-mean-square over the benchmark structures of the
documentation.
Agreement with another program is not accuracy. A model of pKa shifts must in the end be judged against measured pKa values, and against the simplest alternative: a null model that ignores the structure and leaves every group at its model pKa. Because most groups at a protein's surface are shifted little, the null model is a demanding baseline; a predictor of shifts adds information only where it beats it.
This paper reports that test. Its contributions are a curated set of 365 measured pKa values in 47 proteins, with an explicit, recorded rule for each value kept or left out; a comparison of GL1X with the null model, by residue type and by subset, with uncertainty from resampling proteins; an analysis of the largest errors; and the complete data and scripts, so that every number can be recomputed. GL1X's model is unchanged by this study: recalibrating it against measured values is future work, and the benchmark is the yardstick for it.
2. Data #
2.1 Sources #
The values come from the wild-type table of PKAD (Pahari et al. 2019), read from its copy in the MCCE benchmarking repository (1,317 data rows with the PDB entry, chain, residue, pKa, method, salt, pH range, temperature and reference of each value). Every value was cross-checked against PKAD-3, the values of the KaML train/test split (331 of the 368 values selected appear there with the same value), and, where it could be read, against PKAD-R (32 values and 8 bounds agree exactly). The PubMed abstract of each of the 56 papers behind the values was read and every value checked against it: its stated number, whether the titration was single or multi-step, and the conditions. The full texts were not read.
2.2 Selection rules #
- Wild type only. Values measured on engineered variants are excluded.
- One value per group. When several references measured a group, the value kept comes from the reference that gives the most values for that protein (ties: the temperature nearest 25 °C, then the salt nearest 0.15 M). The others are kept as second measurements; they do not enter the metrics but give the experimental noise (section 4.6).
- Bounds (
<2.0,>12.0) are kept apart and scored only for consistency with the bound (section 4.5). - Single, well-defined values only. A value is left out when its source
says or shows that it is not one: a multi-step or biphasic titration, an
approximate value, an estimate from fitting a whole-protein titration
curve, a bound written as a number, or values that conflict between PKAD
entries for one paper or between PKAD and PKAD-3 (class
quality). - The deposited structure. A value is left out when it does not belong
to the structure used: a terminus the measured construct has and the
structure does not, protonation that happens only on acid denaturation,
or a state that cannot be assigned (class
scope). - Corrected values. Where an abstract states a single value that differs from PKAD's, the abstract's value is used (three cases, each by 0.1 unit).
- Conditions. PKAD's salt concentration stands for the ionic strength (exact for 1:1 salts; buffers are not counted). A salt range whose ends differ by a factor of 2 or less is replaced by its midpoint; wider ranges, missing and implausible values use GL1X's default of 0.15 M, and the row says so. Stated ionic strengths were snapped on a log scale to the nearest of 15 values from 0.01 to 2 M (at most about 20% away), so that groups could share calculations.
Of 531 rows considered, 368 are primary values, 43 second measurements, 33
bounds, and 87 were left out: 54 of class quality (among them the whole
data set of one xylanase whose abstract states that most of its groups
titrate in a complex way, the two-step titrations of ribonuclease HI Asp10
and Asp70, and the multi-step aspartates of human thioredoxin) and 33 of
class scope (among them the staphylococcal nuclease Δ+PHS variant). Each
decision is recorded with its reason in the data file.
2.3 Structures #
For each protein the PDB entry PKAD associates with the measurement was used, one entry for all its values: 47 entries, 36 crystal structures and 11 NMR structures, of which GL1X computes the first model. The only substitute is Sso7d, whose PKAD entries are DNA complexes; its free structure (1JIC) was used. GL1X computes the whole entry, so crystal copies and biological partners in the file take part in the calculation (84 values come from entries with other chains). Groups were matched by entry, chain, residue type and author residue number. Three groups that coordinate a metal ion in the crystal (barnase Glu60 a zinc, ribonuclease T1 Asp15 a calcium, the N-terminus of oxidized E. coli thioredoxin a copper) are held fixed by GL1X and get no pKa, which leaves 365 values.
3. Methods #
3.1 The calculations #
Each entry was analysed with GL1X's ph_environment tool on its MolNFT
record, at the ionic strength of the measurement and at 25 °C, the only
temperature the model computes at: 61 calls covering 60 entry and ionic
strength pairs, plus three checks on other structures of the same proteins
(hen lysozyme 4LZT and 1AKI, apo calbindin 1CLB), all on 17 October 2026.
Every answer reports model gl1x-ph-1. The 1,258 groups of the answers were
transcribed into tables and compared with the answers again by a script,
which found no difference in pKa or burial.
3.2 The null model #
The null model gives every group GL1X's own model pKa (Thurlkill et al.
2006), which every answer also reports as model_pka:
| Group | Asp | Glu | His | Cys | Tyr | Lys | N-terminus | C-terminus |
|---|---|---|---|---|---|---|---|---|
| Model pKa | 3.67 | 4.25 | 6.54 | 8.55 | 9.84 | 10.40 | 8.00 | 3.67 |
No arginine was measured in the selected set.
3.3 Metrics #
The error of a value is the computed pKa minus the measured one; its shift is the pKa minus the model pKa. Because the same model value is subtracted from both, an error of the shift equals an error of the pKa. We report the root-mean-square error (RMSE), the mean absolute error, the mean signed error, the fractions within 0.5 and 1 unit, and, for shifts, Pearson's r, the least-squares slope of the measured shift on GL1X's shift through the origin (1 means the right size on average) and how often the two have the same sign where the measured shift is at least 0.5.
3.4 Uncertainty #
Values of one protein share a structure and a laboratory, so they are not independent. Intervals come from 2,000 bootstrap resamples of the 47 proteins, each protein's values kept together (Efron & Tibshirani 1993; seed 20261017).
4. Results #
4.1 Overall #
| Quantity | GL1X | Null model |
|---|---|---|
| RMSE (pK units) | 0.88 (95% interval 0.75 to 1.03) | 0.91 (0.76 to 1.06) |
| Mean absolute error | 0.63 | 0.62 |
| Mean signed error | −0.23 | +0.00 |
| Within 0.5 unit | 52% | 55% |
| Within 1 unit | 81% | 81% |
The difference in RMSE, GL1X minus the null model, is −0.03 (95% interval −0.19 to +0.15). GL1X is closer to the measurement for 179 of the 365 groups. Its values are biased low by 0.23 units on average.
4.2 By residue type #
| Group | Values | RMSE, GL1X | RMSE, null | Within 1 unit, GL1X | Within 1 unit, null | Mean signed error, GL1X |
|---|---|---|---|---|---|---|
| Asp | 111 | 0.75 | 1.12 | 84% | 83% | −0.26 |
| Glu | 125 | 0.66 | 0.63 | 85% | 89% | −0.10 |
| His | 68 | 1.12 | 0.97 | 69% | 65% | −0.60 |
| Lys | 21 | 0.60 | 0.48 | 90% | 100% | +0.09 |
| Tyr | 16 | 1.01 | 1.04 | 62% | 62% | −0.67 |
| Cys | 4 | 3.62 | 2.22 | 25% | 0% | +2.02 |
| N-terminus | 9 | 0.59 | 0.59 | 89% | 78% | +0.04 |
| C-terminus | 11 | 0.50 | 0.76 | 91% | 82% | −0.06 |
GL1X clearly improves on the null model for aspartates and C-termini, comes out even for glutamates, tyrosines and N-termini, and does worse for histidines, lysines and the four cysteines.
4.3 Shifts #
| Group | Mean measured shift | Mean GL1X shift | Pearson r | Slope | Same sign (measured ≥ 0.5) |
|---|---|---|---|---|---|
| Asp | −0.09 | −0.35 | 0.77 | 0.96 | 38 of 49 |
| Glu | −0.11 | −0.21 | 0.38 | 0.44 | 33 of 45 |
| His | +0.22 | −0.38 | 0.35 | 0.23 | 28 of 45 |
| Lys | +0.19 | +0.29 | 0.27 | 0.32 | 6 of 7 |
| Tyr | +0.79 | +0.12 | 0.22 | 0.62 | 6 of 10 |
| Cys | −0.03 | +1.99 | −0.49 | −0.25 | 2 of 4 |
| N-terminus | −0.15 | −0.10 | 0.50 | 0.50 | 2 of 3 |
| C-terminus | −0.65 | −0.71 | 0.61 | 0.68 | 5 of 5 |
| All | −0.00 | −0.23 | 0.48 | 0.54 | 120 of 168 |
GL1X tracks the direction of shifts better than their size: a shift of one unit by GL1X goes with a measured shift of about half a unit on average (slope 0.54). Aspartates are the exception, tracked at the right size (slope 0.96, r 0.77). Measured histidines sit slightly above their model value, while GL1X puts them below it.
4.4 Subsets #
| Subset | Values | RMSE, GL1X | RMSE, null |
|---|---|---|---|
| measured shift of 1.5 units or more | 25 | 1.82 | 2.64 |
| measured shift of 0.5 to 1.5 | 143 | 0.96 | 0.90 |
| measured shift below 0.5 | 197 | 0.59 | 0.26 |
| crystal structures | 289 | 0.86 | 0.99 |
| NMR structures (first model) | 76 | 0.95 | 0.54 |
| GL1X burial below 0.1 | 218 | 0.64 | 0.60 |
| GL1X burial 0.1 to 0.3 | 112 | 0.74 | 0.89 |
| GL1X burial 0.3 or more | 35 | 1.95 | 1.98 |
| one chain in the calculation | 281 | 0.87 | 0.86 |
| other chains in the calculation | 84 | 0.94 | 1.05 |
| measured at 20–30 °C | 212 | 0.87 | 0.88 |
| ionic strength from the source | 244 | 0.92 | 0.91 |
| ionic strength not usable (0.15 M) | 121 | 0.80 | 0.91 |
| crystal structure, one chain, 20–30 °C, salt stated, not flagged | 73 | 0.87 | 1.06 |
Where the measured value lies within half a unit of the model value, GL1X's shifts are noise (0.59 against 0.26). On the first model of an NMR ensemble it does worse than no shift at all. Errors grow with burial for both models, and at burial 0.3 or more both are near 2 units. Values run at the default ionic strength do no worse than values with a stated one.
4.5 Bounds #
Of the 32 bounds with a GL1X value (<2.0, >11.5 and the like), GL1X lies
within the bound for 11 and the null model for 2. Bounds mark strongly
shifted groups; GL1X shifts 31 of the 32 toward their bound, most of them
not far enough.
4.6 Experimental noise and salt #
For 43 groups a second, independent measurement exists. The two measured values differ by 0.35 units root-mean-square (largest difference 1.40): the floor that any predictor faces on these data. For 27 of these pairs the two measurements were made at different ionic strengths. Between the two salts the measured values moved by 0.42 units root-mean-square, GL1X's by 0.77, and the two changes do not correlate (r −0.22). The pairs also differ in laboratory and often in temperature, so this suggests, without proving, that GL1X's response to salt is too strong.
4.7 The largest errors #
| Group | Structure | Measured | GL1X | Error, GL1X | Error, null | Likely reason |
|---|---|---|---|---|---|---|
| MsrA Cys72 | 2L90 (NMR) | 7.2 | 12.52 | +5.32 | +1.35 | Glu115 counted as a repelling charge; the paper reports a hydrogen bond from protonated Glu115 that lowers the pKa (Lim et al. 2012) |
| Creatine kinase Cys283 | 1I0E | 5.6 | 10.31 | +4.71 | +2.95 | desolvation (+1.94) outweighs the hydrogen bond to Ser285, worth at least 1.1 units by mutation (Wang et al. 2001) |
| PI-PLC His32 | 1PTD | 7.6 | 4.14 | −3.46 | −1.06 | active site at burial 0.75: desolvation −1.87; what raises it is not captured |
| Human thioredoxin Asp26 (reduced) | 1ERT | 9.9 | 6.62 | −3.28 | −6.23 | right direction (+2.95) but 3 units short; far closer than the null model |
| α-Sarcin His50 | 1DE3 (NMR) | 7.7 | 4.57 | −3.13 | −1.16 | active site; desolvation (−1.40) and Arg121 push it down |
| RNase A His12 | 7RSA | 6.2 | 3.27 | −2.93 | +0.34 | active site; strong coupling (−2.06) at 0.03 M, where screening is weak |
| T4 lysozyme His31 | 2LZM | 9.1 | 6.44 | −2.66 | −2.56 | salt bridge to Asp70 seen (+0.90) but cancelled by desolvation; measured at 10 °C |
| Barnase Glu73 | 1A2P | 2.1 | 4.49 | +2.39 | +2.15 | active site; desolvation (+1.90) outweighs Lys27, Arg83 and Tyr103 |
| Low-Mr PTP His72 | 1PNT | 9.19 | 6.89 | −2.30 | −2.65 | raised by Glu23 and Asp42, whose mutations lower it by 2.36 and 1.69 (Tishmack et al. 1997); GL1X's coupling is +0.90 |
| BPTI Tyr23 | 4PTI | 11.7 | 9.68 | −2.02 | −1.86 | buried, but GL1X's burial count saturates in a 58-residue protein (0.08) |
In eight of these ten cases the error has the sign of GL1X's burial term, which pushes a group toward its neutral form: buried histidines come out too low, buried cysteines and carboxylates too high. The groups most in error are active-site groups whose charged form (for thioredoxin Asp26 the neutral form) is stabilized by specific hydrogen bonds or ion pairs, effects that the model's pairwise terms are far too small to reproduce. The two exceptions are thioredoxin Asp26, shifted the right way but not far enough, and BPTI Tyr23, where GL1X sees almost no burial in a very small protein.
4.8 Hen lysozyme #
| Group | Measured | 2LZT, 0.15 M | 2LZT, 0.1 M | 2LZT, 0.02 M | 4LZT, 0.1 M | 1AKI, 0.15 M | Model pKa |
|---|---|---|---|---|---|---|---|
| Glu35 | 6.2 | 5.46 | 5.34 | 4.75 | 5.30 | 5.33 | 4.25 |
| Asp52 | 3.68 | 4.52 | 4.46 | 4.19 | 4.27 | 4.90 | 3.67 |
The two catalytic groups, measured by NMR at 34.85 °C (Bartik et al. 1994), are a common test of pKa models. GL1X raises Glu35 in the right direction but 0.7 to 0.9 units short; it raises Asp52 by 0.6 to 1.2 units although the measured value sits at the model value, an error the null model does not make. Three crystal structures of the same protein differ by up to 0.6 units for Asp52.
4.9 Robustness #
Putting back the 45 values that were left out as not single, well-defined pKa values but that have a number and a GL1X value gives the same answer: RMSE 1.23 for GL1X and 1.28 for the null model on them alone, 0.93 and 0.96 over all 410. For calbindin, measured without calcium but listed in PKAD with a calcium-bound crystal structure, the apo NMR structure (1CLB) gives 0.44 against 0.56 on the calcium-bound one (null model 0.52).
5. Discussion #
The benchmark answers a narrow question: does GL1X's structure-based shift improve on a group's model pKa? On these data, taken as a whole, it does not. The answer differs by group: GL1X earns its keep where groups are strongly shifted, for aspartates, and on crystal structures, and it loses ground where nothing is shifted, for histidines, and on NMR models.
Three properties of the model explain most of the pattern. Its shifts are too large, by about a factor of two on average, so that where little is shifted its shifts become errors, while strongly shifted groups gain from them. Its desolvation term treats burial as a push toward the neutral form, while in active sites the protein often stabilizes the charged form with specific interactions that a sum of pairwise terms cannot reach; this drives most of the largest errors and the low bias of histidines. And its response to ionic strength appears too strong. Each points to a direction for a recalibration: shrinking the shifts, revisiting the burial term for buried groups with stabilizing partners, and the screening.
For users of the pH pages the practical reading is: take a single pKa as an estimate within about a unit, more for histidines, cysteines, buried groups and NMR models; read the partners GL1X lists to see why a group is shifted; and treat strongly shifted groups and groups that change charge between two environments as candidates worth checking, the cases where the analysis is most informative, not as facts.
The data favour the null model. PKAD is dominated by NMR titrations of small soluble proteins, mostly surface carboxylates with small shifts: 197 of the 365 measured shifts are under half a unit. A benchmark richer in buried and active-site groups would weigh the regime where structure-based models are needed, and where GL1X currently fails most.
6. Limitations #
- Temperature. GL1X computes at 25 °C; the measurements range from 9.85 to 41.85 °C, and 25 values have no usable temperature. Errors inside and outside 20–30 °C are alike, but individual values can be affected.
- Ionic strength. A salt concentration stands for the ionic strength, buffers are ignored, 121 values ran at the 0.15 M default, and stated values were snapped by up to about 20%.
- Structures. One structure per protein, and the first model of an NMR ensemble. Some structures are not exactly the molecule measured: another species' ovomucoid, full-length L9 for its N-terminal domain, two-domain CD2 for domain 1, calcium-loaded calbindin for the apo protein. Crystal copies in the file take part in the calculation.
- Second-hand values. The values are PKAD's transcriptions, checked against PKAD-3, partly against PKAD-R, and against the abstracts, not the full texts; a PKAD error that agrees with PKAD-3 and that no abstract contradicts would go undetected.
- Judgement in exclusions. The exclusions follow what the abstracts state; section 4.9 shows that putting them back does not change the conclusion.
- Few values for some groups. Buried groups (35), lysines (21) and cysteines (4) are few, so their numbers are uncertain.
- Scope. Only pKa values were compared, not charges, isoelectric points or stability over pH.
- Not independent. The study was designed and run by the developers of GL1X; every input and computation is published so that it can be checked.
7. Conclusion #
Measured against 365 experimental pKa values in 47 proteins, GL1X's structure-based model is as accurate as leaving every group at its model pKa (0.88 against 0.91 pK units), better for strongly shifted groups, aspartates and crystal structures, and worse for histidines, unshifted groups and NMR models. The benchmark, its rules and its data now define what a better model has to beat.
Availability #
The pH environments page summarizes the
benchmark, and the API's rules carry it (accuracy). The bundle
gl1x-3.4.0-pka-benchmark.tar.gz, published with the GL1X 3.4.0 release,
holds every measured value considered with its role, conditions, source and
the reason for each decision (measured.csv), every group of GL1X's
answers (gl1x.csv), the calls with their times, the joined table, the
standard-library Python program that prints every table of this paper
(benchmark.py), the selection rules and the transcription checks
(scripts/), and the full report (results.md). GL1X is MIT-licensed
(source).
References #
- Bartik, Redfield & Dobson (1994) Biophys J 66:1180. PMID 8038389.
- Efron B, Tibshirani RJ (1993) An Introduction to the Bootstrap. Chapman & Hall, New York.
- Lim et al. (2012) J Biol Chem 287:25596. PMID 22661719.
- Olsson MHM, Søndergaard CR, Rostkowski M, Jensen JH (2011) PROPKA3: consistent treatment of internal and surface residues in empirical pKa predictions. J Chem Theory Comput 7:525–537.
- Pahari S, Sun L, Alexov E (2019) PKAD: a database of experimentally measured pKa values of ionizable groups in proteins. Database 2019:baz024. doi:10.1093/database/baz024
- PKAD wild-type table in the MCCE benchmarking repository: WT_pkas.csv (commit 6bd72a5).
- PKAD-3 values of the KaML train/test split: KaML repository (commit 04c8499).
- PKAD-R, 3 September 2025: 1-PKAD-R-2025-09-03.csv.
- Thurlkill RL, Grimsley GR, Scholtz JM, Pace CN (2006) pK values of the ionizable groups of proteins. Protein Sci 15:1214–1218.
- Tishmack et al. (1997) Biochemistry 36:11984. PMID 9305993.
- Wang et al. (2001) Biochemistry 40:11698. PMID 11570870.