Binding Curves (or Binding Assays) are an approach to determining the equilibrium constant for the interaction of two molecules, commonly used in biochemistry1 See Pollard, Thomas (2017). A Guide to Simple and Informative Binding Assays. Molecular Biology of the Cell 21(23). Typically, the a small molecule (commonly called the “ligand”) attaches to a larger molecule such as a protein. If we denote the protein as P and the ligand as L we can express the dissociation as:
\(\large PL \rightleftharpoons P + L\)
and where the total protein is the bound plus unbound.
\(P_{tot} = PL + P\)
With the dissociation constant:
\(\large K_d = \frac{[P][L]}{[PL]}\)
The concentration of the ligand (in excess) is varied and the fraction bound \(\frac{[PL]}{P_{tot}}\) is plotted versus the L2 While the mathematics of equilibrium is similar to a simple acid, note the difference in a titration curve, where the -log(H) is measured.
Substituting \(P_{tot} = P + PL\) into the \(K_d\) expression:
we get
\(K_d = \frac{([P_{tot}]-[PL])[L]}{PL]} = \frac{([P_{tot}][L]-[PL]{L]}}{[PL]}\)
\(K_d[PL] + [PL][L] = [P_{tot}][L]\)
\([PL](K_d +[L]) = [P_{tot}][L]\)
and we get expression for fraction bound as a function of \(K_d\) and L.
\(\frac{[PL]}{P_{tot}} = \frac{[L]}{K_d + [L]}\)
note as L increases the fraction bound goes from 0 to 1.
The key to binding assay is to find an experimental method to determine the concentration of PL, the bound form.
Although it is called a “binding assay” the equilibrium is discussed in terms of the dissociation, with \(K_d\)
Myoglobin Binding
knitr::include_graphics('250px-Myoglobin.png')
# Nonlinear Regression / Binding Curve
# simulate noisy data for myoglobin KD = 0.26 [L] in kPa
# data generated with random noise added
KD <- 0.26 # initializing variables
L <- 0.0
y <- 0.0
L <- seq(.1,1.5,0.1) # set of 15 ligand concentrations
rnd <- rnorm(15,0,0.04) # set of 15 random values
y <- L/(KD+L) + rnd # binding curve fuction with noise
plot(L,y, main = "Simulated binding data", xlab = "pO2 Kpa",
ylab = "Fractional Binding")
tryfit <- nls(y ~ L/(KD+L),
start = c(KD = 5))
summary(tryfit)
##
## Formula: y ~ L/(KD + L)
##
## Parameters:
## Estimate Std. Error t value Pr(>|t|)
## KD 0.26323 0.01403 18.76 2.56e-11 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.03943 on 14 degrees of freedom
##
## Number of iterations to convergence: 7
## Achieved convergence tolerance: 1.385e-06
plot(L,y, main = "Myoglobin Binding Curve", xlab = "pO2 Kpa", ylab = "Fractional Binding")
lines(L,predict(tryfit), col = "blue") # add a line fitted to points