I Beat Claude on TNFα for $677
What did I have that Anthropic didn’t?
Less of everything. Fewer GPUs, no wet lab, no employees, no model of my own. Same protein target, same contract lab, same assay, same month, and we even rented compute from the same company. Seven of my ten designs bound. Of their 150, twelve did — 8% across their models, 13% for their best one. They put roughly $27,100 of compute into that target. My invoice for the whole campaign was $677.*
The explanation is not that I am cleverer than a frontier lab. The difference sits in one stage of a loop, and what that stage is doing was written down in 2003.
Whether either number means anything depends on how hard a target TNFα actually is.
Four campaigns, 169 designs, zero binders
That was the public record before August. DeepMind’s AlphaProteo: 0 of 54. ByteDance’s PXDesign: 0 of 20. MIT’s BoltzGen: 0 of 35. Even Anthropic’s own Mythos Preview, which averages 35.1% across targets in single-target mode, went 0 of 60 here.
DeepMind wrote down the reason in their own paper: a “flat, highly polar binding site at an interface between 2 subunits in a homotrimer.” The site runs along the seam between two chains, and there is almost no grease on it.
The first non-zero anyone published on TNFα was Anthropic’s. On a target that had produced nothing, 13% is a real result, and I read it as one.

By now you are probably suspecting money.
$2,258 a binder against $97
Those are the two unit costs. The comparison is unusually clean for this kind of thing, because both campaigns ran on Modal.
Anthropic published their budgets: $10,000 for a 24-hour single-target campaign, $50,000 for a 48-hour run across 14 targets, both at $4.00 per H100-hour. TNFα was hit by four of those runs, which prorates to about 6,800 H100-hours and $27,100. Their paper says the budget was spent in full.
My invoice was $677: 353 GPU-hours, ten jobs in parallel, 36.6 hours of wall clock. A 40x gap, and it survives normalization — their hardware was H100s and mine was not, but priced at their own rate my hours would still have come to $1,412.
Tools, then?
The tools are not different either
Everything I used is public, free, and was available to Anthropic from the start. PXDesign, RFdiffusion3 and Complexa for backbones. ProteinMPNN for sequences. Hotspot and clash filters. A Boltz-2 screen. The optimization runs inside mosaic, the design library Escalante Bio open-sourced. Anyone reading this can install all of it this afternoon.
What did the work was that optimization stage. 46% of my GPU-hours went into it; backbone generation took 14%.
Optimizing sequence and structure at the same time
Hallucination-based binder design — what BindCraft does — starts from a random sequence. Run it through a structure predictor together with the target and it will touch the surface somewhere, by accident. You then take gradients that strengthen that contact and the binder’s own fold, rewrite the sequence, and predict again. Hundreds of rounds later, something that merely touched has been grown into something that binds. I run the same loop with Boltz-2.
So the loop runs over sequences, not inside a single prediction.
And it has a quiet failure mode. If you reinitialize the structure predictor’s internal state at every step, nothing holds the binder against the target. The model is free to re-dock it onto a different face, or refold it into a different topology, and it does. From there the optimizer goes on improving the score of a molecule that is no longer the one it was seeded with. The sequence gets better. The molecule gets worse. The loss says nothing.
So I stopped reinitializing. The predictor’s trunk representation carries across sequence updates and feeds forward as the initial state for the next prediction.**
With it, 57% of the sequence can turn over and the design is still the same design. The predicted structure moves with the sequence instead of being decided again from scratch at every step. You commit to a shape, and then search a long way out for the sequence that best produces it.
As it happens, the same order included ten more designs: same generators, same seeds, same hotspots, same selection, same plate, same day, with that one stage switched off. One of the ten bound.***
It is also where the $677 comes from. If you cannot hold the pose, your starting point has to be good, and finding a good starting point is itself where the compute goes. If you can hold it, you can run an ordinary generative model wide and cheap and take whatever mediocre seeds it hands you. Cheap seeds are usable because you can rewrite them a long way.
What was written down in 2003
There is nothing new in what I did. A section heading in a 2003 paper reads “Simultaneous optimization of sequence and structure.”
It is Kuhlman and Baker’s Top7 paper, and the section opens: “The critical feature of the design protocol is the cycling between sequence design and backbone optimization. The goal of the backbone optimization step, to identify the lowest free energy backbone conformation for a fixed amino acid sequence, is formally analogous to the high-resolution structure prediction problem, and we used the Rosetta program, which we developed for structure prediction.”
What they found is the part that matters. Backbones generated without regard to side-chain packing have no low-energy sequences at all. Sequence design and backbone flexibility have to be coupled. That was 23 years ago, and it was a warning against pulling them apart.
The neural era pulled them apart. BindCraft, the most widely used open pipeline in this field, hallucinates with AF2, then applies ProteinMPNN to the surface and core while keeping the interface intact, then filters what survives with an AF2 monomer prediction. The cycle between sequence and structure moved outside the design loop and became a gatekeeper — one that skips the interface, which is the part that matters.
Escalante Bio put a piece of it back inside. They run ProteinMPNN’s inverse-folding term in the loss function with gradients through it, at a weight of 10. Their stated reason is plain: structures that are easy to inverse fold tend to be more soluble and more stable.
I looked at that 10 and decided it was over-constraining. Pin the sequence that hard and the search should suffocate, or so I thought. I lowered it to about 1.5, roughly 30% of total loss. The reasoning was sound.
The loop ran fine. The loss came down, the optimization went to completion. What broke was downstream. Push the resulting sequences through the co-folding engines and nothing worth ordering comes out the other side. Put the weight back to 10 and good designs appear at the same step.
So what that term predicts is not what happens inside the loop. It is what happens outside it.
Why that term and not another? An optimizer will push on anything you put in a loss — that is what optimizing is. There is no term it cannot push on. What differs is what is waiting at the end of the push. Push on co-folding confidence and you find inputs that make the predictor more certain, which is a different thing from the molecule being better, and none of it travels to a model outside the loop. Push on ProteinMPNN and there are still shortcuts — sequences MPNN likes in general — but what sits at the end of those shortcuts is much closer to what you wanted.
What carrying the trunk does is make the 2003 requirement hold inside a neural predictor. The structure follows the sequence continuously instead of jumping to a different basin, which is what coupling means when your energy function is a network. Half the sequence can turn over and the design survives it. Because the two stay coupled, you can push the inverse-folding term hard without the design falling apart. Because you can push it hard, the candidates whose shape and sequence disagree never reach a plate. Cutting that wasted search is what seven of ten and $677 are made of.
What I did have
I chose the epitope with my own eyes — structure and surface hydrophobicity, a hydrophobic patch spanning the seam. Anthropic’s claim is about autonomy: “it chose where on each protein target to design against.” That is the one stage I never had to automate.
All twenty sequences from both arms, the per-engine scores behind the selection, and the binding kinetics are in the data folder for this post under ODC-BY. Anthropic’s numbers can be rebuilt from their release.
So what did I have that Anthropic didn’t? A loop that refused to let go, and a pair of human eyes that happened to be looking. Neither one needs a frontier lab’s budget.
* Both figures are compute only and exclude wet lab.
** Patent pending.
*** One target, ten designs per arm. The same comparison on a second target, PD-L1, gives four of ten against one of ten — real, and smaller. The run is not closed: 19 of 20 designs have both replicates and one of my hits currently has one. Call it six of ten if you prefer. This is a hit-rate result and says nothing about affinity or function; binding is not inhibition and I have run no TNFR1 competition assay. Both antigens were ACROBiosystems human TNFα but different SKUs: theirs TNA-H5228, mine TNA-H4211, the one MIT used for BoltzGen.