-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAffinity.Rmd
More file actions
73 lines (61 loc) · 3 KB
/
Copy pathAffinity.Rmd
File metadata and controls
73 lines (61 loc) · 3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
---
title: "Affinity Pitch (Thermodynamic Binding)"
author: "BODF"
date: "12/29/2018"
output: ioslides_presentation
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
```
## Motivation
The concept of molecular binding is key to pharmaceutical science and has led to
the development of modern drugs. By using small molecules to target and bind
specific bio-molecules we can alter biological activity. To understand binding,
students must gain a quantitative sense of binding strength (affinity).
In the subsequent slides I will outline what binding is, give some examples of
binding, and end with a pitch for my shiny app.
## Background
Here are a few diagrams and equations we often use to describe
binding reactions:
$X + Y \rightleftharpoons XY$, where X and Y are molecules that can bind and form
the complex 'XY'. The back and forth arrows indicate that the reaction is
reversible.
$K_a = \frac{[XY]}{[X]*[Y]}$, where $K_a$ is the affinity constant that dictates
the ratio between bound and unbound molecular species. The square brackets denote
concentration in Molar units of the respective molecular species.
$Fraction_{XY} = \frac{[X]*K_a}{1+[X]*K_a}$ This fraction bound equation allows us to predict
the percent of drug-bound molecules if we know $K_a$ and the dose of drug. (Assumes
a very low concentration of Y)
## Examples of Binding
In my shiny app, a user is able to interactively control $K_a$ and immediately
gain a sense of how it controls binding. Here, I give a still image to
for comparison.
```{r plots}
plot(c(1e-09, 1e-04), c(0,1), type = 'n', log ='x', axes="F",
xlab = "Concentration of X (Molar)", ylab = "Fraction of Y bound",
main = "Hypothetical binding curves",
cex.main = 1.3, cex.lab = 1.2)
axis(2, lwd = 3)
axis(1, lwd = 3, cex.axis = 1.2, labels =
c(expression(10^-9), expression(10^-8), expression(10^-7),
expression(10^-6), expression(10^-5), expression(10^-4)),
at =c(10^-9, 10^-8, 10^-7, 10^-6, 10^-5, 10^-4))
axis(1, lwd = 1, labels=FALSE,
at = sort(rep(1:9,6))*c(1e-9,1e-8,1e-7,1e-6,1e-5,1e-4))
box(lwd = 3)
curve((x*1e+5)/(1 + x*1e+5), from = 1e-09, to = 1e-04, lwd = 2, add = TRUE)
curve((x*1e+6)/(1 + x*1e+6), from = 1e-09, to = 1e-04, lwd = 2, add = TRUE, col = 'red')
curve((x*1e+7)/(1 + x*1e+7), from = 1e-09, to = 1e-04, lwd = 2, add = TRUE, col = 'blue')
legend('topleft', c("Ka = 10^5", "10^6", "10^7"), lwd = 2, col = c('black',
"red", "blue"), box.lwd = 3, cex = 1.2)
```
## Conclusion
Interactive learning is a growing field and the shiny app that I am pitching
allows users to readily slide a $K_a$ value around and gain an intuitive sense
of how $K_a$ affects binding---something that a static plot does in only a
passive manner.
The app itself is the simplest representation of binding and many more modes
could be added. I left them out for simplicity, they include:
* An enzyme binding either inhibitor or substrate
* Multiple binding partners
* Self versus non-self binding