Skip to content

Look up fewer filtered hits during anchor recovery - #658

Open
ksahlin wants to merge 1 commit into
anchor-recovery-reworkfrom
recovery-fewer-hits
Open

ksahlin wants to merge 1 commit into
anchor-recovery-reworkfrom
recovery-fewer-hits

Conversation

@ksahlin

@ksahlin ksahlin commented Oct 14, 2026

Copy link
Copy Markdown
Owner

In satellite arrays, filtered hits occur every few bases along the read,
and looking up each of them again dominates the cost of anchor recovery.
Now at most one filtered hit per read_len / 400 bases of the read is
looked up (25 bases for 10 kb reads). Reads shorter than 400 bases are
not affected: their output is unchanged.

Total mapping time relative to v0.19.0, before -> after (Apple M4 Max,
-x, 1 thread, median of 3 runs; 5, 10 and 20 kb reads):

  • chrY: 1.88-1.30x -> 1.52-1.09x
  • CHM13: 1.70-1.50x -> 1.37-1.13x
  • maize B73: 1.75-1.42x -> 1.42-1.14x
  • maize Mo17: 3.01-2.55x -> 1.66-1.27x
  • rye Lo7: 1.77-1.58x -> 1.46-1.17x
  • rye Lo7_V3: 4.73-4.12x -> 2.69-1.50x
  • fruit fly: 1.13-1.06x -> 1.10-1.04x

Accuracy (% of reads mapped within 200 bp of the true position), change
compared with before, on the same 21 datasets:

  • mapping-only: +1.66 to +2.04 on chrY, +0.13 to +0.24 on CHM13, -0.30
    to +0.16 elsewhere (largest loss: Mo17 20 kb, -0.30)
  • extension: -0.15 to +0.23 (largest loss: Mo17 20 kb, -0.15)

Is-new-baseline: yes

In satellite arrays, filtered hits occur every few bases along the read,
and looking up each of them again dominates the cost of anchor recovery.
Now at most one filtered hit per read_len / 400 bases of the read is
looked up (25 bases for 10 kb reads). Reads shorter than 400 bases are
not affected: their output is unchanged.

Total mapping time relative to v0.19.0, before -> after (Apple M4 Max,
-x, 1 thread, median of 3 runs; 5, 10 and 20 kb reads):

- chrY: 1.88-1.30x -> 1.52-1.09x
- CHM13: 1.70-1.50x -> 1.37-1.13x
- maize B73: 1.75-1.42x -> 1.42-1.14x
- maize Mo17: 3.01-2.55x -> 1.66-1.27x
- rye Lo7: 1.77-1.58x -> 1.46-1.17x
- rye Lo7_V3: 4.73-4.12x -> 2.69-1.50x
- fruit fly: 1.13-1.06x -> 1.10-1.04x

Accuracy (% of reads mapped within 200 bp of the true position), change
compared with before, on the same 21 datasets:

- mapping-only: +1.66 to +2.04 on chrY, +0.13 to +0.24 on CHM13, -0.30
  to +0.16 elsewhere (largest loss: Mo17 20 kb, -0.30)
- extension: -0.15 to +0.23 (largest loss: Mo17 20 kb, -0.15)

Is-new-baseline: yes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant