pub fn for_each_score_indexed<F>(
input: &Path,
index: &Index,
config: &ScanConfig,
emit: F,
) -> Result<RunStats>Expand description
Score every record, reading each one a window at a time through a FASTA index.
Without an index the reader hands over a whole record, so the largest record is a floor on memory. Querying windows lowers that floor to the window size.
Windows overlap by lead_in bases and each emits only the range it owns. The overlap
is what makes a windowed run agree with a whole-record one: a piece straddling a
boundary is truncated within the window and so loses lead_in scores at that
artificial edge, but those positions belong to the neighbouring window, which sees
them with full context.