Add real sequence collision rate

This commit is contained in:
eugenefischer
2022-09-28 17:54:55 -05:00
parent fd106a0d73
commit 34dc2a5721

View File

@@ -150,16 +150,21 @@ public class CommandLineInterface {
Integer readDepth = 1; Integer readDepth = 1;
Double readErrorRate = 0.0; Double readErrorRate = 0.0;
Double errorCollisionRate = 0.0; Double errorCollisionRate = 0.0;
Double realSequenceCollisionRate = 0.0;
if (line.hasOption("rd")) { if (line.hasOption("rd")) {
readDepth = Integer.parseInt(line.getOptionValue("rd")); readDepth = Integer.parseInt(line.getOptionValue("rd"));
} }
if (line.hasOption("err")) { if (line.hasOption("err")) {
readErrorRate = Double.parseDouble(line.getOptionValue("err")); readErrorRate = Double.parseDouble(line.getOptionValue("err"));
} }
if (line.hasOption("coll")) { if (line.hasOption("errcoll")) {
errorCollisionRate = Double.parseDouble(line.getOptionValue("coll")); 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 if (!line.hasOption("no-binary")) { //output binary file unless told not to
GraphDataObjectWriter writer = new GraphDataObjectWriter(outputFilename, graph, false); GraphDataObjectWriter writer = new GraphDataObjectWriter(outputFilename, graph, false);
writer.writeDataToFile(); writer.writeDataToFile();
@@ -413,12 +418,20 @@ public class CommandLineInterface {
.hasArg() .hasArg()
.argName("prob") .argName("prob")
.build(); .build();
Option errorCollisionProb = Option.builder("coll") Option errorCollisionProb = Option.builder("errcoll")
.longOpt("error-collision-prob") .longOpt("error-collision-prob")
.desc("(Optional) The probability that two misreads will produce the same spurious sequence. (0.0 - 1.0)") .desc("(Optional) The probability that two misreads will produce the same spurious sequence. (0.0 - 1.0)")
.hasArg() .hasArg()
.argName("prob") .argName("prob")
.build(); .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(cellFilename);
graphOptions.addOption(plateFilename); graphOptions.addOption(plateFilename);
graphOptions.addOption(outputFileOption()); graphOptions.addOption(outputFileOption());
@@ -427,6 +440,7 @@ public class CommandLineInterface {
graphOptions.addOption(readDepth); graphOptions.addOption(readDepth);
graphOptions.addOption(readErrorProb); graphOptions.addOption(readErrorProb);
graphOptions.addOption(errorCollisionProb); graphOptions.addOption(errorCollisionProb);
graphOptions.addOption(realSequenceCollisionProb);
return graphOptions; return graphOptions;
} }