Oncofusion

start / graph / ana-the-h2ak119ub-conventions-disagree-per-statistic-not-globally-and-two-entries-quoted-one-without-saying-so

Analysismoderate confidence 3 of 5: One strong study, or several smaller consistent ones.

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.**

Go deeper
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.

Facts and figures
questionwhich committed entries quote H2AK119ub from GSE260742 on one convention?
read fromgit HEAD, so an in-flight beat cannot change the answer
committed node files2476
mentioning the mark122
quote both conventions10
exempt the beat that found it1
single convention named2
single convention UNNAMED2
both quote1.4450, the PAIRED convention's Q1 genotype-attenuation figure
both entries amendedeach now carries the rep2 companion and a provenance note recording why
why the audit still reports twoit reads from git HEAD by design, so the fixes are invisible to it until this cycle's commit lands
absence classmeasured-not-curated
absence class noteBoth 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 backThis 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"
}
Still open
  1. 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.
  2. 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.
  3. 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.
  4. 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.
Every source behind this entry (1)
  1. 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.

    What 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.
Connected to