From 248fe4d662ab173c2d934400371dd59645789fec Mon Sep 17 00:00:00 2001 From: efischer Date: Sun, 20 Feb 2022 02:09:22 -0600 Subject: [PATCH] Add plate well concentrations to output data --- out/artifacts/TCellSim_jar/TCellSim.jar | Bin 1578875 -> 1578996 bytes src/main/java/Plate.java | 5 +++++ src/main/java/Simulator.java | 12 ++++++------ 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/out/artifacts/TCellSim_jar/TCellSim.jar b/out/artifacts/TCellSim_jar/TCellSim.jar index 189f0c50a4c79feafbac1e81d197b0e3528e04a4..eb9a41b01eac63590c7a03102caeaeb7d134b33e 100644 GIT binary patch delta 29826 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 delta 29664 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 aky&v+P+%d??UuT9gISGsE4TCiCipL60%bP< diff --git a/src/main/java/Plate.java b/src/main/java/Plate.java index 121a776..3a99c41 100644 --- a/src/main/java/Plate.java +++ b/src/main/java/Plate.java @@ -28,6 +28,11 @@ public class Plate { this.sourceFile = sourceFileName; this.wells = wells; this.size = wells.size(); + List concentrations = new ArrayList<>(); + for (List w: wells) { + concentrations.add(w.size()); + } + concentrations.toArray(this.concentrations); } public void fillWellsExponential(String sourceFileName, List cells, double lambda){ diff --git a/src/main/java/Simulator.java b/src/main/java/Simulator.java index f9cc8cb..4315bca 100644 --- a/src/main/java/Simulator.java +++ b/src/main/java/Simulator.java @@ -240,18 +240,18 @@ public class Simulator { BigDecimal attemptRateTrunc = new BigDecimal(attemptRate, mc); double pairingErrorRate = (double) falseCount / (trueCount + falseCount); BigDecimal pairingErrorRateTrunc = new BigDecimal(pairingErrorRate, mc); - //make list of well concentrations + //get list of well concentrations List wellConcentrations = Arrays.asList(data.getWellConcentrations()); //make string out of concentrations list - StringBuilder concen = new StringBuilder(); + StringBuilder concentrationStringBuilder = new StringBuilder(); for(Integer i: wellConcentrations){ - concen.append(i.toString()); - concen.append(" "); + concentrationStringBuilder.append(i.toString()); + concentrationStringBuilder.append(" "); } - String concenString = concen.toString(); + String concentrationString = concentrationStringBuilder.toString(); List comments = new ArrayList<>(); - comments.add("T cell counts in sample plate wells: " + concenString); + comments.add("T cell counts in sample plate wells: " + concentrationString); comments.add("Total alphas found: " + alphaCount); comments.add("Total betas found: " + betaCount); comments.add("High overlap threshold: " + highThreshold);