FA-12566 / Genomic coordinate mapping / Open access
Reference deletions fail to advance alignment position · case 01
Reference deletions fail to advance alignment position.
ROOT CAUSE
A reference-only deletion is omitted from the reference cursor.
VERIFIED REPAIR
Advance reference position by the entire deletion length without advancing query.
Unsuccessful approach: Advancing one reference base per deletion fails multi-base gaps.
Case contract
Map a zero-based query base through M/I/D operation lengths; inserted and absent query bases return None.
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(ops, start, pos):
q=0;r=start
for op,size in ops:
if op=='M':
if q <= pos < q+size: return r+pos-q
q+=size;r+=size
elif op=='I':
if q <= pos < q+size: return None
q+=size
elif op=='D': r+=0
return None
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
o=[('M',2),('D',N+2),('M',3)]
check('after deletion',solve(o,100,2),104+N)
check('later base',solve(o,100,4),106+N)
check('first base',solve(o,100,0),100)
check('before deletion',solve(o,100,1),101)
check('past end',solve(o,100,5),None)
check('negative base',solve(o,100,-1),None)
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| after deletion | 102 | 105 | Failed |
| later base | 104 | 107 | Failed |
| first base | 100 | 100 | Passed |
| before deletion | 101 | 101 | Passed |
| past end | None | None | Passed |
| negative base | None | None | Passed |
SHA-256 / 6b2f977a3c613e3337a1247e9dcae83437a56b7deb599aba3fdb36bfc8b4bbee
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(ops, start, pos):
q=0;r=start
for op,size in ops:
if op=='M':
if q <= pos < q+size: return r+pos-q
q+=size;r+=size
elif op=='I':
if q <= pos < q+size: return None
q+=size
elif op=='D': r+=1
return None
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
o=[('M',2),('D',N+2),('M',3)]
check('after deletion',solve(o,100,2),104+N)
check('later base',solve(o,100,4),106+N)
check('first base',solve(o,100,0),100)
check('before deletion',solve(o,100,1),101)
check('past end',solve(o,100,5),None)
check('negative base',solve(o,100,-1),None)
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| after deletion | 103 | 105 | Failed |
| later base | 105 | 107 | Failed |
| first base | 100 | 100 | Passed |
| before deletion | 101 | 101 | Passed |
| past end | None | None | Passed |
| negative base | None | None | Passed |
SHA-256 / 932fe3fb46bde928faf89a89d4e833baa3202e0bf8e8d0ceeb0f766889f77488
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(ops, start, pos):
q=0;r=start
for op,size in ops:
if op=='M':
if q <= pos < q+size: return r+pos-q
q+=size;r+=size
elif op=='I':
if q <= pos < q+size: return None
q+=size
elif op=='D': r+=size
return None
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
o=[('M',2),('D',N+2),('M',3)]
check('after deletion',solve(o,100,2),104+N)
check('later base',solve(o,100,4),106+N)
check('first base',solve(o,100,0),100)
check('before deletion',solve(o,100,1),101)
check('past end',solve(o,100,5),None)
check('negative base',solve(o,100,-1),None)
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| after deletion | 105 | 105 | Passed |
| later base | 107 | 107 | Passed |
| first base | 100 | 100 | Passed |
| before deletion | 101 | 101 | Passed |
| past end | None | None | Passed |
| negative base | None | None | Passed |
SHA-256 / 1b537d5746ca4cbaf9aab42d7cdae6b85e933769d2cec0e9394981ad3e5efd90
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.145126+00:00.
Case digest / 8ba415cab61dd603eebad9dca2f15f62a37a9a4a096d20099cd09770f5650bcb