We tried to repair the public mouse map. Here is how far we got.
Dan Siroker, October 4, 2026
On October 4, 2026, we opened nine regions of the public mouse cortex map that our pipeline had never seen, scored it once, and wrote down the answer. This post is that answer, pass and fail.
The previous post showed a small model judging proofreading decisions better than the published human-expert figure. That is a benchmark. A benchmark hands you a candidate and asks yes or no. The real job is harder: find the mistakes in a map with no candidates handed to you, fix them, and do not create new ones. So we built a pipeline that does the whole job and tested it the only way I trust, which is to decide the rules before you look at the answer.
The map
The MICrONS project mapped one cubic millimeter of mouse visual cortex, more than 200,000 cells, and released the automatic segmentation along with the proofreading that people have done on parts of it. That proofreading is the truth we scored against: 1,754 proofread neurons across nine regions, 388.9 millimeters of traced path in all. Think of the released map as a road atlas drawn by a machine, with a few hundred roads checked by a surveyor. We asked how many of the machine's broken roads we could reconnect without connecting roads that do not meet.
Here's how it works:
- Baseline. Pieces inside a region that do not touch get separate labels. This corrects the start state for a cropped test and is not counted as repair.
- Pair model. A 3D network looks at two pieces and says whether they are one neuron. We pre-trained it on cuts we made ourselves in the map's own segments, with no human labels, then fine-tuned it on 1,294 joins labeled from the proofread state of four other regions.
- Tip judge. A second model asks "does this tip continue?" at threshold 0.96.
- Budget. 1,000 pair-model rows per region plus the judge's rows. We call this J3.
A fourth stage, J4, added joins from a dense image model. J4 was the candidate we pre-registered. The success rule, a gain of at least 0.005 with the paired 95 percent lower bound above zero, and the hashes of 72 files (checkpoints, scripts, inputs) were written down before the nine regions were opened.
What happened
The score is normalized expected run length, which is the field's standard: how far along a neuron can you travel before hitting a break or a wrong join, as a fraction of its true length.
| State | Plain nERL | Breaks on 388.9 mm | Wrong joins |
|---|---|---|---|
| Baseline (components) | 0.818 [0.795, 0.840] | 2,826 | 290 |
| J3 (pair model + tip judge) | 0.858 [0.837, 0.876] | 2,198 | 299 |
| J4 (J3 + image joins) | 0.861 [0.840, 0.879] |
J3 raised run length by +0.0395 [+0.0270, +0.0538] over the baseline, and it was positive in every one of the nine regions. Breaks fell from 2,826 to 2,198, from 7.27 to 5.65 per millimeter. Wrong joins went from 290 to 299. So we closed about a fifth of the breaks and added a few wrong joins.
J4, the stage we actually pre-registered as the candidate, gained +0.0033 [-0.0048, +0.0123] over J3. The lower bound is below zero. By our own rule, J4 failed. Its gain sits on one region and ten neurons. We said what success would look like before we looked, and it did not look like that.
The part I want you to read twice
Of the 20,578 joins J3 made across the nine regions, only 269 fall where a finished, proofread cell lets us check them. Of those 269, 238 were right and 31 were wrong. That is a precision of 0.885, on the joins we can check. Another 410 joined pieces of the same proofread-but-unfinished cell, 113 connected pieces of the same unproofread object, and 19,638 rows, 95.4 percent of everything the pipeline did, connect objects nobody has ever proofread.
In other words, we measured run length on the cells where truth exists. For the other 95 percent, we do not know the precision. Anyone who tells you their automatic repair is 88 percent precise on a whole brain is telling you about the 1 percent they could check. We are telling you the same thing, and saying so.
One result I did not expect
We trained the pair model three ways and counted how many of the 965 logged human merges it recovered in its top candidates on three development regions:
- Trained only on cuts we made in the map's own segments, zero human labels: 539 at 20,000 candidates.
- Trained on 1,407 logged merges: 503.
- Trained on 1,843 proofread-state labels: 472.
At 20,000 candidates the label-free network beat both labeled ones in every region. At 1,000, the budget we actually use, the labeled network was ahead. This is a published idea run backwards: make synthetic splits instead of synthetic merges, and score on the merges proofreaders really made. The final pipeline still fine-tunes on human labels. But the fact that a model with no labels at all finds most of what the humans found tells me the labels are not the bottleneck I assumed they were.
Scope
Nine regions of one heavily proofread dataset, scored against its own proofreading. This is a held-out estimate within one cubic millimeter of one mouse, not evidence about other animals and not a precision estimate on unannotated tissue. The pair model's scores reproduced bit for bit on a second GPU, and an independent review reproduced the intervals from our saved per-neuron outputs.
Everything is in one download: the pre-registration with its 72 hashes, the execution record, every per-neuron output and the scoring code. micrONS-repair-evaluation-2026-10-04.zip, 1.5 MB. The full report is on the research page, with six of the joins you can open in Neuroglancer and judge yourself.
Two questions we could not answer, and would love help with: what annotation design would measure precision on the 95 percent of joins no one has proofread, and what training context turns a good candidate finder into a precise axon repairer? If you have worked on either, write to me!
Dan