From 19a2a35f07d46f76bdffd59906d6f9af011fe44e Mon Sep 17 00:00:00 2001 From: eugenefischer <66030419+eugenefischer@users.noreply.github.com> Date: Mon, 26 Sep 2022 17:00:25 -0500 Subject: [PATCH] Refactor plate assay methods to use maps passed as parameters rather than returning maps --- src/main/java/Plate.java | 14 ++++++-------- src/main/java/Simulator.java | 16 ++++++++++------ 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/main/java/Plate.java b/src/main/java/Plate.java index 5d4ea60..75ca2c8 100644 --- a/src/main/java/Plate.java +++ b/src/main/java/Plate.java @@ -149,24 +149,22 @@ public class Plate { } //returns a map of the counts of the sequence at cell index sIndex, in all wells - public Map assayWellsSequenceS(int... sIndices){ - return this.assayWellsSequenceS(0, size, sIndices); + public void assayWellsSequenceS(Map sequences, int... sIndices){ + this.assayWellsSequenceS(sequences, 0, size, sIndices); } //returns a map of the counts of the sequence at cell index sIndex, in a specific well - public Map assayWellsSequenceS(int n, int... sIndices) { - return this.assayWellsSequenceS(n, n+1, sIndices); + public void assayWellsSequenceS(Map sequences, int n, int... sIndices) { + this.assayWellsSequenceS(sequences, n, n+1, sIndices); } //returns a map of the counts of the sequence at cell index sIndex, in a range of wells - public Map assayWellsSequenceS(int start, int end, int... sIndices) { - Map assay = new HashMap<>(); + public void assayWellsSequenceS(Map sequences, int start, int end, int... sIndices) { for(int sIndex: sIndices){ for(int i = start; i < end; i++){ - countSequences(assay, wells.get(i), sIndex); + countSequences(sequences, wells.get(i), sIndex); } } - return assay; } //For the sequences at cell indices sIndices, counts number of unique sequences in the given well into the given map private void countSequences(Map wellMap, List well, int... sIndices) { diff --git a/src/main/java/Simulator.java b/src/main/java/Simulator.java index 698993c..1db1853 100644 --- a/src/main/java/Simulator.java +++ b/src/main/java/Simulator.java @@ -36,8 +36,10 @@ public class Simulator implements GraphModificationFunctions { if(verbose){System.out.println("Making well maps");} - Map allAlphas = samplePlate.assayWellsSequenceS(alphaIndices); - Map allBetas = samplePlate.assayWellsSequenceS(betaIndices); + Map allAlphas = new HashMap<>(); + samplePlate.assayWellsSequenceS(allAlphas, alphaIndices); + Map allBetas = new HashMap<>(); + samplePlate.assayWellsSequenceS(allBetas, betaIndices); int alphaCount = allAlphas.size(); if(verbose){System.out.println("All alphas count: " + alphaCount);} int betaCount = allBetas.size(); @@ -658,18 +660,20 @@ public class Simulator implements GraphModificationFunctions { Map rowSequenceCounts, Map columnSequenceCounts, double[][] weights){ - Map wellNRowSequences = null; - Map wellNColumnSequences = null; + Map wellNRowSequences; + Map wellNColumnSequences; int vertexStartValue = rowSequenceToVertexMap.size(); int numWells = samplePlate.getSize(); for (int n = 0; n < numWells; n++) { - wellNRowSequences = samplePlate.assayWellsSequenceS(n, rowSequenceIndices); + wellNRowSequences = new HashMap<>(); + samplePlate.assayWellsSequenceS(wellNRowSequences, n, rowSequenceIndices); for (String a : wellNRowSequences.keySet()) { if(allRowSequences.containsKey(a)){ rowSequenceCounts.merge(a, 1, (oldValue, newValue) -> oldValue + newValue); } } - wellNColumnSequences = samplePlate.assayWellsSequenceS(n, colSequenceIndices); + wellNColumnSequences = new HashMap<>(); + samplePlate.assayWellsSequenceS(wellNColumnSequences, n, colSequenceIndices); for (String b : wellNColumnSequences.keySet()) { if(allColumnSequences.containsKey(b)){ columnSequenceCounts.merge(b, 1, (oldValue, newValue) -> oldValue + newValue);