void WriteResultsReport(ostream& report, const Results& counts) { size_t total = counts.Total(); report << fixed << setprecision(2); report << "Success -- CCS generated," << counts.Success << "," << 100.0 * counts.Success / total << '%' << endl; report << "Failed -- Below SNR threshold," << counts.PoorSNR << "," << 100.0 * counts.PoorSNR / total << '%' << endl; report << "Failed -- No usable subreads," << counts.NoSubreads << "," << 100.0 * counts.NoSubreads / total << '%' << endl; report << "Failed -- Insert size too small," << counts.TooShort << "," << 100.0 * counts.TooShort / total << '%' << endl; report << "Failed -- Not enough full passes," << counts.TooFewPasses << "," << 100.0 * counts.TooFewPasses / total << '%' << endl; report << "Failed -- Too many unusable subreads," << counts.TooManyUnusable << "," << 100.0 * counts.TooManyUnusable / total << '%' << endl; report << "Failed -- CCS did not converge," << counts.NonConvergent << "," << 100.0 * counts.NonConvergent / total << '%' << endl; report << "Failed -- CCS below minimum predicted accuracy," << counts.PoorQuality << "," << 100.0 * counts.PoorQuality / total << '%' << endl; report << "Failed -- Unknown error during processing," << counts.ExceptionThrown << "," << 100.0 * counts.ExceptionThrown / total << '%' << endl; }