Skip to main content

for_each_score_indexed

Function for_each_score_indexed 

Source
pub fn for_each_score_indexed<F>(
    input: &Path,
    index: &Index,
    config: &ScanConfig,
    emit: F,
) -> Result<RunStats>
where F: FnMut(&str, usize, f64) -> Result<()>,
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.