FAILURE MAP
← Case archive

FA-12561 / Genomic coordinate mapping / Open access

Intronic coordinate ties choose the wrong transcript anchor · case 01

Intronic coordinate ties choose the wrong transcript anchor.

Verified by executionVariant 1 · 6 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

Intronic notation always uses the left reference exon boundary.

VERIFIED REPAIR

Choose the nearest boundary, break ties toward transcript upstream, and orient sign by strand.

Unsuccessful approach: Nearest-boundary repair retains reference-left tie breaking on negative strands.

Case contract

For reference base p strictly inside the intron between exon-end base left and exon-start base right, return [anchor,signed distance]; upstream transcript boundary wins ties.

Why this case matters

An abstract offline coordinate model isolates this software mapping defect; it does not model biological interpretation.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(left, right, p, strand):
    return [left,p-left]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
l=10*N;r=l+8
check('plus near right',solve(l,r,l+7,'+'),[r,-1])
check('minus tie',solve(l,r,l+4,'-'),[r,4])
check('plus tie',solve(l,r,l+4,'+'),[l,4])
check('plus near left',solve(l,r,l+1,'+'),[l,1])
check('minus near left',solve(l,r,l+1,'-'),[l,-1])
check('minus near right',solve(l,r,l+7,'-'),[r,1])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
plus near right[10, 7][18, -1]Failed
minus tie[10, 4][18, 4]Failed
plus tie[10, 4][10, 4]Passed
plus near left[10, 1][10, 1]Passed
minus near left[10, 1][10, -1]Failed
minus near right[10, 7][18, 1]Failed

SHA-256 / 489b9e63aec8d1f6e5c49c285213c524b1c7f5fa5527b6801c4a4e230a6dba63

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(left, right, p, strand):
    anchor=left if p-left <= right-p else right
    return [anchor,(p-anchor)*(1 if strand=='+' else -1)]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
l=10*N;r=l+8
check('plus near right',solve(l,r,l+7,'+'),[r,-1])
check('minus tie',solve(l,r,l+4,'-'),[r,4])
check('plus tie',solve(l,r,l+4,'+'),[l,4])
check('plus near left',solve(l,r,l+1,'+'),[l,1])
check('minus near left',solve(l,r,l+1,'-'),[l,-1])
check('minus near right',solve(l,r,l+7,'-'),[r,1])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
plus near right[18, -1][18, -1]Passed
minus tie[10, -4][18, 4]Failed
plus tie[10, 4][10, 4]Passed
plus near left[10, 1][10, 1]Passed
minus near left[10, -1][10, -1]Passed
minus near right[18, 1][18, 1]Passed

SHA-256 / 0f3563317350d8888a30dd70bce3894a1649988e57e4e5187bd1030a3fa2b463

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(left, right, p, strand):
    anchor=left if p-left < right-p or (p-left==right-p and strand=='+') else right
    return [anchor,(p-anchor)*(1 if strand=='+' else -1)]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
l=10*N;r=l+8
check('plus near right',solve(l,r,l+7,'+'),[r,-1])
check('minus tie',solve(l,r,l+4,'-'),[r,4])
check('plus tie',solve(l,r,l+4,'+'),[l,4])
check('plus near left',solve(l,r,l+1,'+'),[l,1])
check('minus near left',solve(l,r,l+1,'-'),[l,-1])
check('minus near right',solve(l,r,l+7,'-'),[r,1])
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
plus near right[18, -1][18, -1]Passed
minus tie[18, 4][18, 4]Passed
plus tie[10, 4][10, 4]Passed
plus near left[10, 1][10, 1]Passed
minus near left[10, -1][10, -1]Passed
minus near right[18, 1][18, 1]Passed

SHA-256 / fb38ecdfc24e60cffadec433d11e01f65818ff0f4c7428707e29c4f912648d8d

Verification & scope

Synthetic coordinate fixtures only; not a production annotation or alignment implementation. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.

Observations recorded using Python 3.12.14 at 2026-09-29T14:38:58.115700+00:00.

Case digest / 94348fa3b020da539c42745f97df580c36be95b5d730cf037dfab6b3238e2c24