diff --git a/src/main/java/MatchingResult.java b/src/main/java/MatchingResult.java index 7a51439..1e2dc64 100644 --- a/src/main/java/MatchingResult.java +++ b/src/main/java/MatchingResult.java @@ -1,3 +1,4 @@ +import java.time.Duration; import java.util.List; import java.util.Map; @@ -6,12 +7,15 @@ public class MatchingResult { private List headers; private List> allResults; private Map matchMap; + private Duration time; - public MatchingResult(List comments, List headers, List> allResults, MapmatchMap){ + public MatchingResult(List comments, List headers, List> allResults, MapmatchMap, Duration time){ this.comments = comments; this.headers = headers; this.allResults = allResults; this.matchMap = matchMap; + this.time = time; + } public List getComments() { @@ -29,4 +33,8 @@ public class MatchingResult { public Map getMatchMap() { return matchMap; } + + public Duration getTime() { + return time; + } } diff --git a/src/main/java/Simulator.java b/src/main/java/Simulator.java index c83cc73..abd5338 100644 --- a/src/main/java/Simulator.java +++ b/src/main/java/Simulator.java @@ -283,12 +283,12 @@ public class Simulator { comments.add("Simulation time: " + nf.format(time.toSeconds()) + " seconds"); System.out.println("Simulation time: " + nf.format(time.toSeconds()) + " seconds"); - return new MatchingResult(comments, header, allResults, matchMap); + return new MatchingResult(comments, header, allResults, matchMap, time); } public static MatchingResult[] matchCDR1s(List distinctCells, Plate samplePlate, Integer lowThreshold, - Integer highThreshold, Map previousMatches){ + Integer highThreshold, Map previousMatches, Duration previousTime){ Instant start = Instant.now(); int numWells = samplePlate.getSize(); @@ -548,11 +548,16 @@ public class Simulator { comments.add("Number of correct matches: " + trueCount); double correctRate = (double) trueCount / allResults.size(); comments.add("Correct matching rate: " + correctRate); - + NumberFormat nf = NumberFormat.getInstance(Locale.US); + Duration time = Duration.between(start, stop); + time.plus(previousTime); + comments.add("Simulation time: " + nf.format(time.toSeconds()) + " seconds"); for(String s: comments){ System.out.println(s); } + + List headers = new ArrayList<>(); headers.add("CDR3 alpha"); headers.add("CDR3 beta"); @@ -560,7 +565,7 @@ public class Simulator { headers.add("second matched CDR1"); headers.add("Correct match?"); - MatchingResult firstTest = new MatchingResult(comments, headers, allResults, dualMatchesMap); + MatchingResult firstTest = new MatchingResult(comments, headers, allResults, dualMatchesMap, time); //results for dual map System.out.println("Results for second pass"); @@ -602,18 +607,15 @@ public class Simulator { comments.add("Number of correct matches: " + trueCount); correctRate = (double) trueCount / allResults.size(); comments.add("Correct matching rate: " + correctRate); - - + comments.add("Simulation time: " + nf.format(time.toSeconds()) + " seconds"); for(String s: comments){ System.out.println(s); } - NumberFormat nf = NumberFormat.getInstance(Locale.US); - Duration time = Duration.between(start, stop); - comments.add("Simulation time: " + nf.format(time.toSeconds()) + " seconds"); + System.out.println("Simulation time: " + nf.format(time.toSeconds()) + " seconds"); - MatchingResult dualTest = new MatchingResult(comments, headers, allResults, dualMatchesMap); + MatchingResult dualTest = new MatchingResult(comments, headers, allResults, dualMatchesMap, time); MatchingResult[] output = {firstTest, dualTest}; diff --git a/src/main/java/UserInterface.java b/src/main/java/UserInterface.java index a875dbb..e86d053 100644 --- a/src/main/java/UserInterface.java +++ b/src/main/java/UserInterface.java @@ -256,7 +256,7 @@ public class UserInterface { List cells = cellReader.getCells(); MatchingResult preliminaryResults = Simulator.matchCDR3s(cells, plate, lowThresholdCDR3, highThresholdCDR3); MatchingResult[] results = Simulator.matchCDR1s(cells, plate, lowThresholdCDR1, - highThresholdCDR1, preliminaryResults.getMatchMap()); + highThresholdCDR1, preliminaryResults.getMatchMap(), preliminaryResults.getTime()); //result writer MatchingFileWriter writer = new MatchingFileWriter(filename + "First", results[0].getComments(),