Predicting Ionization State at Physiological pH from pKa
Predicting ionization state at physiological pH from pKa: the Henderson-Hasselbalch fraction-ionized formula worked for an acid and a base at pH 7.4.
You drew an analog with a free carboxylic acid, the assay came back with poor cell permeability, and someone in the SAR meeting asked the obvious question: at blood pH, is that acid even neutral? Predicting ionization state at physiological pH from pKa is a two-line calculation, but the directionality trips people up — acids and bases move opposite ways as pH climbs, and getting the sign wrong flips your conclusion about which species crosses a membrane. This walks through the Henderson–Hasselbalch relationship for a single ionizable group, then computes the ionized fraction for an acid and a base at pH 7.4 so you can read the result off your own structure.
What pKa tells you, and what physiological pH is
The pKa is the pH at which an ionizable group sits exactly half ionized. Below its pKa, an acid holds onto its proton (neutral); above it, the acid gives the proton up (anionic). A base is the mirror image: its conjugate acid pKa is the pH where the protonated (cationic) and neutral forms are equal, and the base becomes protonated as pH drops below that value.
Physiological pH — the pH of blood and most extracellular fluid — is 7.4. That single number is the reference point for the whole exercise. A carboxylic acid has a pKa around 4–5, well below 7.4; a typical aliphatic amine has a conjugate-acid pKa around 9–10, well above 7.4. Those gaps are what drive the species almost entirely to one form, which is the practical reason the calculation usually lands near 0% or 100% rather than somewhere in between.
The formula for a single group
For an acid (HA ↔ H+ + A−), the fraction in the ionized (anionic) form is the Henderson–Hasselbalch relationship rearranged for one group:
$f_{\text{ionized, acid}} = \frac{1}{1 + 10^{(\text{pKa} - \text{pH})}}$In plain terms: when pH is above the pKa, the exponent is negative, the power of ten is small, and the fraction approaches 1 — the acid is mostly deprotonated.
For a base, using the pKa of its conjugate acid, the fraction in the ionized (protonated, cationic) form is:
$f_{\text{ionized, base}} = \frac{1}{1 + 10^{(\text{pH} - \text{pKa})}}$The exponent flips sign. That single difference is the part worth memorizing: acid uses (pKa − pH); base uses (pH − pKa). Both reduce to the same anchor — when pH equals pKa, the exponent is zero, \(10^0 = 1\), and the fraction is \(1/(1+1) = 0.5\), i.e. exactly 50% ionized. That 50% checkpoint is the fastest way to confirm you have the formula pointed the right way.
Worked example: a carboxylic acid at pH 7.4
Take acetic acid as a stand-in for any aliphatic carboxylic acid; its pKa is 4.76 (LibreTexts table of organic pKa values). At pH 7.4:
$f_{\text{ionized}} = \frac{1}{1 + 10^{(4.76 - 7.4)}} = \frac{1}{1 + 10^{-2.64}}$Evaluate the power of ten: \(10^{-2.64} \approx 0.00229\). So:
$f_{\text{ionized}} = \frac{1}{1.00229} \approx 0.9977$The acid is about 99.8% ionized (anionic) at physiological pH, leaving roughly 0.23% in the neutral form. A carboxylate at pH 7.4 is, for design purposes, fully charged. That charge is great for aqueous solubility and terrible for passive membrane permeability — only the <1% neutral species crosses easily, which is exactly the kind of result that explains a permeability number that looks worse than logP alone would predict.
Worked example: an amine at pH 7.4
Now a basic nitrogen. Use a conjugate-acid pKa of 9.5, representative of a simple aliphatic amine. For a base the exponent is (pH − pKa):
$f_{\text{ionized}} = \frac{1}{1 + 10^{(7.4 - 9.5)}} = \frac{1}{1 + 10^{-2.1}}$Here \(10^{-2.1} \approx 0.00794\), so:
$f_{\text{ionized}} = \frac{1}{1.00794} \approx 0.9921$The amine is about 99.2% protonated (cationic) at pH 7.4, with roughly 0.79% neutral. Note the direction: the acid and the base are both almost fully charged at 7.4, but for opposite reasons — the acid because 7.4 sits well above its pKa, the base because 7.4 sits well below its conjugate-acid pKa. If you had reused the acid formula for the amine, you would have computed ~0.8% ionized and concluded the amine was neutral, which is backwards.
What the ionized fraction means for solubility, permeability, and logD
The neutral species is the one that crosses lipid membranes by passive diffusion; the charged species stays in the aqueous phase. So a molecule that is 99.8% ionized presents only its 0.2% neutral fraction to the membrane. This is the mechanistic reason a polar acid can have a respectable logP yet poor passive permeability — logP describes the neutral molecule, but at pH 7.4 the neutral molecule is a rounding error.
That gap is what logD captures. logD is the distribution coefficient at a stated pH: it folds the ionized fraction into the partitioning, so logD is logP minus an adjustment for how much of the compound is charged at that pH. For a base that is ~99% protonated, logD7.4 sits well below logP; for a neutral compound with no ionizable group, logD equals logP. If you want the deeper read on what the lipophilicity number itself is measuring before you correct it for ionization, see how to interpret logP and lipophilicity in lead optimization.
The practical loop in an SAR series: compute properties on the drawn structure, note which groups are ionizable, estimate the pKa of each, and read off the dominant species at 7.4. A carboxylate that kills permeability is a candidate for a bioisostere; a strongly basic amine that drives a high logD and off-target binding might be tuned down. These are the moves the Henderson–Hasselbalch read sets up. (Methods note: the logP values you compute — ChemStitch reports logP via RDKit's Wildman–Crippen estimator — describe the neutral form; the ionization correction to logD is a separate step on top of that.)
Where this single-group picture breaks
The two formulas above assume one ionizable group. Real drugs are often zwitterionic or polyprotic — an amino acid carries both a carboxylate and an ammonium at 7.4, and you have to treat each group with its own pKa. Microspeciation (which tautomer or protonation microstate dominates) also matters when groups are close enough to influence each other, and a single macroscopic pKa no longer cleanly describes the system. For a lone acid or base, though, the single-group calculation is the right first pass, and it is usually decisive.
One more caveat: the pKa you plug in is only as good as your estimate of it. Substituents shift pKa — an electron-withdrawing group lowers an acid's pKa (more ionized), an adjacent electron-donor raises an amine's basicity. When the pKa estimate is uncertain, run the calculation at the high and low end of your range; if the ionized fraction barely moves (as it does for groups 2+ units from 7.4), the uncertainty does not change your conclusion.
To set up the calculation, draw the structure and identify the ionizable groups first — if you are starting from a SMILES string a collaborator sent, you can convert a SMILES string into an editable structure to see the acid and amine groups laid out before you estimate their pKa values. From there the ionized-fraction arithmetic above is a 30-second read on every analog in the series.