Notes

TYK2 in Crohn's disease: what actually failed

·12 min·Repo ↗

TYK2 inhibitors have missed the primary endpoint in two Crohn's trials. Should we write off the target, or did the trials measure the wrong thing?

Two failed trials, three possible explanations

Two different companies have run a TYK2 inhibitor in Crohn's disease, and both missed. Bristol Myers Squibb's deucravacitinib missed its primary in LATTICE-CD, and Ventyx's VTX958 missed in its own phase-2 trial. Two molecules, two sponsors, the same result, and both programs were shut down. A clean conclusion in isolation is that TYK2 does not work in the gut.

That same molecule, Sotyktu, is FDA-approved for moderate-to-severe plaque psoriasis, where it is one of the most effective oral drugs on the market. In the pivotal POETYK PSO-1 trial, 58% of patients reached PASI 75 at week 16 versus 13% on placebo. It was approved again, in 2026, for psoriatic arthritis. And a second TYK2 inhibitor, Takeda's zasocitinib, just beat deucravacitinib head-to-head in phase-3 psoriasis. So TYK2 is a real target and these are strong molecules: the pathway works in skin and in joints.

So the question is whether this is a validated, potent, approved mechanism that also happens to be inert in the gut. That can happen; the same pathway can drive disease in one tissue and not work in another. But that contradiction is a reason to look harder at the trials before writing off the target: when two drugs this good both miss, "the tissue is hopeless" and "the trials asked the wrong question" are both live hypotheses, and the outcome label, fail and fail, cannot tell them apart.

Failed judges the whole trial. But a trial can fail for reasons that point in opposite directions, and which way it failed is important to anyone still betting on TYK2 in IBD. If the biology is dead, hitting TYK2 just does not matter in the gut, and you walk away. If the molecule was weak, or the dose was off, or the endpoint could not see the effect, the target is still open and worth another shot. The same failure on paper, very different decisions underneath.

So let's turn that clinical question into a statistical one. A lot goes into how a trial turns out, and we can think of the result as a sum of a few effects. One is the biology: how much hitting the target actually helps in this tissue (call it α). One is the molecule: how good this particular compound and dose are (call it γ). And one is the measurement: whether the endpoint can even see a drug effect over the placebo response. A single failed trial gives you only the sum. It can't tell you which term is to blame.

Illustrative, not-fitted schematic: three hatched stacked bars that each sum to the same failed trial, splitting the blame differently across biology, molecule or dose, and measurement

The good thing is that the two failed trials give us several useful comparisons. In LATTICE-CD, the same patients on the same treatment were assessed for both clinical remission and endoscopic response. That lets us ask whether the trial's conclusion depended on how benefit was measured.

VTX958 gives us the next comparison: does the same endoscopic pattern show up with a different TYK2 molecule? The dose arms show how consistent the signal is across doses, and the ulcerative-colitis study shows whether it extends beyond Crohn's disease.

No single comparison can prove why the trials failed. But taken together, they can show which explanation best fits the evidence: inactive TYK2 biology, a molecule or dose problem, or an endpoint that hid the objective signal.

We'll start with the clearest comparison, the two LATTICE endpoints, and then ask whether the pattern holds across molecules, doses, and diseases. The practical question is simple: do these results justify walking away from TYK2, or did the headline failures hide a real, repeatable objective signal?

LATTICE-CD: one trial, two answers

A clinical trial is an enormous, expensive, time-consuming experiment. But almost everything downstream of it reduces the whole thing to a single bit. Pass or fail.

Let us look at what is discarded in LATTICE-CD.

LATTICE-CD had a co-primary endpoint: to succeed, deucravacitinib had to beat placebo on both clinical remission (CDAI) and endoscopic response at week 12. CDAI remission is a symptom-weighted composite clinical endpoint, while endoscopic response measures visible mucosal inflammation.

LATTICE endpointDeucravacitinibPlacebo
CDAI remission31.4%28.3%
Endoscopic response23.3%8.3%

Because LATTICE had to win on both co-primary endpoints, the lack of separation on CDAI remission sank the whole trial, even with the endoscopic signal.

Why the two endpoints diverge

The endpoint that failed, clinical remission, is worth a closer look. Start with one number: even on placebo, 28.3% of patients still reached "clinical remission." That is what a symptom endpoint does in Crohn's: patients feel better on their own so often that a real drug has little room left to show an effect. And the co-primary rule required exactly that endpoint. So the symptom score wasn't really measuring the drug. It was measuring the placebo response.

