From 34dc2a5721ab6db5e77adb4db94a505bb0badc3c Mon Sep 17 00:00:00 2001 From: eugenefischer <66030419+eugenefischer@users.noreply.github.com> Date: Wed, 28 Sep 2022 17:54:55 -0500 Subject: [PATCH] Add real sequence collision rate --- src/main/java/CommandLineInterface.java | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/main/java/CommandLineInterface.java b/src/main/java/CommandLineInterface.java index 9b7580b..5040a8c 100644 --- a/src/main/java/CommandLineInterface.java +++ b/src/main/java/CommandLineInterface.java @@ -150,16 +150,21 @@ public class CommandLineInterface { Integer readDepth = 1; Double readErrorRate = 0.0; Double errorCollisionRate = 0.0; + Double realSequenceCollisionRate = 0.0; if (line.hasOption("rd")) { readDepth = Integer.parseInt(line.getOptionValue("rd")); } if (line.hasOption("err")) { readErrorRate = Double.parseDouble(line.getOptionValue("err")); } - if (line.hasOption("coll")) { - errorCollisionRate = Double.parseDouble(line.getOptionValue("coll")); + if (line.hasOption("errcoll")) { + errorCollisionRate = Double.parseDouble(line.getOptionValue("errcoll")); } - graph = Simulator.makeCDR3Graph(cells, plate, readDepth, readErrorRate, errorCollisionRate, false); + if (line.hasOption("realcoll")) { + realSequenceCollisionRate = Double.parseDouble(line.getOptionValue("realcoll")); + } + graph = Simulator.makeCDR3Graph(cells, plate, readDepth, readErrorRate, errorCollisionRate, + realSequenceCollisionRate, false); if (!line.hasOption("no-binary")) { //output binary file unless told not to GraphDataObjectWriter writer = new GraphDataObjectWriter(outputFilename, graph, false); writer.writeDataToFile(); @@ -413,12 +418,20 @@ public class CommandLineInterface { .hasArg() .argName("prob") .build(); - Option errorCollisionProb = Option.builder("coll") + Option errorCollisionProb = Option.builder("errcoll") .longOpt("error-collision-prob") .desc("(Optional) The probability that two misreads will produce the same spurious sequence. (0.0 - 1.0)") .hasArg() .argName("prob") .build(); + Option realSequenceCollisionProb = Option.builder("realcoll") + .longOpt("real-collision-prob") + .desc("(Optional) The probability that a sequence will be misread " + + "as another real sequence. (Only applies to unique misreads; after this has happened once, " + + "future error collisions could produce the real sequence again) (0.0 - 1.0)") + .hasArg() + .argName("prob") + .build(); graphOptions.addOption(cellFilename); graphOptions.addOption(plateFilename); graphOptions.addOption(outputFileOption()); @@ -427,6 +440,7 @@ public class CommandLineInterface { graphOptions.addOption(readDepth); graphOptions.addOption(readErrorProb); graphOptions.addOption(errorCollisionProb); + graphOptions.addOption(realSequenceCollisionProb); return graphOptions; }