suppressMessages({
library(rxode2); library(dplyr); library(tidyr)
library(ggplot2); library(patchwork); library(xgxr)
})
xgx_theme_set()
knitr::opts_chunk$set(fig.width = 7, fig.height = 5)
odro <- rxode2({
vmax <- vmax_asym + (vmax0 - vmax_asym) * exp(-kv * time)
cc <- central / vc
kmm <- vmax / (km + cc)
cltot <- cl + kmm * vc
d/dt(central) <- -kmm*central - cl/vc*central - q/vc*central + q/vp*peripheral
d/dt(peripheral) <- q/vc*central - q/vp*peripheral
})
par_odro <- c(cl = 0.189, q = 1.21, vc = 4.99, vp = 4.42,
vmax0 = 2.93, km = 1.95, kv = 1.09)
par_odro <- c(par_odro, vmax_asym = unname(0.262 * par_odro[["vmax0"]]))Why target-mediated drug disposition is rarely visible in T-cell engager pharmacokinetics
Working specification
Two sources have been read in full, and none of the transcribed parameter values has been checked against a printed table. The odronextamab, mosunetuzumab, teclistamab and elranatamab parameters driving every figure and calculation below were taken from an open-access full text and from nlmixr2lib model files, not from the published tables. Sections 3 and 7 compute their conclusions from those numbers, so both conclusions inherit whatever is wrong in them. Section 5 rests on two drugs, which is where its own limits section says it rests. References carries a status marker on every source and the project index lists the other documents in this folder.
In brief
The observation. A T-cell engager (TCE) binds CD3 on T cells with nanomolar affinity, and CD3 internalizes with a half-life near an hour. A first dose of 0.16 mg of epcoritamab or 0.7 mg of odronextamab is the same order of magnitude as the CD3 receptors circulating in blood, and a small fraction of what those receptors internalize in a week. Every ingredient of textbook target-mediated drug disposition (TMDD) is present, so the concentration-time profile after a priming dose should fall off a cliff. Published profiles do not. The approved hematology TCEs report terminal half-lives of 6 to 22 days, which is antibody-like.
The answer this document argues for, in one line. TMDD is there and is large, it is reported as time-dependent clearance rather than as a concentration nonlinearity, and the priming doses that could show the nonlinearity sit below the Michaelis constant, where a Michaelis-Menten elimination is arithmetically indistinguishable from a first-order one.
The decisive number. For odronextamab the fitted Michaelis constant is \(k_m\) = 1.95 mg/L and the 0.7 mg priming dose reaches a peak concentration of 0.14 mg/L. The entire priming-dose profile lives at \(C/k_m \le 0.07\). Section 3 simulates that profile with target depletion switched off and finds total clearance varying from 7.2 to 7.7 L/day across a 900-fold concentration range. The mechanism is saturable and behaves linearly, because the dose is too small to saturate it.
What happens to the target sink, corrected. The decaying clearance term in the published models is 26-fold for odronextamab and only 1.6 to 2.2-fold for teclistamab, mosunetuzumab and talquetamab, so on its own it cannot account for the class. Two things are being conflated. Odronextamab’s decay has a half-life of 0.64 days, which is target-cell killing. The others decay over 16 to 24 days, which is too slow to be a receptor pool emptying and is what their own authors attribute to falling tumor burden. Section 4 separates them, and Section 4a measures the target-mediated clearance the way it should be measured: against what the same molecule would clear at with no target. Teclistamab clears 5.3 times faster than a target-free antibody at treatment start, and only a 2.2-fold part of that ever decays, because CD3 is not depletable.
Hypothesis 3, flip-flop kinetics. True for teclistamab early in treatment, false for elranatamab, and inapplicable to the intravenous drugs. Teclistamab’s absorption half-life is 5.2 days against an effective elimination half-life of 3.8 days at treatment start, so absorption is rate-limiting then, and 8.4 days at steady state, so it is not rate-limiting later. Elranatamab absorbs with a 4.7-day half-life and eliminates with a 25-day one, so absorption is never rate-limiting for it. Section 5 works both.
Out of scope, stated once.
- ❌ A new TMDD model. Nothing here is fit. Every parameter is transcribed from a published model and simulated forward.
- ❌ Quantitative systems pharmacology. No trimer formation, no cytokine cascade, no tumor dynamics. The CD3-plus-antigen binding model of Pearce et al. is the deepest mechanism used.
- ❌ Dose selection. No regimen, step-up schedule or starting dose should be taken from this document.
- ✅ The parameter survey. Compiling fixed and random effects across the published TCE models is a deliverable in its own right, and it lives in PK parameters rather than here.
1. The Observation, as Numbers
Pearce et al. tabulate published half-lives for 29 TCEs in cynomolgus monkey and in patients. The approved hematology molecules cluster near a week, and the solid-tumor and non-Fc molecules do not.
| T-cell engager | Target | Format and route | Human half-life (days) |
|---|---|---|---|
| Elranatamab | BCMA | IgG, subcutaneous | 22 |
| Talquetamab | GPRC5D | IgG, subcutaneous | 8–12 |
| Mosunetuzumab | CD20 | IgG, intravenous | 6–11 |
| Glofitamab | CD20 | IgG 2:1, intravenous | 6–11 |
| Tarlatamab | DLL3 | half-life extended, intravenous | 5.7 |
| Teclistamab | BCMA | IgG, subcutaneous | 3.8 |
| HPN217 | BCMA | albumin-binding, intravenous | 2.8 |
| CB307 | PSMA | albumin-binding, intravenous | 3 |
| PF-06671008 | CDH3 | bispecific, intravenous | 1.2 |
| Tebentafusp | gp100 | ImmTAC, intravenous | 0.3 |
| Blinatumomab | CD19 | BiTE, continuous infusion | 0.09 |
Two things separate the top of the table from the bottom, and neither is target engagement. The long half-lives belong to molecules with an intact Fc domain and therefore neonatal Fc receptor recycling, and the short ones belong to formats without it. Blinatumomab at 54 kDa is below the renal filtration threshold and is cleared in hours regardless of what it binds. So the question is narrower than it first appears: why does an Fc-containing TCE, dosed at a fraction of its target pool, show the half-life of an ordinary IgG?
2. Four Explanations, and How Each Would Be Falsified
| # | Explanation | Would be falsified by |
|---|---|---|
| 1 | The dose sits below the Michaelis constant, where saturable elimination is linear | A published \(k_m\) comparable to, or below, the priming-dose peak concentration |
| 2 | The target sink is destroyed within the first cycle, so the nonlinearity has no time to show | A published model with a time-invariant nonlinear clearance and no decay term |
| 3 | Slow subcutaneous absorption rate-limits the terminal slope | An absorption rate constant fast relative to elimination, or the same flat profile intravenously |
| 4 | Sampling and assay quantitation limits hide the drop | Dense early sampling at a priming dose showing a log-linear decline |
Explanations 1 and 2 both survive Sections 3 and 4. Explanation 3 survives in one narrow case and is examined in Section 5. Explanation 4 is untestable with what is public and is set out in Section 6 as a data request rather than a finding.
3. Explanation 1: The Priming Dose Sits Below the Michaelis Constant
Odronextamab is the test case, because Kovalenko et al. published a model with an explicit Michaelis-Menten elimination and reported \(k_m\).
The structural model is a two-compartment disposition with parallel first-order and Michaelis-Menten elimination, and the maximum velocity declines with time since first dose:
\[ \frac{dV_{\max}}{dt} = -K_v\left(V_{\max} - V_{\max,\rm asym}\right), \qquad CL_{MM} = \frac{V_{\max}}{k_m + C}\,V_c \]
with \(V_{\max,0}\) = 2.93 mg/L/day, \(k_m\) = 1.95 mg/L, \(K_v\) = 1.09 /day, \(V_{\max,\rm asym}/V_{\max,0}\) = 0.262, linear \(CL\) = 0.189 L/day, \(V_c\) = 4.99 L, \(V_p\) = 4.42 L and \(Q\) = 1.21 L/day.
The approved regimen steps up 0.7 mg, 4 mg, 20 mg weekly and then holds at 160 mg. Peak concentrations after each of those doses, and the clearance the model assigns to them, put every step-up dose on the flat part of the Michaelis-Menten curve.
conc <- 10^seq(-3.5, 2.5, length.out = 400)
curve <- tibble(conc, cltot = 0.189 + 2.93/(1.95 + conc)*4.99)
marks <- tibble(dose = c(0.7, 4, 20, 160, 320)) |>
mutate(conc = dose/4.99,
cltot = 0.189 + 2.93/(1.95 + conc)*4.99,
lab = paste0(dose, " mg"))
ggplot(curve, aes(conc, cltot)) +
geom_line(linewidth = 0.7) +
geom_vline(xintercept = 1.95, linetype = 2, colour = "grey45") +
geom_point(data = marks, size = 2.6, colour = "#C0392B") +
ggrepel::geom_text_repel(data = marks, aes(label = lab), size = 3.2,
colour = "#C0392B", seed = 1) +
annotate("text", x = 1.95, y = 0.25, label = " km = 1.95 mg/L",
hjust = 0, size = 3.2, colour = "grey35") +
scale_x_log10() + scale_y_log10() + annotation_logticks() +
labs(x = "Odronextamab concentration (mg/L)", y = "Total clearance (L/day)")
The 0.7 mg dose peaks at 0.14 mg/L, which is \(k_m/14\). Simulating that dose on its own, with target depletion switched off so that the only nonlinearity left is the concentration dependence:
ev_single <- et(amt = 0.7, time = 0) |> et(seq(0, 14, by = 0.02))
no_deplete <- replace(par_odro, "kv", 0)
as_tibble(rxSolve(odro, no_deplete, ev_single)) |>
filter(time %in% c(0.02, 0.5, 1, 2, 3, 7, 14)) |>
transmute(`Day` = time,
`Concentration (mg/L)` = signif(cc, 3),
`Total CL (L/day)` = signif(cltot, 3)) |>
knitr::kable()| Day | Concentration (mg/L) | Total CL (L/day) |
|---|---|---|
| 0.02 | 0.136000 | 7.20 |
| 0.50 | 0.060200 | 7.46 |
| 1.00 | 0.026200 | 7.59 |
| 2.00 | 0.006230 | 7.66 |
| 3.00 | 0.002560 | 7.68 |
| 7.00 | 0.000772 | 7.68 |
| 14.00 | 0.000153 | 7.69 |
Total clearance moves by 7% while concentration falls 900-fold. A Michaelis-Menten elimination, simulated with its own published parameters, produces a log-linear profile. Pearce et al. name this as the reason TCEs retain linear pharmacokinetics at low doses despite high-affinity binding, and identify it as the fourth phase of TMDD in the Peletier and Gabrielsson classification.
The fourth-phase label is borrowed and may not transfer. Peletier and Gabrielsson derive their phases for a one-compartment model with no distribution phase and no peripheral compartment. Everything in this project is two-compartment, where a bend in a log-concentration profile can be distribution as easily as target saturation, and where the phases are not separable by inspection. Section 9.5 shows the two-compartment version changing the answer outright. The classification is used here as vocabulary for “saturable elimination behaving first-order at low concentration”, which is arithmetic that holds in any number of compartments, and not as a claim that a TCE profile has four identifiable phases.
The verdict on explanation 1: it holds. The priming dose is too small to bend the curve. A visible sharp drop requires a dose that traverses the saturation boundary during the observed profile, and the step-up schedule is built so that no single dose does that.
4. Explanation 2: The Target Sink Is Destroyed During Cycle 1
The nonlinearity does appear at the full dose, where concentration passes \(k_m\). By then the target is gone.
Simulating the full approved regimen, against two counterfactuals, shows where the clearance goes.
ev <- et(amt = 0.7, time = 0) |> et(amt = 4, time = 7) |> et(amt = 20, time = 14) |>
et(amt = 160, time = seq(21, 77, by = 7)) |> et(seq(0, 84, by = 0.02))
run <- function(pp, lab) as_tibble(rxSolve(odro, pp, ev)) |> mutate(case = lab)
sims <- bind_rows(
run(par_odro, "as published"),
run(replace(par_odro, "kv", 0), "target sink never depleted"),
run(replace(par_odro, c("vmax0","vmax_asym"), c(0, 0)),
"no target-mediated elimination"))
top <- ggplot(sims, aes(time, cc, colour = case)) +
geom_line(linewidth = 0.6) + scale_y_log10() + annotation_logticks(sides = "l") +
labs(x = NULL, y = "Concentration (mg/L)", colour = NULL)
bot <- ggplot(sims, aes(time, cltot, colour = case)) +
geom_line(linewidth = 0.6) + scale_y_log10() + annotation_logticks(sides = "l") +
labs(x = "Days since first dose", y = "Total clearance (L/day)", colour = NULL)
(top / bot) + plot_layout(guides = "collect") & theme(legend.position = "bottom")
The upper panel is what a reviewer of this study would have in front of them. Three curves, each a near-straight line on a log axis within every dosing interval, differing only in slope, with nothing that announces a saturable mechanism. The lower panel holds the 25-fold change in clearance, and clearance is not an observation.
Every published TCE population model of an approved drug encodes a decay, and each names target depletion or disease response as the cause. The sizes are not comparable.
| Drug | Clearance structure | At start | Asymptote | Fold | Decay half-life |
|---|---|---|---|---|---|
| Odronextamab, DLBCL | Linear + Michaelis-Menten, \(V_{\max}\) declining | ~5.6 L/d | 0.22 L/d | 26 | 0.64 d |
| Odronextamab, follicular | same, with the \(K_v\) covariate | 5.8 d | |||
| Teclistamab | \(CL_1 + CL_2 e^{-K_{DES}t}\) | 0.996 L/d | 0.449 L/d | 2.2 | 23.7 d |
| Mosunetuzumab | \(CL_{\rm base}\to CL_{ss}\), exponential | 1.08 L/d | 0.584 L/d | 1.8 | 16.3 d |
| Talquetamab | Time-independent + time-dependent linear | \(t_{1/2}\) 7.56 d | \(t_{1/2}\) 12.2 d | 1.6 | not transcribed |
| Epcoritamab | Quasi-steady-state TMDD | CL/F 0.53 L/d at end of cycle 3 | not transcribed | concentration-driven | |
| Glofitamab | Linear | 0.6–1 L/d | same | 1.0 | none |
Two different things are in that table, and only one of them is TMDD.
Odronextamab in DLBCL loses 96% of its clearance with a half-life of 0.64 days. That is the timescale of killing target-bearing cells, and the magnitude of a target sink that supplies 91 to 97% of clearance at the priming dose. It is TMDD.
Teclistamab and mosunetuzumab lose 45 to 55% of their clearance with half-lives of 24 and 16 days. Neither timescale is target-cell killing. A T-cell engager at an active dose depletes circulating B cells or plasma cells within days, not over three weeks, and the teclistamab and talquetamab authors both name the alternative in their own discussions: falling tumor burden, improving disease status, resolving cancer-related cachexia. A three-week decay is a tumor shrinking, not a receptor pool emptying.
A two-fold time-dependent clearance therefore cannot account for TMDD, and the reason is that it is not trying to. In teclistamab and mosunetuzumab the time-dependent term is largely not measuring TMDD at all. It is measuring disease response, which is why it is small and slow.
4a. Where the Target-Mediated Clearance Actually Is
Measure it against what the same molecule would clear at with no target to bind. Odronextamab’s own fitted linear clearance, 0.189 L/day, is the reference, and its authors call it typical for a monoclonal antibody.
igg <- 0.189 # L/day, odronextamab's fitted linear CL
tibble(
Drug = c("Teclistamab", "Mosunetuzumab", "Odronextamab (DLBCL)"),
Vss = c(5.47, 11.66, 9.41),
CL0 = c(0.996, 1.080, 5.620),
CLinf = c(0.449, 0.584, 0.219)) |>
transmute(
Drug,
`t1/2 with no target (d)` = round(log(2)*Vss/igg, 1),
`t1/2 at start (d)` = round(log(2)*Vss/CL0, 1),
`t1/2 at steady state (d)` = round(log(2)*Vss/CLinf, 1),
`CL0 / IgG CL` = round(CL0/igg, 1),
`CLinf / IgG CL` = round(CLinf/igg, 1)) |>
knitr::kable()| Drug | t1/2 with no target (d) | t1/2 at start (d) | t1/2 at steady state (d) | CL0 / IgG CL | CLinf / IgG CL |
|---|---|---|---|---|---|
| Teclistamab | 20.1 | 3.8 | 8.4 | 5.3 | 2.4 |
| Mosunetuzumab | 42.8 | 7.5 | 13.8 | 5.7 | 3.1 |
| Odronextamab (DLBCL) | 34.5 | 1.2 | 29.8 | 29.7 | 1.2 |
Teclistamab clears 5.3 times faster at treatment start than a target-free antibody of its size, which is 3.8 days of half-life against 20. The 3.8 days is the figure Pearce et al. report for teclistamab in patients, so the arithmetic closes. That 5-fold is the TMDD, and only a 2.2-fold part of it is the time-dependent term. The rest never decays.
A candidate for the non-decaying excess, rejected. The obvious explanation is a standing CD3 sink: a TCE kills antigen-bearing cells and does not kill T cells, so the CD3 contribution should persist. Section 9 tests it with a two-pool target depletion model, and the CD3 pool contributes 13% of clearance at the priming dose and about 0.5% at the therapeutic dose, where it is saturated. It cannot carry 26% of the budget at any dose. What the non-decaying excess is remains open, and the split of \(CL_1\) is:
| Route | L/day | Share | Visible as |
|---|---|---|---|
| Intrinsic IgG catabolism | 0.189 | 19% | \(CL_1\) |
| Non-decaying excess, mechanism not established | 0.260 | 26% | \(CL_1\) |
| Depletable target, BCMA | 0.547 | 55% | \(CL_2\), the time-dependent term |
| Above intrinsic catabolism | 0.807 | 81% | one third of it |
4b. Why It Shows Preclinically and Not in Patients
TMDD is reported in cynomolgus monkey for three of the four CD20×CD3 antibodies, at doses at or below 0.1 mg/kg. Every feature of that experiment is the opposite of the clinical one.
| Cynomolgus study | Patient study | |
|---|---|---|
| Target compartment | Healthy, full B-cell pool | Relapsed or refractory, often already depleted |
| Prior anti-target therapy | None | 44% of the mosunetuzumab cohort carried residual rituximab, 8% obinutuzumab |
| Dosing | Single dose, then follow | Weekly step-up, redosed before the profile resolves |
| Sampling | Dense, hours after dosing | Sparse, predose and a few points per week |
| Assay floor | Set for the dose given | Near the priming-dose concentrations |
The window is the reason. With a sink half-life of 0.64 days, the full target-mediated clearance exists for about two days after the first dose, and 90% of it is gone by day 2.1. A cynomolgus study samples inside that window. A patient study takes its next sample at the day-7 predose, by which time the sink has been gone for five days.
Pearce et al. reach the same conclusion from the other direction: their model under-predicts the observed half-lives of both mosunetuzumab and glofitamab in patients, and they speculate that the CD20-mediated clearance extrapolated from ofatumumab over-predicts the target burden in these heavily pretreated populations. The patients arrive with less target than the model assumes.
4c. Glofitamab, and the Rejected Parameterizations
Glofitamab is the row to read against the other five. It is the one TCE given after a mandatory 1000 mg obinutuzumab pretreatment, which depletes CD20-bearing B cells a week before the first glofitamab dose, and its published model is linear with no time-varying term. Remove the target before the drug arrives and the target-mediated clearance is not there to model.
Teclistamab’s authors tested a quasi-steady-state TMDD parameterization and a time-varying soluble BCMA covariate, and rejected both in favor of the empirical exponential decay. Reading why those two failed is what tells you whether the empirical form is a convenience or a necessity, and it is entry 4 of the reading queue.
One thing the rejection is not evidence of. A time-dependent linear clearance is capable of recovering a large target-mediated effect when the data supports it: simulating the odronextamab model under its own regimen with dense cycle-1 sampling and a 0.01 mg/L quantitation limit, and refitting with teclistamab’s \(CL_1 + CL_2e^{-K_{DES}t}\) form, recovers a 20-fold clearance change against a true 32-fold. Raise the quantitation limit to 0.10 mg/L and the same fit collapses, driving \(CL_1\) to zero. The model form is adequate. The data underneath it, at the priming dose, is what decides what can be seen.
The verdict on explanation 2: it holds for odronextamab and it is why TMDD is mis-filed everywhere. Where the sink is large it empties in two days, inside the window no clinical study samples. Where the decaying term is slow and small, it is measuring the tumor rather than the target, and the target-mediated clearance has been absorbed into a linear parameter that names no mechanism.
5. Explanation 3: Flip-Flop Kinetics After Subcutaneous Dosing
The hypothesis is that slow subcutaneous absorption rate-limits the terminal slope, so the apparent half-life reports absorption rather than elimination. Two subcutaneous drugs have transcribed absorption rate constants, and they answer differently.
eff_thalf <- function(cl, vc, vp) log(2) * (vc + vp) / cl
tibble(
Drug = c("Teclistamab", "Teclistamab", "Elranatamab"),
When = c("treatment start", "steady state", "all times (linear model)"),
`Absorption t1/2 (d)` = signif(log(2) / c(0.133, 0.133, 0.148), 3),
`Elimination t1/2 (d)` = signif(c(eff_thalf(0.449 + 0.547, 4.13, 1.34),
eff_thalf(0.449, 4.13, 1.34),
eff_thalf(0.335, 4.25, 7.80)), 3)) |>
mutate(`Rate-limiting step` =
ifelse(`Absorption t1/2 (d)` > `Elimination t1/2 (d)`,
"absorption (flip-flop)", "elimination")) |>
knitr::kable()| Drug | When | Absorption t1/2 (d) | Elimination t1/2 (d) | Rate-limiting step |
|---|---|---|---|---|
| Teclistamab | treatment start | 5.21 | 3.81 | absorption (flip-flop) |
| Teclistamab | steady state | 5.21 | 8.44 | elimination |
| Elranatamab | all times (linear model) | 4.68 | 24.90 | elimination |
Teclistamab crosses the boundary during treatment. At treatment start absorption is slower than elimination, so the terminal slope after an early subcutaneous dose reports \(K_a\); once the time-dependent clearance component of Section 4 has decayed, elimination is the slower of the two and the ordering has reversed. That crossing is a second reason teclistamab’s half-life lengthens with repeated dosing, working in the same direction as the falling clearance.
Elranatamab does not cross it. Its absorption half-life of 4.7 days sits against an elimination half-life near 25 days, so absorption is never rate-limiting, and its published half-life of 22 days is elimination being reported as elimination.
Three limits on how far the hypothesis carries.
- It cannot explain the intravenous drugs. Mosunetuzumab, glofitamab and odronextamab have no absorption phase and show the same absence of visible nonlinearity. Explanation 3 is an additional flattening mechanism for some subcutaneous molecules, not the reason the class looks the way it does.
- It is contingent on where in treatment the sample was drawn. The same drug is flip-flop in week 1 and not in week 8, because the quantity it is being compared against is itself changing. Any statement that a TCE does or does not show flip-flop kinetics has to name the time.
- Two cases is not a survey. Epcoritamab reports a median time to maximum concentration of 4 days after the first full dose, consistent with slow absorption, but its absorption rate constant has not been transcribed here. Talquetamab uses a sequential zero- then first-order absorption, which does not reduce to a single \(K_a\). Filling the absorption column of PK parameters is what turns this section from two worked examples into a finding.
The verdict on explanation 3: it holds for teclistamab early in treatment, fails for elranatamab, and cannot apply to the intravenous drugs. It is a contributing mechanism with a narrow domain, not the explanation.
6. Explanation 4: Sampling and the Quantitation Limit
Untestable from published summaries, and stated here so that it is not mistaken for a settled negative.
Three features of how TCE pharmacokinetic data is collected would hide a concentration drop that was there.
- CD3 internalizes with a half-life near an hour. The fastest target-mediated phase is over within a day. Cycle 1 sampling in these studies is typically predose, end of infusion, and then a small number of points across the following week.
- Priming-dose concentrations sit near the assay limit. The odronextamab simulation above puts the 0.7 mg profile between 0.14 and 0.005 mg/L. Kovalenko et al. excluded 3.4% of post-dose records as below the limit of quantitation, and those records are disproportionately the early low-dose ones, which is exactly where the curvature would be.
- The step-up schedule redoses before the profile resolves. Each weekly dose interrupts the decline of the previous one.
What would settle it is a densely sampled single priming dose with a low-limit assay, and the studies that could produce it are the ones already run. A first-in-human dose escalation collects that data at the lowest cohorts and reports a summary.
7. The Arithmetic of the CD3 Sink
Section 3 argues the priming dose is small relative to \(k_m\). This section asks the blunter version: how much drug does the CD3 pool actually consume?
avogadro <- 6.022e23
cd3_per_T <- 5e4 # receptors per T cell
tcell_uL <- 1500 # T cells per uL of blood
blood_L <- 5
mw <- 1.5e5 # g/mol
kint <- 0.014 # per minute
tcells <- tcell_uL * 1e6 * blood_L
r_mol <- tcells * cd3_per_T / avogadro
r_mg <- r_mol * mw * 1000
vmax_mg_day <- r_mol * kint * 60 * 24 * mw * 1000
tibble(
Quantity = c("T cells in blood",
"CD3 receptors in blood (nmol)",
"Drug for 1:1 occupancy of that pool (mg)",
"CD3 internalization half-life (min)",
"Maximum CD3-mediated elimination (mg/day)"),
Value = c(format(tcells, digits = 3, scientific = TRUE),
signif(r_mol * 1e9, 3),
signif(r_mg, 3),
signif(log(2)/kint, 3),
signif(vmax_mg_day, 3))) |>
knitr::kable()| Quantity | Value |
|---|---|
| T cells in blood | 7.5e+09 |
| CD3 receptors in blood (nmol) | 0.623 |
| Drug for 1:1 occupancy of that pool (mg) | 0.0934 |
| CD3 internalization half-life (min) | 49.5 |
| Maximum CD3-mediated elimination (mg/day) | 1.88 |
Note the discrepancy in the internalization half-life. Pearce et al. give the rate as 1.4% per minute and describe the corresponding half-life as “about 36 min”; \(\ln 2 / 0.014\) is 49.5 minutes. The 1.4% figure is used above because it is the one their model consumes. Which of the two is the measured quantity in the underlying source is an open check.
Against the epcoritamab regimen, which primes at 0.16 mg and reaches a full dose of 48 mg weekly:
tibble(Dose = c("0.16 mg priming", "0.8 mg intermediate", "48 mg full")) |>
mutate(mg = c(0.16, 0.8, 48),
`Multiples of the standing CD3 pool` = signif(mg / r_mg, 2),
`Percent of one week's internalization capacity` =
signif(100 * mg / (7 * vmax_mg_day), 2)) |>
select(-mg) |>
knitr::kable()| Dose | Multiples of the standing CD3 pool | Percent of one week’s internalization capacity |
|---|---|---|
| 0.16 mg priming | 1.7 | 1.2 |
| 0.8 mg intermediate | 8.6 | 6.1 |
| 48 mg full | 510.0 | 360.0 |
The priming dose is a few multiples of the standing receptor pool and a rounding error against the pool’s weekly turnover. The sink swallows it. The full dose is several times the weekly capacity of the blood CD3 pool, which is where the nonlinearity finally shows.
The calculation counts only circulating T cells. Whole-body T cells are roughly fifty times the blood pool, and if a TCE reached all of them the capacity would be near 100 mg/day and no clinical dose would ever saturate CD3. Observed half-lives of a week say it does not. How much of the tissue T-cell pool is accessible to a TCE is the open question this calculation exposes, and it is the one to put to the Pearce model, which assumes blood counts throughout.
8. Order of Work
- Check the transcribed parameters against the printed tables. Every number in Sections 3, 4 and 5 is ⚠️ in References. The odronextamab simulation reproduces a baseline total clearance of 7.1 L/day where the paper reports a population median of 5.4 L/day, and whether that gap is the covariate model, between-subject variability, or a transcription error is unresolved.
- Fill the parameter table. PK parameters has eight drugs and four complete entries. Epcoritamab’s quasi-steady-state parameters and talquetamab’s time-dependent clearance are the two highest-value gaps, because they are the two published models with a structure nothing else here duplicates.
- Reproduce Figure 2 of Pearce et al. Their simulation of half-life against CD3 affinity, from 1000 nM to 1 nM at a fixed 0.01 mg/kg dose, is the generic version of Section 3 and is reproducible from the equations in their methods.
- Test explanation 4 against one dense profile. Any first-in-human report with individual concentration-time data at the lowest cohort would do.
- Write the note to Bill Denney. Section 4 of PK parameters lists what
nlmixr2libis missing and is already in a form that can be sent.
9. Simulation Study: Is the Sharp Drop There and Unobserved?
Sections 3 and 4 argue from published fits. This section builds a mechanism, simulates it, and asks whether the argument survives. No quantitative systems pharmacology model, no trimer, no cytokine cascade. Two target pools with turnover, quasi-steady-state binding, and drug-driven killing of the pool that the drug is supposed to kill.
\[ \frac{dA_c}{dt} = -\frac{CL}{V_c}A_c-\frac{Q}{V_c}A_c+\frac{Q}{V_p}A_p - k_{int}^{CD3}R_{CD3}\frac{C}{K_{ss}^{CD3}+C}V_c - k_{int}^{TAA}R_{TAA}\frac{C}{K_{ss}^{TAA}+C}V_c \] \[ \frac{dR_{CD3}}{dt}=k_{deg}\!\left(R^0_{CD3}-R_{CD3}\right)-k_{int}^{CD3}R_{CD3}\frac{C}{K_{ss}^{CD3}+C} \] \[ \frac{dR_{TAA}}{dt}=k_{deg}\!\left(R^0_{TAA}-R_{TAA}\right)-k_{int}^{TAA}R_{TAA}\frac{C}{K_{ss}^{TAA}+C}-k_{\rm kill}R_{TAA}\frac{C}{K_{ss}^{TAA}+C} \]
CD3 turns over and is not killed, because a T-cell engager does not kill T cells. The tumor antigen turns over and is killed, because that is the mechanism of action.
Scope, narrowed here and for the rest of this section. Molecules with an intact Fc domain and therefore neonatal Fc receptor recycling. Blinatumomab, tebentafusp and the albumin-binding formats are out: at 54 kDa and without an Fc, blinatumomab clears in hours whatever it binds, and nothing below is about them.
truth <- rxode2({
cc <- central/vc
occ_cd3 <- cc/(kss_cd3 + cc)
occ_taa <- cc/(kss_taa + cc)
cl_cd3 <- kint_cd3*r_cd3*vc/(kss_cd3 + cc)
cl_taa <- kint_taa*r_taa*vc/(kss_taa + cc)
cltot <- cl + cl_cd3 + cl_taa
d/dt(central) <- -cl/vc*central - q/vc*central + q/vp*peripheral -
kint_cd3*r_cd3*vc*occ_cd3 - kint_taa*r_taa*vc*occ_taa
d/dt(peripheral) <- q/vc*central - q/vp*peripheral
d/dt(r_cd3) <- kdeg_cd3*(r_cd3_0 - r_cd3) - kint_cd3*r_cd3*occ_cd3
d/dt(r_taa) <- kdeg_taa*(r_taa_0 - r_taa) - kint_taa*r_taa*occ_taa -
kkill*r_taa*occ_taa
r_cd3(0) <- r_cd3_0
r_taa(0) <- r_taa_0
})
## CD3 arm from Pearce et al., independent of any fitted popPK:
## 50,000 CD3 per T cell, 1500 T cells/uL, 5 L blood, 1.4%/min internalisation.
cd3_mg <- 0.0934 # mg of TCE for 1:1 occupancy of blood CD3
## TAA arm from odronextamab's fitted Michaelis-Menten sink: Vmax0/km*Vc.
p_sim <- c(cl = 0.189, vc = 4.99, vp = 4.42, q = 1.21,
kss_cd3 = 10*1e-9*150000*1000, # 10 nM CD3 affinity, as mg/L
r_cd3_0 = cd3_mg/4.99, kint_cd3 = 0.014*60*24, kdeg_cd3 = log(2)/1,
kss_taa = 1.95, kint_taa = 1, kdeg_taa = log(2)/3, kkill = 1.09)
p_sim["r_taa_0"] <- 7.50*p_sim[["kss_taa"]]/(p_sim[["kint_taa"]]*p_sim[["vc"]])9.1 The Control: The Same Molecule Without the CD3 Arm
Switch the CD3 pool off and what remains is a B-cell depleting antibody with the same CD20 affinity, the same target pool, the same Fc and the same disposition. Run both at a T-cell engager priming dose and at a rituximab-like dose, and the confound between being a T-cell engager and being dosed at a microgram-per-kilogram level comes apart.
half_life <- function(d, t1, t2) {
w <- dplyr::filter(d, time >= t1, time <= t2, cc > 0)
unname(-log(2)/coef(lm(log(cc) ~ time, data = w))[2])
}
one <- function(cd3, dose, label) {
p <- p_sim; if (!cd3) p["r_cd3_0"] <- 0
d <- as_tibble(rxSolve(truth, p, et(amt = dose, time = 0) |> et(seq(0, 42, by = 0.005))))
tibble(Molecule = label, `Dose` = paste(dose, "mg"),
`C0 (mg/L)` = signif(d$cc[2], 3),
`C0 / Kss` = signif(d$cc[2]/p[["kss_taa"]], 3),
`t1/2 0-1 d` = round(half_life(d, 0.01, 1), 2),
`t1/2 3-7 d` = round(half_life(d, 3, 7), 2),
`t1/2 21-42 d` = round(half_life(d, 21, 42), 2)) |>
mutate(`Curvature ratio` = round(`t1/2 21-42 d`/`t1/2 0-1 d`, 1))
}
bind_rows(
one(TRUE, 0.7, "T-cell engager"),
one(FALSE, 0.7, "B-cell depleting mAb"),
one(TRUE, 1000, "T-cell engager"),
one(FALSE, 1000, "B-cell depleting mAb")) |>
knitr::kable()| Molecule | Dose | C0 (mg/L) | C0 / Kss | t1/2 0-1 d | t1/2 3-7 d | t1/2 21-42 d | Curvature ratio |
|---|---|---|---|---|---|---|---|
| T-cell engager | 0.7 mg | 0.139 | 0.0713 | 0.39 | 2.42 | 2.93 | 7.5 |
| B-cell depleting mAb | 0.7 mg | 0.139 | 0.0713 | 0.43 | 2.39 | 3.00 | 7.0 |
| T-cell engager | 1000 mg | 200.000 | 103.0000 | 2.73 | 11.20 | 30.75 | 11.3 |
| B-cell depleting mAb | 1000 mg | 200.000 | 103.0000 | 2.73 | 11.21 | 30.94 | 11.3 |
The CD3 arm makes no difference to the shape. At 0.7 mg the engager and the plain antibody give curvature ratios of 7.5 and 7.0; at 1000 mg both give 11.3. Whatever is going on, it is not something T-cell engagers do that antibodies do not. It is what the dose does.
And the sharp drop is there. At 0.7 mg the apparent half-life is 0.39 days over the first day and 2.9 days from week three, a 7.5-fold steepening. That is the elbow. It lives between 0.14 and 0.01 mg/L and it is over inside 24 hours.
9.2 Where the Elbow Sits at Each Dose
doses <- c(0.7, 20, 160, 1000)
prof <- lapply(doses, function(dd) {
as_tibble(rxSolve(truth, p_sim, et(amt = dd, time = 0) |> et(seq(0, 42, by = 0.02)))) |>
mutate(dose = factor(paste(dd, "mg"), levels = paste(doses, "mg")))
}) |> bind_rows()
ggplot(prof, aes(time, cc, colour = dose)) +
geom_hline(yintercept = 1.95, linetype = 2, colour = "grey45") +
annotate("text", x = 41, y = 1.95, label = "Kss", hjust = 1, vjust = -0.5,
size = 3.2, colour = "grey35") +
geom_line(linewidth = 0.6) +
scale_y_log10() + annotation_logticks(sides = "l") +
labs(x = "Days after a single dose", y = "Concentration (mg/L)", colour = NULL)
The 1000 mg profile is the textbook picture: flat while the target is saturated, then bending as concentration falls toward \(K_{ss}\). The 0.7 mg profile has its entire elbow in the first hours, below the bottom of the axis a clinical assay can reach.
9.5 Where the Target Sits, and Why It Decides the Answer
Every model so far, published and simulated, puts the target in the central compartment. For a T-cell engager that is the wrong place. About 2% of T cells circulate; BCMA sits on plasma cells in bone marrow; CD20 sits on B cells in lymph nodes, marrow and spleen. The target is overwhelmingly peripheral, and the drug has to distribute before it can meet it.
Run the same model twice with the antigen pool moved, total capacity matched at 14.6 mg/day, and the placement decides the result at exactly one dose level.
mk <- function(where) {
drv <- if (where == "central") "cc" else "cp"
vv <- if (where == "central") "vc" else "vp"
rxode2(paste0('
cc <- central/vc
cp <- peripheral/vp
occ_cd3 <- cc/(kss_cd3 + cc)
occ_taa <- ', drv, '/(kss_taa + ', drv, ')
cltot <- cl + kint_cd3*r_cd3*vc/(kss_cd3+cc) + kint_taa*r_taa*', vv, '/(kss_taa+', drv, ')
loss <- kint_taa*r_taa*', vv, '*occ_taa
d/dt(central) <- -cl/vc*central - q/vc*central + q/vp*peripheral -
kint_cd3*r_cd3*vc*occ_cd3 ',
if (where == "central") "- loss" else "", '
d/dt(peripheral) <- q/vc*central - q/vp*peripheral ',
if (where == "peripheral") "- loss" else "", '
d/dt(r_cd3) <- kdeg_cd3*(r_cd3_0 - r_cd3) - kint_cd3*r_cd3*occ_cd3
d/dt(r_taa) <- kdeg_taa*(r_taa_0 - r_taa) - kint_taa*r_taa*occ_taa - kkill*r_taa*occ_taa
r_cd3(0) <- r_cd3_0
r_taa(0) <- r_taa_0'))
}
capacity <- 7.50 * 1.95 # mg/day at saturation, matched
loc <- function(where, dose) {
m <- mk(where)
pp <- p_sim
pp["r_taa_0"] <- capacity/(pp[["kint_taa"]] *
pp[[if (where == "central") "vc" else "vp"]])
d <- as_tibble(rxSolve(m, pp, et(amt = dose, time = 0) |> et(seq(0, 42, by = 0.005))))
tibble(`Target in` = where, Dose = paste(dose, "mg"),
`t1/2 0-1 d` = round(half_life(d, 0.01, 1), 2),
`t1/2 21-42 d` = round(half_life(d, 21, 42), 2)) |>
mutate(`Curvature ratio` = round(`t1/2 21-42 d`/`t1/2 0-1 d`, 1))
}
bind_rows(lapply(c(0.7, 160, 1000), function(d)
bind_rows(loc("central", d), loc("peripheral", d)))) |>
knitr::kable()| Target in | Dose | t1/2 0-1 d | t1/2 21-42 d | Curvature ratio |
|---|---|---|---|---|
| central | 0.7 mg | 0.39 | 2.93 | 7.5 |
| peripheral | 0.7 mg | 1.78 | 1.42 | 0.8 |
| central | 160 mg | 2.39 | 13.02 | 5.4 |
| peripheral | 160 mg | 2.75 | 13.48 | 4.9 |
| central | 1000 mg | 2.73 | 30.75 | 11.3 |
| peripheral | 1000 mg | 2.79 | 30.77 | 11.0 |
At the priming dose the elbow exists only if the target is central. With the antigen in the central compartment the curvature ratio is 7.5; move it to the peripheral compartment and it is 0.8, which is a straight line. At 160 and 1000 mg the placement barely registers, 5.5 against 4.9 and 11.3 against 11.0.
The reason is a race between two timescales. Distribution has a half-life of \(\ln 2/(Q/V_c+Q/V_p)\) = 1.34 days. A central target eliminates the priming dose with a half-life of 0.39 days, three times faster than the drug can reach the periphery, so the elbow happens before distribution does. A peripheral target cannot eliminate what has not arrived yet, so the target-mediated loss is spread across the distribution phase and there is no elbow left to see. At a saturating dose the target is destroyed in a day either way and the race never happens.
This is the two-compartment effect that the Peletier and Gabrielsson phases cannot express, and it changes the conclusion of Section 9.3 rather than decorating it.
9.3 The Hypothesis That Survives
Stated so that it can be shot at.
A T-cell engager shows exactly the target-mediated disposition its affinity and target burden imply, and three things in series keep it off the page. The priming dose never puts the concentration above \(K_{ss}\), so the elimination is saturable but arithmetically first-order. The target is mostly peripheral, so what elbow the arithmetic allows is spread across a 1.3-day distribution phase instead of happening in the first hours. And the target is destroyed within a day or two, so by the therapeutic dose, where concentrations finally exceed \(K_{ss}\), there is no sink left to bend the curve. None of the three has anything to do with CD3.
The middle clause carries most of the weight. Without it the hypothesis predicts a sharp drop in the first 24 hours that nobody has looked for; with it, there is no sharp drop to find, and the prediction changes from “sample harder” to “the profile really is log-linear.”
The predictions it makes, and how each could fail.
| Prediction | Fails if |
|---|---|
| A B-cell depleting mAb dosed at 0.7 mg shows the same elbow as a TCE at 0.7 mg | The engager’s profile is steeper, which would mean CD3 contributes |
| Dense sampling over the first 24 h after a TCE priming dose, with a sub-ng/mL assay, shows a half-life under a day if the target is central | The observed early half-life matches the reported terminal one, which would instead support a peripheral target |
| Moving the antigen pool to the peripheral compartment removes the elbow at a priming dose and not at a saturating one | The placement changes nothing at either dose |
| A TCE given without step-up, straight to the full dose, shows the mAb-like elbow as concentration decays through \(K_{ss}\) | The profile is log-linear at the full dose too |
| Obinutuzumab pretreatment removes the elbow from a first glofitamab dose | Glofitamab shows an elbow anyway |
Row 1 is already simulated above. Row 4 is already observed: glofitamab is pretreated and its published model is linear.
9.4 What the Round-Trip Falsified
The hypothesis this section started from was that the clinical sampling schedule hides a large target-mediated clearance, so a population fit reports a small time-dependent term instead. Simulating the odronextamab regimen from the mechanism above, sampling at predose and post-infusion times with a 0.10 mg/L quantitation limit, and refitting with teclistamab’s \(CL_1+CL_2e^{-K_{DES}t}\) form recovers a 25-fold clearance change against a 40-fold truth.
The clinical schedule does see it. The published odronextamab model reports 26-fold, which is what this round-trip predicts, so nothing is being hidden there. That leaves teclistamab’s 2.2-fold and mosunetuzumab’s 1.8-fold needing a different explanation from sampling: a genuinely smaller target pool in heavily pretreated myeloma and lymphoma, a narrower dose range, or subcutaneous absorption smearing the early profile. Which of those it is, is the next simulation and is not done.