And that head start is big. On the objective endpoint, only about 8% of placebo patients responded. On the symptom endpoint, it was near 28%. So a symptom primary gives placebo a twenty-point lead, and a drug with a real but moderate effect can clear the objective bar while vanishing under the symptom one.

That bigger placebo response is what made it so hard to separate drug from placebo on CDAI remission. It doesn't prove the endpoint was invalid. It just shows the trial gave two different answers: one for clinical remission, another for mucosal inflammation.

The simplest read: two proportions and a p-value

Let's start with the simplest thing you can do with the numbers the trial reported. Each endpoint is just two proportions: responders on drug versus placebo. Compare them with a standard two-proportion test and you get a difference and a p-value, the chance of seeing a gap this big if the drug truly did nothing.

endpointdrugplacebodifference (95% CI)z-test pFisher p
objective (endoscopy)23.3%8.3%+15 pts [+4, +26]0.0190.025
subjective (remission)31.4%28.3%+3 pts [-12, +18]0.6920.718

The estimated treatment difference was approximately +15 percentage points for endoscopic response and +3 points for CDAI remission. The reconstructed analysis therefore supports an objective endoscopic signal but no clear clinical-remission signal.

This is an approximate, unadjusted reconstruction from the published response rates, not the sponsor's prespecified stratified, imputed, and multiplicity-controlled analysis.

Show two-proportion analysis code
import numpy as np, pandas as pd
from scipy.stats import norm, fisher_exact

# LATTICE-CD, deucravacitinib 3 mg BID vs placebo  (responders = round(rate × N))
obj  = (20, 86, 5, 60)    # objective: endoscopic response  23.3% vs 8.3%
subj = (27, 86, 17, 60)   # subjective: clinical remission   31.4% vs 28.3%

def two_proportion(y_d, n_d, y_p, n_p):
    """Two-proportion comparison: difference, 95% CI, pooled z-test, and a Fisher cross-check."""
    p_d, p_p = y_d/n_d, y_p/n_p
    diff = p_d - p_p
    pool = (y_d + y_p) / (n_d + n_p)                      # pooled response rate (the null)
    z    = diff / np.sqrt(pool*(1-pool)*(1/n_d + 1/n_p))
    p    = 2*norm.sf(abs(z))
    # arms this small (~8% events) strain the normal approximation, so cross-check with
    # Fisher's exact; here the two agree (and Fisher lands on the trial's reported p = 0.02).
    _, p_exact = fisher_exact([[y_d, n_d - y_d], [y_p, n_p - y_p]])
    se   = np.sqrt(p_d*(1-p_d)/n_d + p_p*(1-p_p)/n_p)     # Wald 95% CI on the difference
    return p_d, p_p, diff, (diff - 1.96*se, diff + 1.96*se), p, p_exact

rows = []
for name, d in [('objective (endoscopy)', obj), ('subjective (remission)', subj)]:
    p_d, p_p, diff, ci, p, p_exact = two_proportion(*d)
    rows.append({
        'endpoint': name,
        'drug': f'{p_d*100:.1f}%',
        'placebo': f'{p_p*100:.1f}%',
        'difference (95% CI)': f'{diff*100:+.0f} pts [{ci[0]*100:+.0f}, {ci[1]*100:+.0f}]',
        'z-test p': f'{p:.3f}',
        'Fisher p': f'{p_exact:.3f}',
    })
pd.DataFrame(rows)

The Bayesian read

A p-value answers one narrow question: would this data be surprising if the drug did nothing? It does not say how probable a real effect is, or how large, and a decision needs both. So we fit a small Bayesian model to the same counts.

From that posterior we read two numbers off each endpoint: the response-rate difference, which is how large the effect is, and the posterior probability that the odds ratio exceeds 1.5, which is how sure it is real. We run it twice on the same trial, once on the endoscopy counts and once on the clinical-remission counts. A posterior piled to the right of the dashed no-effect line is a real drug effect; one straddling the line is indistinguishable from placebo.

Two posterior densities of the treatment effect from the same LATTICE-CD trial: the objective endoscopy endpoint sits well right of zero (posterior mean about +11 points, P(OR > 1.5) 0.86); the subjective remission endpoint straddles the no-effect line (P(OR > 1.5) 0.19)

