Auditing all 2,476 committed entries for single-convention H2AK119ub: 122 mention the mark, 10 carry both conventions, 2 name the one they use, and 2 quoted a paired-convention number without saying so. Both are amended - and the more useful result is that the two conventions disagree PER STATISTIC rather than globally, so declaring the mark unusable would have been wrong
also called the H2AK119ub convention audit · they disagree per statistic, not globally · two entries quoted one convention without saying so
One chemical mark in a public dataset was deposited under two different processing versions, and those two versions have twice given opposite answers to the same question. That raised the worry that pages in this project might be resting on whichever version happened to be used. Checking all two and a half thousand pages found two that quoted one version without saying which - both now fixed - and, more importantly, that the two versions actually agree on some measurements and disagree on others, so the mark is usable as long as every number says which version it came from.
The same thing, for a scientist
**Statement.** GSE260742 deposits H2AK119ub under two processing conventions this project calls `PAIRED` and `REP2`. They have disagreed **in sign** twice: Q125's aggregate SGC genotype contrast (**+0.1895** against **−0.1443**) and cycle 104's VTP/DMSO ratio at stratum D1 (**+0.0524** against **−0.0216**). Cycle 104 asked whether the mark should be used at all and who had already relied on it. **Audited, reading from git HEAD so no in-flight beat could change the answer.** | | count | |---|---:| | committed node files | **2,476** | | mentioning H2AK119ub or K119 | **122** | | quoting **both** conventions' numbers | 10 | | exempt — the beat that found the disagreement | 1 | | single convention, **convention named** in the passage | 2 | | **single convention, unnamed — the fault class** | **2** | **Both faults quote the same value, `1.4450`** — the `PAIRED` convention's Q1 figure for the genotype attenuation — in `ana-the-eviction-clause-was-reachable-all-along…` (my own, cycle 101) and `resistance-q130-a-polycomb-deficient-cell-loses-h3k79me2-normally…`. **And here the audit's own finding overturns the worry that prompted it.** Q125's entry carries both conventions at that statistic: **`PAIRED` 1.4450 → 1.1325 and `REP2` 1.0151 → 0.8842.** **Both fall.** The conventions **agree** on the genotype attenuation at Q1 and **disagree** on the aggregate SGC contrast and on the D1 ratio. **So the conventions disagree PER STATISTIC, not globally, and "H2AK119ub from GSE260742 is unusable" would have been wrong.** The two flagged entries are **incomplete, not incorrect** — their conclusions are supported by both conventions. Both are amended to carry both numbers, with provenance recording why. **The rule this first suggested** — that any H2AK119ub number must name its convention — **is superseded by the stronger one below.** **POLICY ADOPTED, because this entry's own counter-evidence said the weaker rule needs judgement the simpler one does not:** *never quote an H2AK119ub number from GSE260742 without both conventions.* The per-statistic rule requires a future beat to know whether the two agree on the specific quantity it is quoting — which is exactly the check nobody performed for four beats. **Carrying both costs one extra number and removes the judgement entirely.** Where they agree, the pair is reassuring; where they disagree, the pair is the finding. Both amended entries now comply. **CLOSED LOOP.** Re-run against HEAD after the fixes were committed, the same audit returns **`A2` — NOTHING TO FIX**: **0 unattributed**, and entries carrying both conventions up from 10 to **13**. The instrument that found the fault verifies the repair, which is the point of reading from HEAD rather than from the working tree. **CORRECTED IN CYCLE 106, and the correction lands on this entry's own key example.** This entry wrote that the conventions *agree* at the Q1 statistic because **`PAIRED` 1.4450 → 1.1325 and `REP2` 1.0151 → 0.8842 are "both falling"**. That is true of the *change* and false of the *level*: **`PAIRED` 1.1325 says the mark is enriched at Q1 and `REP2` 0.8842 says it is depleted.** Cycle 106 measured every matched PAIRED/REP2 ratio in the corpus and found **only two material sign disagreements out of 68 comparable statistics — and this is one of them.** The entry picked, as its illustration of agreement, one of the two places the conventions materially disagree. **The conclusion still stands** — the two flagged entries quoted the aggregate **1.4450 / 1.0151**, where both exceed 1 and the conventions do agree — **but it stands on a different statistic than the one cited here.**
Why the audit keeps reporting two faults after they were fixed
The script reads the corpus from git HEAD, deliberately, so that a beat writing files mid-cycle cannot change what the audit sees. So it still reports both faults after I amended them in the working tree, and will report zero once this cycle's commit lands. That is the intended behaviour and not a bug — but it is the kind of thing that looks like a failed fix, so it is recorded here rather than discovered later.
U1 mattered and was not decoration. Two entries quote a single convention and name it in the same passage, which is correct practice. A cruder audit would have counted four faults and sent someone to "fix" two entries that were already right.
And it did. After the commit, the audit reports A2 — 13 carrying both, 2 correctly attributed, 0 unattributed. The prediction in the paragraph above is the verification of the fix.
| question | which committed entries quote H2AK119ub from GSE260742 on one convention? |
|---|---|
| read from | git HEAD, so an in-flight beat cannot change the answer |
| committed node files | 2476 |
| mentioning the mark | 122 |
| quote both conventions | 10 |
| exempt the beat that found it | 1 |
| single convention named | 2 |
| single convention UNNAMED | 2 |
| both quote | 1.4450, the PAIRED convention's Q1 genotype-attenuation figure |
| both entries amended | each now carries the rep2 companion and a provenance note recording why |
| why the audit still reports two | it reads from git HEAD by design, so the fixes are invisible to it until this cycle's commit lands |
| absence class | measured-not-curated |
| absence class note | Both conventions have been computed and committed since cycle 88; what was absent was any check of which entries relied on one of them, and neither beat that found a disagreement went back to look. |
| bite back | This audit licenses continued use of H2AK119ub from GSE260742 with a naming requirement, which is a weaker safeguard than refusing the mark outright. If a future beat quotes a convention-specific number in a context where the two disagree, and names the convention correctly, the naming rule is satisfied while the claim may still be one of two contradictory answers. The rule makes the dependency visible; it does not make the number right. |
the two faults
[ "ana-the-eviction-clause-was-reachable-all-along-and-the-fusion-is-evicted-normally-in-the-pcgf1-knockout", "resistance-q130-a-polycomb-deficient-cell-loses-h3k79me2-normally" ]
THE AUDIT OVERTURNS ITS OWN PREMISE
{
"worry": "cycle 104 asked whether H2AK119ub from this deposit should be used at all",
"finding": "the conventions AGREE on the statistic the two faults quote - PAIRED 1.4450 -> 1.1325 and REP2 1.0151 -> 0.8842, both falling - and DISAGREE on the aggregate SGC contrast (+0.1895 vs -0.1443) and the D1 VTP/DMSO ratio (+0.0524 vs -0.0216)",
"conclusion": "they disagree PER STATISTIC, not globally. 'Unusable' would have been wrong. The two flagged entries are INCOMPLETE, not incorrect, and their conclusions are supported by both conventions.",
"rule": "any H2AK119ub number from GSE260742 must name its convention, because whether the two agree cannot be known without checking that statistic specifically"
}POLICY ADOPTED
{
"rule": "never quote an H2AK119ub number from GSE260742 without both conventions",
"why_not_the_per_statistic_rule": "it requires a future beat to know whether the two agree on the specific quantity being quoted - exactly the check nobody performed for four beats",
"cost": "one extra number per quotation, and no judgement",
"where_they_agree": "the pair is reassuring",
"where_they_disagree": "the pair is the finding",
"compliance": "both amended entries now carry both"
}CLOSED LOOP
{
"what": "the same audit, re-run against HEAD after the fixes were committed, returns A2 - NOTHING TO FIX",
"unattributed_before": 2,
"unattributed_after": 0,
"quote_both_before": 10,
"quote_both_after": 13,
"reading": "the instrument that found the fault verifies the repair, which is the point of reading from HEAD rather than the working tree"
}CORRECTED CYCLE 106
{
"what_was_wrong": "'the conventions agree on the Q1 genotype attenuation' conflated agreement about the CHANGE (both fall) with agreement about the LEVEL (1.1325 is above 1, 0.8842 is below it)",
"measured_in_cycle_106": "of 68 comparable matched ratio statistics, 35 flip sign but only 2 do so materially - and the Q1 pair 1.1325/0.8842 is one of the 2",
"does_the_conclusion_survive": "yes, on a different statistic: the two flagged entries quoted the AGGREGATE 1.4450 (PAIRED) whose REP2 companion is 1.0151, both above 1",
"see": "analyses/every-h2ak119ub-number-in-the-corpus"
}- Build the fingerprint list by enumerating EVERY H2AK119ub value in every analysis results.json, rather than the fourteen hand-picked from two beats. An entry quoting some other convention-specific number is invisible to this audit, and that hole is larger than the two faults it found.
- Recompute Q125's rep2 Q1 figure rather than reading it. The reassuring conclusion rests on 1.0151 -> 0.8842 being right; I verified it is reported, not that it is correct.
- Do any other marks in this deposit have two conventions? The audit looked only at H2AK119ub because that is where a disagreement was noticed. H3K27me3, H3K4me3 and H3K79me2 were never checked for the same structure.
- ADOPTED IN THIS ENTRY: never quote an H2AK119ub number from GSE260742 without both conventions. The per-statistic rule needed judgement that four beats failed to apply; carrying both costs one number and none.
- E1moderate confidence 3 of 5: One strong study, or several smaller consistent ones.analysis
Of 2,476 node files committed at git HEAD, 122 mention H2AK119ub or K119. Ten contain numeric fingerprints of both the PAIRED and REP2 conventions, one is the beat that found the disagreement, two quote a single convention while naming it within 200 characters, and two quote the PAIRED value 1.4450 without naming a convention: ana-the-eviction-clause-was-reachable-all-along-and-the-fusion-is-evicted-normally-in-the-pcgf1-knockout and resistance-q130-a-polycomb-deficient-cell-loses-h3k79me2-normally. Q125's committed entry records both conventions at that statistic, PAIRED 1.4450 to 1.1325 and REP2 1.0151 to 0.8842, both decreasing.
analyses/which-entries-rest-on-one-h2ak119ub-convention/run.py and results.json, this repository; corpus read from git HEAD 2026-09-23; convention values from the committed results of analyses/q125-the-h2ak119ub-arm-of-the-pcgf1-knockout and from cycle 104 · Oncofusion knowledge graph, coordinator · internal analysis, reproducible from the repository 2026What this evidence cannot show
THE FINGERPRINTS ARE FOUR-DIGIT DECIMALS AND ARE NOT UNIQUE, so the fault count is an UPPER BOUND and every hit needed a human glance - which is why the script prints surrounding context. The fingerprint list itself is hand-assembled from two beats' committed numbers and is NOT exhaustive: an entry quoting some other H2AK119ub value from either convention would be invisible to this audit entirely, which is the larger and unmeasured hole. 'Naming the convention' is detected by a keyword within 200 characters, so an entry that names it 300 characters away is counted as a fault and one that uses the word in an unrelated sentence is counted as clean. The audit covers only GSE260742's H2AK119ub; no other mark or deposit was checked for the same problem.
Evidence that argues against this (3)
- Finding only two faults in 122 mentioning entries may say more about the fingerprint list than about the corpus. The list has seven values per convention, drawn from the two beats that happened to report disagreements; the deposit has been used across at least four beats and every quartile, aggregate and stratum figure any of them published is a potential fingerprint. A list built by enumerating every H2AK119ub number in every analysis results.json would be the real audit, and it would be a different and probably larger number.
- The reassuring conclusion - that the conventions agree on the statistic the two faulty entries quote - was established from Q125's entry rather than recomputed. I checked that Q125 reports both values and that both fall, which is not the same as verifying that those values are correct or that they were computed the same way. If Q125's rep2 figure is itself mis-derived, the agreement is illusory and both amended entries now carry a wrong number alongside a right one.
- Auditing my own entry and finding it at fault is presented here as diligence, and it is also the second consecutive cycle in which the thing I corrected was something I wrote one to four cycles earlier. The pattern is that this thread generates claims faster than it verifies them, and a per-statistic convention rule adds another check that a future beat must remember to apply. A simpler policy - never quote an H2AK119ub number from this deposit without both - would need no judgement at all and this entry does not adopt it.
answers that entry's open question - audits which committed entries relied on one convention, and finds the disagreement is per-statistic rather than global
that entry quoted the paired convention's 1.4450 without naming it; amended to carry both, conclusion unaffected because both conventions fall
the genotype attenuation statistic on which the two conventions agree
discharges that entry's own largest caveat, and overturns its supporting example: the Q1 pair 1.1325/0.8842 it cited as proof of agreement is one of only two material disagreements in 68 comparable ratios