package com.milaboratory.core.alignment.benchmark; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonIgnore; import com.milaboratory.core.alignment.kaligner2.KAligner2Statistics; @JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, isGetterVisibility = JsonAutoDetect.Visibility.NONE, getterVisibility = JsonAutoDetect.Visibility.NONE) public class BenchmarkResults { @JsonIgnore public final BenchmarkInput input; public final KAligner2Statistics stat; public final long executionTime; public final int processedQueries; public final int processedGoodQueries; public final int falsePositives; public final int mismatched; public final int noHits; public final int scoreError; public BenchmarkResults(BenchmarkInput input, KAligner2Statistics stat, long executionTime, int processedQueries, int processedGoodQueries, int falsePositives, int mismatched, int noHits, int scoreError) { this.input = input; this.stat = stat; this.executionTime = executionTime; this.processedQueries = processedQueries; this.processedGoodQueries = processedGoodQueries; this.falsePositives = falsePositives; this.mismatched = mismatched; this.noHits = noHits; this.scoreError = scoreError; } public BenchmarkInput getInput() { return input; } public KAligner2Statistics getStat() { return stat; } public long getExecutionTime() { return executionTime; } public int getProcessedGoodQueries() { return processedGoodQueries; } public int getProcessedQueries() { return processedQueries; } public int getMismatched() { return mismatched; } public int getNoHits() { return noHits; } public double getNoHitsFraction() { return 1.0 * noHits / processedGoodQueries; } public double getMismatchedFraction() { return 1.0 * mismatched / processedGoodQueries; } public double getBadFraction() { return 1.0 * (noHits + mismatched) / processedGoodQueries; } public double getFalsePositiveFraction() { return 1.0 * falsePositives / (processedQueries - processedGoodQueries); } public double getScoreErrorFraction() { return 1.0 * scoreError / (processedGoodQueries - noHits - mismatched); } public long getAverageTiming() { return executionTime / processedQueries; } }