Same patients, same drug, same trial, only the endpoint is different, and the two posteriors barely overlap. The objective endpoint sits well to the right of no-effect (a real, meaningful signal); the subjective one is pinned to the line, indistinguishable from placebo. The posterior mean effect on endoscopy (about +11 pts) sits just left of the raw +15-point gap; the skeptical prior pulls the estimate toward zero, which is exactly its job.

Both reads land in the same place:

  • Endoscopy: P(OR>1.5)=0.86P(\text{OR} > 1.5) = 0.86
  • CDAI remission: P(OR>1.5)=0.19P(\text{OR} > 1.5) = 0.19

Within LATTICE, the symptom-weighted endpoint provided little evidence of treatment separation, while the objective endpoint provided substantially stronger evidence of mucosal activity. This preserves evidence of biological activity but does not establish patient-perceived benefit.

Show Bayesian model and analysis code

Each arm is a Binomial count of responders,

ypboBinomial(npbo,ppbo),ydrugBinomial(ndrug,pdrug)y_{\text{pbo}} \sim \text{Binomial}(n_{\text{pbo}},\, p_{\text{pbo}}), \qquad y_{\text{drug}} \sim \text{Binomial}(n_{\text{drug}},\, p_{\text{drug}})

with the two response rates on the log-odds scale, so the drug's effect is a single additive shift θ\theta:

logitppbo=β,logitpdrug=β+θ\operatorname{logit} p_{\text{pbo}} = \beta, \qquad \operatorname{logit} p_{\text{drug}} = \beta + \theta

Here θ=0\theta = 0 means the drug does nothing, and eθe^{\theta} is the odds ratio, so an odds ratio of 1.5 is θ=log1.5\theta = \log 1.5. We give the effect a mildly skeptical prior and the placebo baseline a weak one,

βN(0,22),θN(0,12)\beta \sim \mathcal{N}(0,\, 2^2), \qquad \theta \sim \mathcal{N}(0,\, 1^2)

and evaluate the posterior exactly on a grid:

p(β,θy)    p(β)p(θ)  Binomial(ypboβ)Binomial(ydrugβ+θ)p(\beta,\theta \mid y) \;\propto\; p(\beta)\,p(\theta)\;\text{Binomial}(y_{\text{pbo}}\mid\beta)\,\text{Binomial}(y_{\text{drug}}\mid\beta+\theta)

From it we read the effect size pdrugppbop_{\text{drug}} - p_{\text{pbo}} and the probability the odds ratio exceeds 1.5, P(θ>log1.5)P(\theta > \log 1.5).

import numpy as np
from scipy.special import log_expit, expit

# LATTICE-CD, deucravacitinib 3 mg BID vs placebo  (responders = round(rate × N))
obj  = (20, 86, 5, 60)    # objective: endoscopic response  23.3% vs 8.3%
subj = (27, 86, 17, 60)   # subjective: clinical remission   31.4% vs 28.3%
tau  = np.log(1.5)        # a 'meaningful' effect = odds ratio > 1.5

def posterior(y_d, n_d, y_p, n_p, sd_beta=2.0, sd_theta=1.0, G=301):
    """Joint grid posterior over (beta, theta): placebo logit = beta, drug logit = beta + theta."""
    b = np.linspace(-6, 6, G); t = np.linspace(-6, 6, G)
    B, T = np.meshgrid(b, t, indexing='ij')
    lp  = -0.5*(B/sd_beta)**2 - 0.5*(T/sd_theta)**2
    lp += y_p*log_expit(B)   + (n_p - y_p)*log_expit(-B)      # placebo arm likelihood
    lp += y_d*log_expit(B+T) + (n_d - y_d)*log_expit(-(B+T))  # drug arm likelihood
    w = np.exp(lp - lp.max()); w /= w.sum()
    return T, w, expit(B + T) - expit(B)   # theta grid, weights, risk difference (drug − pbo)

VTX958: the pattern repeats in a second trial

LATTICE alone could still represent a molecule-specific or trial-specific result. VTX958 provides the more important test because it used different chemistry in an independent Crohn's trial.

VTX958's CDAI-based primary endpoint missed. But on endoscopic response it separated from placebo at both doses: 24.3% at 225 mg and 32.4% at 300 mg, against 5.7% on placebo. Both doses showed objective SES-CD improvement, and the inflammatory biomarkers moved in the same general direction.

Endoscopic response by arm in Crohn's: deucravacitinib (placebo 8.3%, 3 mg 23.3%, 6 mg 16.7%) and VTX958 (placebo 5.7%, 225 mg 24.3%, 300 mg 32.4%)

