<aside> 📌 By Dr. Nir Regev
</aside>
<aside> 📌 Join Circuit of Knowledge for more tutorials
</aside>
Summary: This paragraph introduces the concept of dose-response curves in pharmacology. When the dosage of a drug is plotted on a logarithmic scale against its effect (usually measured as the percentage of subjects affected), the resulting curve often takes on a symmetrical S-shape, known as a sigmoidal curve. Researchers have traditionally used the cumulative distribution function (CDF) of the normal distribution to model this relationship and estimate drug potency.
Intuition: Think of the dose-response curve as representing the variation in how different individuals react to a drug. Some people are very sensitive and respond to low doses, while others require higher doses. When plotted on a log scale, this variation often approximates a normal distribution.
Python code to visualize a typical dose-response curve using the normal CDF:
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
def dose_response(x, ec50, hill):
return norm.cdf(np.log10(x) - np.log10(ec50), scale=1/hill)
doses = np.logspace(-2, 2, 100)
ec50 = 1 # dose producing 50% effect
hill = 2 # steepness of the curve
response = dose_response(doses, ec50, hill)
plt.semilogx(doses, response)
plt.xlabel('Dose')
plt.ylabel('Response')
plt.title('Dose-Response Curve')
plt.grid(True)
plt.show()
Summary: The author introduces an alternative function for modeling dose-response relationships, known as the logistic function. This function has been used in various fields under different names, such as the "growth function" or "autocatalytic curve." It gained popularity in statistics after Pearl and Reed applied it to population growth models. The author chooses to use the term "logistic function" due to its widespread use following Pearl and Reed's work.
Intuition: The logistic function is a versatile S-shaped curve that can model many phenomena involving growth or transition between two states. Its flexibility and simplicity make it attractive for various applications, including dose-response modeling.
Python code to visualize the logistic function:
import numpy as np
import matplotlib.pyplot as plt
def logistic(x, L, k, x0):
return L / (1 + np.exp(-k * (x - x0)))
x = np.linspace(-10, 10, 100)
L = 1 # maximum value
k = 1 # steepness
x0 = 0 # midpoint
y = logistic(x, L, k, x0)
plt.plot(x, y)
plt.xlabel('x')
plt.ylabel('y')
plt.title('Logistic Function')
plt.grid(True)
plt.show()
Summary: This paragraph explains the theoretical basis for using the normal distribution in dose-response modeling. The idea is that individual susceptibility to a drug follows a normal distribution. If we assume that the minimal lethal dose measures susceptibility, then the proportion of individuals affected by a given dose is represented by the cumulative distribution function (CDF) of the normal distribution up to that dose.
The normal distribution is widely used to model biological traits, and there is experimental evidence supporting its use for susceptibility distributions. This theoretical and empirical support makes the normal CDF an attractive choice for dose-response modeling.