From 810abdb705c9175f91e6fef7524b56404dfba7d6 Mon Sep 17 00:00:00 2001 From: eugenefischer <66030419+eugenefischer@users.noreply.github.com> Date: Tue, 27 Sep 2022 11:13:12 -0500 Subject: [PATCH] Add read depth parameters to output metadata --- src/main/java/GraphWithMapData.java | 18 ++++++++++++++++-- src/main/java/Simulator.java | 20 +++++++++++++------- 2 files changed, 29 insertions(+), 9 deletions(-) diff --git a/src/main/java/GraphWithMapData.java b/src/main/java/GraphWithMapData.java index 2d30519..bfa1e19 100644 --- a/src/main/java/GraphWithMapData.java +++ b/src/main/java/GraphWithMapData.java @@ -16,6 +16,8 @@ public class GraphWithMapData implements java.io.Serializable { private Integer alphaCount; private Integer betaCount; private int readDepth; + private double readErrorRate; + private double errorCollisionRate; private final Map distCellsMapAlphaKey; // private final Map plateVtoAMap; // private final Map plateVtoBMap; @@ -26,7 +28,8 @@ public class GraphWithMapData implements java.io.Serializable { private final Duration time; public GraphWithMapData(SimpleWeightedGraph graph, Integer numWells, Integer[] wellConcentrations, - Map distCellsMapAlphaKey, Integer alphaCount, Integer betaCount, int readDepth, Duration time){ + Map distCellsMapAlphaKey, Integer alphaCount, Integer betaCount, + Integer readDepth, Double readErrorRate, Double errorCollisionRate, Duration time){ // Map plateVtoAMap, // Map plateVtoBMap, Map plateAtoVMap, @@ -44,6 +47,9 @@ public class GraphWithMapData implements java.io.Serializable { // this.plateBtoVMap = plateBtoVMap; // this.alphaWellCounts = alphaWellCounts; // this.betaWellCounts = betaWellCounts; + this.readDepth = readDepth; + this.readErrorRate = readErrorRate; + this.errorCollisionRate = errorCollisionRate; this.time = time; } @@ -95,7 +101,7 @@ public class GraphWithMapData implements java.io.Serializable { // return betaWellCounts; // } - public int getReadDepth() { return readDepth; } + public Integer getReadDepth() { return readDepth; } public Duration getTime() { return time; @@ -108,4 +114,12 @@ public class GraphWithMapData implements java.io.Serializable { public String getSourceFilename() { return sourceFilename; } + + public Double getReadErrorRate() { + return readErrorRate; + } + + public Double getErrorCollisionRate() { + return errorCollisionRate; + } } diff --git a/src/main/java/Simulator.java b/src/main/java/Simulator.java index 4ce0a06..cc24b18 100644 --- a/src/main/java/Simulator.java +++ b/src/main/java/Simulator.java @@ -168,7 +168,8 @@ public class Simulator implements GraphModificationFunctions { Duration time = Duration.between(start, stop); //create GraphWithMapData object - GraphWithMapData output = new GraphWithMapData(graph, numWells, samplePlate.getPopulations(), distCellsMapAlphaKey, alphaCount, betaCount, readDepth, time); + GraphWithMapData output = new GraphWithMapData(graph, numWells, samplePlate.getPopulations(), distCellsMapAlphaKey, + alphaCount, betaCount, readDepth, readErrorRate, errorCollisionRate, time); //Set source file name in graph to name of sample plate output.setSourceFilename(samplePlate.getFilename()); //return GraphWithMapData object @@ -340,14 +341,19 @@ public class Simulator implements GraphModificationFunctions { metadata.put("algorithm type", algoType); metadata.put("matching weight", totalMatchingWeight.toString()); metadata.put("well populations", wellPopulationsString); - metadata.put("total alphas on plate", data.getAlphaCount().toString()); - metadata.put("total betas on plate", data.getBetaCount().toString()); + metadata.put("read depth", data.getReadDepth().toString()); + metadata.put("Sequence read error rate", data.getReadErrorRate().toString()); + metadata.put("Read error collision rate", data.getErrorCollisionRate().toString()); + metadata.put("total alphas read from plate", data.getAlphaCount().toString()); + metadata.put("total betas read from plate", data.getBetaCount().toString()); + metadata.put("pre-filter sequences present in all wells", "true"); + metadata.put("pre-filter sequences based on occupancy/read count discrepancy", "true"); metadata.put("alphas in graph (after pre-filtering)", graphAlphaCount.toString()); metadata.put("betas in graph (after pre-filtering)", graphBetaCount.toString()); - metadata.put("high overlap threshold", highThreshold.toString()); - metadata.put("low overlap threshold", lowThreshold.toString()); - metadata.put("minimum overlap percent", minOverlapPercent.toString()); - metadata.put("maximum occupancy difference", maxOccupancyDifference.toString()); + metadata.put("high overlap threshold for pairing", highThreshold.toString()); + metadata.put("low overlap threshold for pairing", lowThreshold.toString()); + metadata.put("minimum overlap percent for pairing", minOverlapPercent.toString()); + metadata.put("maximum occupancy difference for pairing", maxOccupancyDifference.toString()); metadata.put("pairing attempt rate", attemptRateTrunc.toString()); metadata.put("correct pairing count", Integer.toString(trueCount)); metadata.put("incorrect pairing count", Integer.toString(falseCount));