Manuscript submitted
End reason filtering
Oxford Nanopore's instrument software records why every read stopped. That annotation almost never reaches the files analyses actually read, and almost nobody filters on it. We asked what it marks physically, and found it marks whether the molecule was sequenced to completion.
End Reason Filtering in Single Molecule Sequencing of Native DNA by Oxford Nanopore Technologies
Submitted to Scientific Data. Draft dated August 26, 2026.
A device-terminated read is a partial observation of its molecule, not simply a shorter one. An analysis that discards the end reason treats truncated and complete reads as equivalent evidence.
381,672
basecalled reads on a standard of one known length
96.59%
completed the pore traversal, at a median 4,839 bp
54.2%
of the largest device-terminated class survive a Q10 filter
What it is
An annotation the instrument writes and the pipeline throws away
A nanopore does not produce reads. It produces one continuous trace of ionic current, and software divides that trace into reads while the run is happening. At the moment it makes each division, MinKNOW records why that read stopped. That is the end reason.
It is written into the raw-signal files produced at acquisition, the per-read POD5 files and the legacy FAST5 containers. It is not carried forward by default into the basecalled and aligned files most analyses consume. FASTQ has no standard field for it at all, and Dorado, Oxford Nanopore's production basecaller, did not write it into BAM before v1.3.1. So the information exists at acquisition and is routinely absent downstream, which is the gap this work addresses.
Dorado now ships it as an er:Z auxiliary BAM tag. That capability is documented mainly through release notes and applies only to recent versions, so reusing older data still means rejoining raw-signal metadata by read identifier.
The gap
Read as bookkeeping, almost never as evidence
Where the end reason appears in published work it is read almost exclusively as adaptive-sampling bookkeeping. In adaptive sampling a software-initiated unblock is the intended outcome of a targeting decision, so benchmarks tally accepts and rejects from it and move on. In that setting an unblock is not a departure from the designed product.
Outside that setting we are aware of a single research group that applies it as routine per-read quality control on ordinary runs, in two studies on melon that share a processing pipeline. Three other studies come close without meeting the case: one filters completed reads out of playback simulation data, where the filter removes a simulation artifact; one has users eyeball the field as a library diagnostic without filtering on it; one uses unblock events as a biological probe. Whether the annotation is worth applying per read to ordinary data was therefore an open question, and it is the question this study tests.
The measurement
Every molecule the same known length, so the device is the only variable
The difficulty with asking what an end reason means is that a natural sample gives you no expected read length to compare against. A short read might be a short molecule.
So the input was built to remove that ambiguity. A sequence-verified plasmid was linearized to a single known length of 4,820 bp by a blunt-cutting restriction enzyme at its unique site, size-verified by electropherogram, and carried through the standard ligation library preparation. Every molecule entering the pore is then the same length, and any departure from that length in a read is attributable to the sequencing device rather than to the input.
That is what licenses everything below. The classes are not compared against each other in the abstract; they are compared against a molecule whose size was known before it was sequenced.
Figure 2 of the working draft.
The result
Four classes, separated on two different axes
Read length and mean quality together resolve four classes, and they are not a spectrum of quality. Two are the pore's own account of how a read finished and two are the device intervening.
| Class | Share | Median length | What happened |
|---|---|---|---|
| Signal-positive | 96.59% | 4,839 bp | The strand completed its traversal of the pore. Recapitulates the input molecule to within twenty bases at the median, at mean Q 15.94. |
| Unblock / mux-change | 3.09% | 2,039 bp | MinKNOW reversed the voltage to clear a pore it detected as blocked or stalled, ejecting the strand mid-molecule. Mean Q 11.03. |
| Mux-change | 0.07% | 163 bp | The periodic multiplexer scan reassigned which pore of a channel was sequencing, cutting the read off. 3.4% of the designed length, and yet mean Q 14.54: these reads pass a quality filter comfortably while carrying almost none of the molecule. |
| Signal-negative | 0.24% | 4,823 bp | No clean completion transition. NOT truncated: it keeps the full length and separates from signal-positive on quality alone. |
Figure 5 of the working draft.
The two axes matter more than the four rows. Read length separates the truncated classes from the full-length ones, with Cliff's delta of 0.73 and 0.96. Mean quality separates the two full-length classes from each other, at 0.63. Only signal-positive combines full length with high quality, which is what a molecule that fully traversed the pore and was cleanly basecalled should produce.
The four classes also correspond to four distinct shapes in the raw current. A completed traversal returns sharply to the open-pore baseline near 225 pA. An unblock carries the negative current spike of the voltage reversal that caused it. A mux-change shows abrupt voltage cessation during a routine channel scan. A signal-negative read lacks any clean completion transition while keeping heterogeneous current across its full length. These are different physical processes, not arbitrary software labels.
Why it is not redundant
A quality filter cannot do this job
The obvious objection is that a quality threshold already removes bad reads. It does not remove these ones. On the controlled run a mean-Q of at least 10, the most common default, removes 6.4% of signal-positive reads but only 45.8% of the unblock/mux-change class, leaving 54.2% of a class in which every single read terminated early. The two smaller device-terminated classes fare no better under the same gate: it removes 14.5% of mux-change and 28.5% of signal-negative reads. Taken together, the gate still retains 56.0% of the reads the device terminated.
That is not an artifact of one run. Across the eight internal validation runs with per-read quality available, the same gate removed 4.6% to 14.2% of signal-positive reads against 39.9% to 73.4% of unblock/mux-change reads, and between 26.6% and 60.1% of that class passed a filter never designed to detect incomplete translocation.
The reason is structural rather than a matter of picking a better threshold. A basecaller scores how well the signal agreed with the sequence within the portion of the read that was sequenced. It has no knowledge of whether that portion is a whole molecule. A read cut off at 2 kb can score well on the bases it does contain while representing a fragment of the intended library molecule.
Figure 4 of the working draft.
Nor is the other one
And a length filter misses the class that is not short
Where the expected size is known, a length filter catches some device-terminated reads, because two of the four classes are truncated. It catches them incidentally, and it misses the class that is not truncated: signal-negative reads sit at the full 4,823 bp median and pass any length filter built for this library.
A length filter asks whether a read is the right size. An end-reason filter asks whether it finished. End-reason filtering replaces neither existing control; it adds an axis neither of them measures, and applying it alongside them removes more artifactual reads than any of them alone.
What goes wrong without it
Where a truncated read looks like biology
The risk is greatest wherever physical read length carries biological meaning. In long-read transcriptomics, a device-terminated read that ends part-way through a polyadenylated transcript is indistinguishable, in a FASTQ-only analysis, from a genuine alternative three-prime end. A truncation can be read as a finding.
In per-read modification calling, which integrates signal across a window, truncation at a device-terminated end corrupts the call precisely at the boundary positions such studies aim to resolve.
Neither dataset is re-analyzed here. The vulnerability is structural, and it persists in work published at high-impact venues.
Does it hold elsewhere
Across 39 flow cells and four kit families
The class structure held across 14 internal runs and seven public-archive datasets, spanning 39 flow cells, four flow-cell products and four sequencing-kit families. That cross-source agreement is one of magnitude rather than of distribution: the classes appear in the same order of prevalence, not at identical fractions.
What to do
Keep it through basecalling, and filter before alignment
The recommendation is that the annotation be retained through basecalling and that end-reason filtering be adopted as a standard post-basecalling, pre-alignment quality-control step.
For Dorado v1.3.1 and later, that is a single samtools expression on the er:Z tag, which is present on all 381,753 reads of the controlled run's unaligned BAM and survives alignment. For older Guppy or Dorado output it means joining POD5, FAST5 or sequencing-summary metadata to the basecalled reads by read identifier, and the paper releases a pipeline that performs that join. Filtered data then proceeds through alignment and downstream analysis unchanged.
Retaining only signal-positive reads leaves a dataset of complete single-molecule translocations and removes 3.41% of the four focus classes in the controlled run. Adaptive-sampling analytics should go further and expose an explicit end-decision filter, routing device-terminated reads into diagnostics rather than into analysis files.
What this does not show
The mechanism, not the downstream effect
This study measures what the end-reason field marks. It does not measure what filtering on it does to a variant call, an assembly or a methylation estimate. Those three consequences are predictions that follow from the mechanism, and they are stated in the paper as predictions rather than results.
Testing them needs three things this design lacks: an orthogonal truth set so that better is defined outside the filter's own terms, two arms matched on depth because the filter removes 3.41% of reads, and a comparison against the alternative actually in use rather than against nothing. A depth-matched, truth-set-anchored, three-arm comparison on a benchmark sample is the natural next study.
The draft is also careful about the two filter percentages quoted above, and this page should be too. Recomputing them from the deposited per-read tables returns 4.1% and 74.3% where the abstract reports 6.4% and 54.2%, because a class sitting this close to a hard threshold is not portable between basecalling models. The paper says a reader reproducing the analysis from the deposit should expect the class-separation result but not the published filter fractions. The direction of the asymmetry is the robust finding; the exact percentages are not.
Three further limits are worth stating plainly. The quantitative values come from a single controlled run on one chemistry, R10.4.1 with Ligation Sequencing Kit V14, and one plasmid construct; other chemistries and sample types may show different class fractions, though the physical distinction should be unaffected. The classifications themselves are assigned by proprietary MinKNOW software whose thresholds are not publicly documented. And strict signal-positive filtering may be too conservative where fragments are intentionally shorter than a full pore residence time, as in targeted sequencing, so the criterion should be chosen against the application rather than applied uniformly.
Figures quoted here are from the working draft dated August 26, 2026, and may change before release.