Where values sit across a histogram, and its bins: linear, or log on
ln(shift + x), the shift chosen from the data so zeros have a place
and values mostly below 1 (means, fractions) spread out. The printed
histograms, the views’ and the figures’ all read values on it.
Whether a row or column with nnz non-zeros falls below cutoff and is
squeezed out. Every preview of a cutoff counts with this rule, so what it
reports matches what squeeze_by_nnz removes.
print_nnz_summary on stderr: for a histogram that is a diagnostic
beside a command’s result (qc --qc-histogram, senna’s and pinto’s QC),
not the result itself, so stdout carries only the result.
Format a statistic value compactly: whole numbers (nnz, integer counts)
print without a decimal point; fractional values (mean, sd) get
decimals places.
The rows of select_rows (those within nrows) as a mask over all
rows, and empty statistics of ncols columns over them: the rows
selected are the denominator of the mean.
Print summary statistics + an ASCII log-binned histogram of a per-row or
per-column statistic vector (metric names it, e.g. “nnz”, “sum”, “mean”).
A non-zero cutoff marks the cutoff bin and reports how much it removes;
an optional suggested value reports the trough suggestion.
Cut, in place, the rows and columns of the backend at backend_file
with fewer than row and column non-zeros: the --squeeze of the
commands that build or derive a backend. The path is one the caller
resolved and finalizes itself, so nothing is zipped here.
Suggest an nnz cutoff at the deepest trough of the nnz distribution,
the gap between the ambient (empty barcode) peak and the cell peak.
Columns with nnz >= cutoff are kept.