mckennalab / FlashFry

FlashFry: The rapid CRISPR target site characterization tool
Other
63 stars 10 forks source link

--includeOTs score option #10

Closed simone-pignotti closed 5 years ago

simone-pignotti commented 5 years ago

The includeOTs cmd line option for the score command throws the following exeption:

$ java -Xmx4g -jar FlashFry-assembly-1.9.0.jar score --includeOTs --input test_cas9ngg_targets.tsv --output test_cas9ngg_targets_scored_icludeots.tsv --scoringMetrics doench2016cfd --database test_cas9ngg_db
11:26:58.709 [main] INFO  reference.binary.BinaryHeader$ - Loading header: enzyme type is SpCAS9
11:26:58.712 [main] DEBUG reference.binary.BinaryHeader$ - Number of characters used to generate this lookup file: 7
11:26:58.966 [main] INFO  modules.ScoreResults - Loading CRISPR objects (filtering out overflow guides)..
11:26:59.061 [main] INFO  modules.ScoreResults - adding score: Doench2014OnTarget
11:26:59.074 [main] INFO  modules.ScoreResults - Scoring all guides...
11:26:59.075 [main] INFO  modules.ScoreResults - Scoring with model Doench2014OnTarget
11:26:59.139 [main] INFO  modules.ScoreResults - Aggregating results...
11:26:59.161 [main] INFO  modules.ScoreResults - Writing annotated guides to the output file...
Exception in thread "main" picocli.CommandLine$ExecutionException: Error while running command (modules.ScoreResults@341b80b2): java.util.NoSuchElementException: key not found: 0
        at picocli.CommandLine.execute(CommandLine.java:1056)
        at picocli.CommandLine.access$900(CommandLine.java:142)
        at picocli.CommandLine$RunAll.handle(CommandLine.java:1304)
        at picocli.CommandLine$RunAll.handle(CommandLine.java:1264)
        at picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:1131)
        at picocli.CommandLine.parseWithHandlers(CommandLine.java:1414)
        at picocli.CommandLine.parseWithHandler(CommandLine.java:1353)
        at main.scala.Main$.main(Main.scala:57)
        at main.scala.Main.main(Main.scala)
Caused by: java.util.NoSuchElementException: key not found: 0
        at scala.collection.MapLike.default(MapLike.scala:232)
        at scala.collection.MapLike.default$(MapLike.scala:231)
        at scala.collection.AbstractMap.default(Map.scala:59)
        at scala.collection.mutable.HashMap.apply(HashMap.scala:65)
        at bitcoding.BitPosition.decode(BitPosition.scala:67)
        at crispr.CRISPRHit.$anonfun$toOutput$1(CRISPRHit.scala:43)
        at crispr.CRISPRHit.$anonfun$toOutput$1$adapted(CRISPRHit.scala:42)
        at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:234)
        at scala.collection.IndexedSeqOptimized.foreach(IndexedSeqOptimized.scala:32)
        at scala.collection.IndexedSeqOptimized.foreach$(IndexedSeqOptimized.scala:29)
        at scala.collection.mutable.ArrayOps$ofLong.foreach(ArrayOps.scala:253)
        at scala.collection.TraversableLike.map(TraversableLike.scala:234)
        at scala.collection.TraversableLike.map$(TraversableLike.scala:227)
        at scala.collection.mutable.ArrayOps$ofLong.map(ArrayOps.scala:253)
        at crispr.CRISPRHit.toOutput(CRISPRHit.scala:42)
        at targetio.TabDelimitedOutput.$anonfun$write$7(TabDelimitedHandler.scala:139)
        at scala.collection.TraversableLike.$anonfun$map$1(TraversableLike.scala:234)
        at scala.collection.mutable.ResizableArray.foreach(ResizableArray.scala:59)
        at scala.collection.mutable.ResizableArray.foreach$(ResizableArray.scala:52)
        at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48)
        at scala.collection.TraversableLike.map(TraversableLike.scala:234)
        at scala.collection.TraversableLike.map$(TraversableLike.scala:227)
        at scala.collection.AbstractTraversable.map(Traversable.scala:104)
        at targetio.TabDelimitedOutput.write(TabDelimitedHandler.scala:139)
        at modules.ScoreResults.$anonfun$run$8(ScoreResults.scala:131)
        at modules.ScoreResults.$anonfun$run$8$adapted(ScoreResults.scala:130)
        at scala.collection.IndexedSeqOptimized.foreach(IndexedSeqOptimized.scala:32)
        at scala.collection.IndexedSeqOptimized.foreach$(IndexedSeqOptimized.scala:29)
        at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:193)
        at modules.ScoreResults.run(ScoreResults.scala:130)
        at picocli.CommandLine.execute(CommandLine.java:1048)
        ... 8 more

I have tested other scoring methods and the exeption is always the same. Details about my system:

aaronmck commented 5 years ago

Thanks again for the bug report. This is now fixed in the 1.9.1 release which I'll put up in the next hour. Thanks again for checking out FlashFry!

simone-pignotti commented 5 years ago

Thanks to you for the quick fix! Tested and working