Run the same posterior on its endoscopy counts and it agrees with deucravacitinib's read, only stronger:

VTX958 300 mg: P(OR>1.5)=0.94P(\text{OR} > 1.5) = 0.94, with a posterior mean response difference of approximately +18 percentage points.

Show VTX958 analysis code

This reuses the posterior() function defined in the previous block.

# VTX958 300 mg vs placebo, endoscopic response (responders = round(rate × N))
T, w, rd = posterior(12, 37, 2, 35)          # 32.4% vs 5.7%; reuse the posterior defined above
print(f"VTX958 300 mg  P(OR>1.5) = {w[T > tau].sum():.2f}   effect = {(w * rd).sum() * 100:+.0f} pts")

The endoscopic findings were secondary and the nominal p-values were not protected by the successful completion of the primary testing hierarchy. They are therefore supportive rather than confirmatory. The counts are reconstructed from the rates reported at ECCO 2025 and the arm sizes, the same rate-times-N reconstruction used for LATTICE-CD above.

Two unrelated molecules, two independent trials, the same effect in the same tissue. The recurrence of the clinical-endoscopic split with different chemistry makes a deucravacitinib-specific explanation less likely and supports shared TYK2-associated mucosal activity. This is the comparison that matters most: it separates a drug that happened to work once from a target effect that is really there.

What alternative explanations remain?

Dose uncertainty

Inside deucravacitinib, the 3 mg arm cleared placebo on the objective endpoint (23.3% versus 8.3%, p = 0.02), but the higher 6 mg arm did not (16.7%, p = 0.16). Binary endoscopic-response rates were non-monotonic across the deucravacitinib doses, but the arms were small and other SES-CD analyses also showed improvement. The dose pattern is therefore difficult to interpret conclusively. A response that peaks and then fades is a compound story, exposure, an off-target ceiling, or just noise in an arm of about sixty patients. It sits in γ, not in the target. So the 6 mg miss is not evidence that the biology failed. The dose comparison should remain an uncertainty, not proof that the target biology is cleared.

Disease specificity

Deucravacitinib did not produce the same objective pattern in ulcerative colitis; on the analogous objective endpoint it falls below placebo, 19.3% against 27.9%. This limits the scope of the argument: any TYK2-associated activity may be Crohn's-specific rather than a general effect across inflammatory bowel disease.

The same objective endoscopy endpoint, opposite verdict by disease: in Crohn's deucravacitinib beats placebo (+15 pts), in ulcerative colitis it falls below it (−8.6 pts)

Target validity

TYK2's established efficacy in psoriasis and PsA confirms that the compounds can engage a clinically relevant pathway. It does not, by itself, establish efficacy in Crohn's disease.

What the evidence says, and does not say

TrialClinical or symptom-weighted assessmentObjective endoscopic assessment
LATTICE-CDP(OR>1.5)=0.19P(\text{OR} > 1.5) = 0.19 for CDAI remissionP(OR>1.5)=0.86P(\text{OR} > 1.5) = 0.86
VTX958CDAI-based primary endpoint missedP(OR>1.5)=0.94P(\text{OR} > 1.5) = 0.94 at 300 mg

Collapsing both trials into negative primary-endpoint labels conceals the fact that their objective endpoints produced a different and repeated pattern.

Across two independent molecules, the clinical endpoints did not demonstrate clear separation from placebo, while the objective endoscopic endpoints produced consistent evidence of mucosal activity. This makes the completed trials a weak basis for declaring TYK2 biologically inactive in Crohn's disease.

The evidence does not establish a clinically successful drug. Durability, symptom benefit, dose selection, safety, and patient-level benefit remain unresolved.

The failure labels made the target look dead. The endpoint-level evidence says it should not yet be called dead, but not that it works.

The decisive Crohn's trial is still running

That is exactly what the TAK-279 trial is meant to settle. Takeda's TAK-279 (zasocitinib) in Crohn's uses endoscopic response as its sole primary endpoint, with CDAI remission and the patient-reported scores as secondary. That is the endpoint fix designed in from day one rather than salvaged after the fact. If TYK2 reaches the gut, an objective primary will show it, and no placebo-swamped symptom endpoint can bury it. The primary readout is expected in late 2026.

The next trial can determine whether TYK2 produces a sufficiently large and durable benefit in Crohn's disease. The completed trials show why their primary-endpoint labels alone were insufficient to declare the target dead.