Illumina / canvas

Canvas - Copy number variant (CNV) calling from DNA sequencing data
Other
121 stars 20 forks source link

CheckPoint 3: Canvas workflow error: System.ArgumentNullException: Value cannot be null. Parameter name: fileName #93

Open BenoitFiset opened 6 years ago

BenoitFiset commented 6 years ago

Hi Eric,

Canvas 1.11.0 crashes at the start of CheckPoint 3 with Value cannot be null. Parameter name: fileName

I'm really stumped at this one.... Where would I start to figure this one ?

The Error:

8/31/2018,05:23:15.539,ERROR: Canvas workflow error: System.ArgumentNullException: Value cannot be null.
Parameter name: fileName
  at System.IO.FileInfo..ctor (System.String fileName) [0x0000c] in <d5caad886768424fa3a1522c6f4e7dd5>:0 
  at (wrapper remoting-invoke-with-check) System.IO.FileInfo:.ctor (string)
  at Isas.Shared.FileLocation..ctor (System.String filePath) [0x00000] in <50a58fca929d4779b288da9d5fc7e23a>:0 
  at Illumina.SecondaryAnalysis.CanvasRunner.InvokeCanvasClean (Canvas.CanvasCallset callset, Isas.Shared.IFileLocation binnedPath) [0x0017f] in <40480894c2e34a83bba19927b2
1c54fe>:0 
  at Illumina.SecondaryAnalysis.CanvasRunner+<>c__DisplayClass17_0.<CallSampleInternal>b__2 () [0x00000] in <40480894c2e34a83bba19927b21c54fe>:0 
  at Isas.Shared.Checkpointing.CheckpointRunnerAsync+CheckpointHelper`1[T].<WrapWithBenchmark>b__9_0 () [0x00032] in <50a58fca929d4779b288da9d5fc7e23a>:0 
  at Isas.Shared.Checkpointing.CheckpointRunnerAsync+CheckpointHelper`1[T].<WrapWithSave>b__10_0 () [0x00006] in <50a58fca929d4779b288da9d5fc7e23a>:0 
  at Isas.Shared.Checkpointing.CheckpointRunnerAsync+CheckpointHelper`1[T].<WrapWithStopCheckpointCheck>b__12_0 () [0x00006] in <50a58fca929d4779b288da9d5fc7e23a>:0 
  at System.Threading.Tasks.Task`1[TResult].InnerInvoke () [0x00012] in <d5caad886768424fa3a1522c6f4e7dd5>:0 
  at System.Threading.Tasks.Task.Execute () [0x00016] in <d5caad886768424fa3a1522c6f4e7dd5>:0 
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <d5caad886768424fa3a1522c6f4e7dd5>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0004e] in <d5caad886768424fa3a1522c6f4e7dd5>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in <d5caad886768424fa3a1522c6f4e7dd5>:
0 
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in <d5caad886768424fa3a1522c6f4e7dd5>:0 
  at System.Runtime.CompilerServices.TaskAwaiter`1[TResult].GetResult () [0x00000] in <d5caad886768424fa3a1522c6f4e7dd5>:0 
  at Isas.Shared.Checkpointing.CheckpointRunnerAsync.RunCheckpoint[TOut] (System.String key, System.Func`1[TResult] function) [0x0000e] in <50a58fca929d4779b288da9d5fc7e23a
>:0 
  at Illumina.SecondaryAnalysis.CanvasRunner+<CallSampleInternal>d__17.MoveNext () [0x0017b] in <40480894c2e34a83bba19927b21c54fe>:0 
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <d5caad886768424fa3a1522c6f4e7dd5>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0004e] in <d5caad886768424fa3a1522c6f4e7dd5>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in <d5caad886768424fa3a1522c6f4e7dd5>:
0 
  at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in <d5caad886768424fa3a1522c6f4e7dd5>:0 
  at System.Runtime.CompilerServices.TaskAwaiter.GetResult () [0x00000] in <d5caad886768424fa3a1522c6f4e7dd5>:0 
  at Illumina.SecondaryAnalysis.CanvasRunner.CallSample (Canvas.CanvasCallset callset) [0x00029] in <40480894c2e34a83bba19927b21c54fe>:0 
  at Canvas.TumorNormalEnrichmentRunner.Run (Isas.Shared.ILogger logger, Isas.Shared.Checkpointing.ICheckpointRunnerAsync checkpointRunner, Isas.Shared.IWorkManager workMan
ager) [0x00021] in <40480894c2e34a83bba19927b21c54fe>:0 
  at Canvas.ModeLauncher.Launch () [0x000c2] in <40480894c2e34a83bba19927b21c54fe>:0 

The Command a launched a CheckPoint 3:

8/31/2018,05:23:02.001,Running checkpoint 3: 'CanvasClean'
8/31/2018,05:23:02.004,Launch process: /cvmfs/soft.computecanada.ca/easybuild/software/2017/sse3/Compiler/intel2016.4/mono/4.6.2.7/bin/mono /project/6014302/bfiset/Canvas/1
.11.0/CanvasClean.exe -i "/home/bfiset/scratch/WGS/Canvas_01/TempCNV_4748_007_VS_4748-008_4763-006/4748_007_VS_4748-008_4763-006.ratio.binned" -o "/home/bfiset/scratch/WGS/
Canvas_01/TempCNV_4748_007_VS_4748-008_4763-006/4748_007_VS_4748-008_4763-006.cleaned" -g -t "/home/bfiset/scratch/WGS/Canvas_01/TempCNV_4748_007_VS_4748-008_4763-006/manif
est.txt"

Thanks,

B.

BenoitFiset commented 6 years ago

Hi Eric,

Could this be related with mono version and Canvas 1.11.0 ?

BenoitFiset commented 6 years ago

Hi Eric,

Tried desperate mesures.... and Wow.... and Very weird.....

When I run on the CheckPoint 3 - CanvasClean command on the command prompt it runs without any errors and the .cleaned file gets generated.... nice 10M file....

/cvmfs/soft.computecanada.ca/easybuild/software/2017/sse3/Compiler/intel2016.4/mono/4.6.2.7/bin/mono /project/6014302/bfiset/Canvas/1.11.0/CanvasClean.exe -i "/home/bfiset/scratch/WGS/Canvas_01/TempCNV_4748_007_VS_4748-008_4763-006/4748_007_VS_4748-008_4763-006.ratio.binned" -o "/home/bfiset/scratch/WGS/
Canvas_01/TempCNV_4748_007_VS_4748-008_4763-006/4748_007_VS_4748-008_4763-006.cleaned" -g -t "/home/bfiset/scratch/WGS/Canvas_01/TempCNV_4748_007_VS_4748-008_4763-006/manifest.txt"

Why would it crash when run it in workflow and as a stand alone command it works ? File path parser issue somewhere ?

Thanks for the help to get to CheckPoint 4....

B.

eroller commented 5 years ago

This is strange. It seems like it could be a race condition, or possibly a problem with mono. Maybe try running Canvas again from the beginning on a fresh output directory. If it is a race condition then it may happen some fraction of the time. There doesn't seem to be much else we can do to troubleshoot.

stefpiatek commented 5 years ago

Hi there, I'm also getting this running a docker container with mono (I have tried versions 5.14, 4.8.0, 4.2.3 and 3.10) and canvas 1.11.0. Seems to happen every time for me. Is there a version of mono where you know this should work or what are the steps that should run in section 3 so I can just hardcode the workflow?

Thanks

Stef

eroller commented 5 years ago

We have used mono 4.2.3 and 3.10. Can you try running the command for checkpoint 3 directly from the terminal? The command should be written out to CanvasLog.txt

stefpiatek commented 5 years ago

Running the CanvasClean command seems to work fine, producing a 32kb 17398.cleaned output if that's not unexpectedly small?

/usr/bin/mono /usr/canvas/CanvasClean.exe -i "/mnt/output/ICR/now/canvas/BRCA1/TempCNV_17398/17398.ratio.binned" -o "/mnt/output/ICR/now/canvas/BRCA1/TempCNV_17398/17398.cleaned" -g -t "/mnt/output/ICR/now/canvas/BRCA1/TempCNV_17398/manifest.txt"

The stderr gives a warning:

Warning in CanvasClean: Coverage too low to perform GC correction; proceeding without GC correction

The /mnt/output/ICR/now/canvas/BRCA1/TempCNV_17398/17398.ratio.binned file is 48 kb

stefpiatek commented 5 years ago

If it's just this step that runs, I'm happy to run that step outside of the workflow if you let me know what needs to be in the json for checkpoint4 to work. I tried having "${Output}/TempCNV_17398/17398.cleaned" in Checkpoints\03-CanvasClean.json but it doesn't work

eroller commented 5 years ago

What error do you get when trying that checkpoint json file? What does the json output look like for the bin checkpoint? It is an older version so I am not sure of the exact format for that checkpoint file. Here is what the json would look like today (I do think we renamed ${Output} to ${AnalysisFolder}):

[
  "${AnalysisFolder}/TempCNV_17398/17398.cleaned"
]

The small file is not surprising if your manifest only includes a small region of the genome. The warning about low coverage may actually be triggered by the small number of bins covered by the manifest rather than low coverage. Basically the criteria relates to the variance in coverage due to GC content. If the variance is too large we cannot perform GC normalization.

stefpiatek commented 5 years ago

Yep only looking at a pretty small capture so that makes sense. This is the error I'm getting:

ERROR: Canvas workflow error: Newtonsoft.Json.JsonSerializationException: Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'Illumina.SecondaryAnalysis.CanvasRunner+CanvasCleanOutput' because the type requires a JSON object (e.g. {"name":"value"}) to deserialize correctly.
To fix this error either change the JSON to a JSON object (e.g. {"name":"value"}) or change the deserialized type to an array or a type that implements a collection interface (e.g. ICollection, IList) like List<T> that can be deserialized from a JSON array. JsonArrayAttribute can also be added to the type to force it to deserialize from a JSON array.
Path '', line 1, position 1.
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureArrayContract (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract) [0x00058] in <c2b0f249bce9485f80c341d014633835>:0
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, System.Object existingValue, System.String id) [0x00012] in <c2b0f249bce9485f80c341d014633835>:0
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x0007f] in <c2b0f249bce9485f80c341d014633835>:0
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize (Newtonsoft.Json.JsonReader reader, System.Type objectType, System.Boolean checkAdditionalContent) [0x000d9] in <c2b0f249bce9485f80c341d014633835>:0
  at Newtonsoft.Json.JsonSerializer.DeserializeInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType) [0x00053] in <c2b0f249bce9485f80c341d014633835>:0
  at Newtonsoft.Json.JsonSerializer.Deserialize (Newtonsoft.Json.JsonReader reader, System.Type objectType) [0x00000] in <c2b0f249bce9485f80c341d014633835>:0
  at Newtonsoft.Json.JsonConvert.DeserializeObject (System.String value, System.Type type, Newtonsoft.Json.JsonSerializerSettings settings) [0x0002d] in <c2b0f249bce9485f80c341d014633835>:0
  at Newtonsoft.Json.JsonConvert.DeserializeObject[T] (System.String value, Newtonsoft.Json.JsonSerializerSettings settings) [0x00000] in <c2b0f249bce9485f80c341d014633835>:0
  at Isas.Shared.Checkpointing.CheckpointJsonSerializerAsync.Deserialize[T] (Isas.Shared.IFileLocation path) [0x0000d] in <50a58fca929d4779b288da9d5fc7e23a>:0
  at Isas.Shared.Checkpointing.CheckpointJsonSerializerAsync.Load[T] (Isas.Shared.Checkpointing.Checkpoint checkpoint) [0x0003b] in <50a58fca929d4779b288da9d5fc7e23a>:0
  at Isas.Shared.Checkpointing.CheckpointRunnerAsync+CheckpointHelper`1[T].<RunOrLoad>b__11_0 () [0x00037] in <50a58fca929d4779b288da9d5fc7e23a>:0
  at Isas.Shared.Checkpointing.CheckpointRunnerAsync+CheckpointHelper`1[T].<WrapWithStopCheckpointCheck>b__12_0 () [0x00006] in <50a58fca929d4779b288da9d5fc7e23a>:0
  at System.Threading.Tasks.Task`1[TResult].InnerInvoke () [0x0000f] in <2943701620b54f86b436d3ffad010412>:0
  at System.Threading.Tasks.Task.Execute () [0x00000] in <2943701620b54f86b436d3ffad010412>:0
--- End of stack trace from previous location where exception was thrown ---
  at Isas.Shared.Checkpointing.CheckpointRunnerAsync.RunCheckpoint[TOut] (System.String key, System.Func`1[TResult] function) [0x0000e] in <50a58fca929d4779b288da9d5fc7e23a>:0
  at Illumina.SecondaryAnalysis.CanvasRunner+<CallSampleInternal>d__17.MoveNext () [0x0017b] in <40480894c2e34a83bba19927b21c54fe>:0
--- End of stack trace from previous location where exception was thrown ---
  at Illumina.SecondaryAnalysis.CanvasRunner.CallSample (Canvas.CanvasCallset callset) [0x00029] in <40480894c2e34a83bba19927b21c54fe>:0
  at Canvas.SomaticEnrichmentRunner.Run (Isas.Shared.ILogger logger, Isas.Shared.Checkpointing.ICheckpointRunnerAsync checkpointRunner, Isas.Shared.IWorkManager workManager) [0x00021] in <40480894c2e34a83bba19927b21c54fe>:0
  at Canvas.ModeLauncher.Launch () [0x000c2] in <40480894c2e34a83bba19927b21c54fe>:0

I also tried with it just having the string and it has another similar error in parsing the json:

ERROR: Canvas workflow error: Newtonsoft.Json.JsonSerializationException: Error converting value "${Output}/TempCNV_17398/17398.cleaned" to type 'Illumina.SecondaryAnalysis.CanvasRunner+CanvasCleanOutput'. Path '', line 1, position 39. ---> System.ArgumentException: Could not cast or convert from System.String to Illumina.SecondaryAnalysis.CanvasRunner+CanvasCleanOutput.
  at Newtonsoft.Json.Utilities.ConvertUtils.EnsureTypeAssignable (System.Object value, System.Type initialType, System.Type targetType) [0x00068] in <c2b0f249bce9485f80c341d014633835>:0
  at Newtonsoft.Json.Utilities.ConvertUtils.ConvertOrCast (System.Object initialValue, System.Globalization.CultureInfo culture, System.Type targetType) [0x00036] in <c2b0f249bce9485f80c341d014633835>:0
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType (Newtonsoft.Json.JsonReader reader, System.Object value, System.Globalization.CultureInfo culture, Newtonsoft.Json.Serialization.JsonContract contract, System.Type targetType) [0x000bb] in <c2b0f249bce9485f80c341d014633835>:0
   --- End of inner exception stack trace ---
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType (Newtonsoft.Json.JsonReader reader, System.Object value, System.Globalization.CultureInfo culture, Newtonsoft.Json.Serialization.JsonContract contract, System.Type targetType) [0x000eb] in <c2b0f249bce9485f80c341d014633835>:0
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType, Newtonsoft.Json.Serialization.JsonContract contract, Newtonsoft.Json.Serialization.JsonProperty member, Newtonsoft.Json.Serialization.JsonContainerContract containerContract, Newtonsoft.Json.Serialization.JsonProperty containerMember, System.Object existingValue) [0x000dc] in <c2b0f249bce9485f80c341d014633835>:0
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize (Newtonsoft.Json.JsonReader reader, System.Type objectType, System.Boolean checkAdditionalContent) [0x000d9] in <c2b0f249bce9485f80c341d014633835>:0
  at Newtonsoft.Json.JsonSerializer.DeserializeInternal (Newtonsoft.Json.JsonReader reader, System.Type objectType) [0x00053] in <c2b0f249bce9485f80c341d014633835>:0
  at Newtonsoft.Json.JsonSerializer.Deserialize (Newtonsoft.Json.JsonReader reader, System.Type objectType) [0x00000] in <c2b0f249bce9485f80c341d014633835>:0
  at Newtonsoft.Json.JsonConvert.DeserializeObject (System.String value, System.Type type, Newtonsoft.Json.JsonSerializerSettings settings) [0x0002d] in <c2b0f249bce9485f80c341d014633835>:0
  at Newtonsoft.Json.JsonConvert.DeserializeObject[T] (System.String value, Newtonsoft.Json.JsonSerializerSettings settings) [0x00000] in <c2b0f249bce9485f80c341d014633835>:0
  at Isas.Shared.Checkpointing.CheckpointJsonSerializerAsync.Deserialize[T] (Isas.Shared.IFileLocation path) [0x0000d] in <50a58fca929d4779b288da9d5fc7e23a>:0
  at Isas.Shared.Checkpointing.CheckpointJsonSerializerAsync.Load[T] (Isas.Shared.Checkpointing.Checkpoint checkpoint) [0x0003b] in <50a58fca929d4779b288da9d5fc7e23a>:0
  at Isas.Shared.Checkpointing.CheckpointRunnerAsync+CheckpointHelper`1[T].<RunOrLoad>b__11_0 () [0x00037] in <50a58fca929d4779b288da9d5fc7e23a>:0
  at Isas.Shared.Checkpointing.CheckpointRunnerAsync+CheckpointHelper`1[T].<WrapWithStopCheckpointCheck>b__12_0 () [0x00006] in <50a58fca929d4779b288da9d5fc7e23a>:0
  at System.Threading.Tasks.Task`1[TResult].InnerInvoke () [0x0000f] in <2943701620b54f86b436d3ffad010412>:0
  at System.Threading.Tasks.Task.Execute () [0x00000] in <2943701620b54f86b436d3ffad010412>:0
--- End of stack trace from previous location where exception was thrown ---
  at Isas.Shared.Checkpointing.CheckpointRunnerAsync.RunCheckpoint[TOut] (System.String key, System.Func`1[TResult] function) [0x0000e] in <50a58fca929d4779b288da9d5fc7e23a>:0
  at Illumina.SecondaryAnalysis.CanvasRunner+<CallSampleInternal>d__17.MoveNext () [0x0017b] in <40480894c2e34a83bba19927b21c54fe>:0
--- End of stack trace from previous location where exception was thrown ---
  at Illumina.SecondaryAnalysis.CanvasRunner.CallSample (Canvas.CanvasCallset callset) [0x00029] in <40480894c2e34a83bba19927b21c54fe>:0
  at Canvas.SomaticEnrichmentRunner.Run (Isas.Shared.ILogger logger, Isas.Shared.Checkpointing.ICheckpointRunnerAsync checkpointRunner, Isas.Shared.IWorkManager workManager) [0x00021] in <40480894c2e34a83bba19927b21c54fe>:0
  at Canvas.ModeLauncher.Launch () [0x000c2] in <40480894c2e34a83bba19927b21c54fe>:0
eroller commented 5 years ago

Give this a try:

{
  "CleanedPath": "${Output}/TempCNV_17398/17398.cleaned",
  "FfpePath": "${Output}/TempCNV_17398/LocalSdMetric.txt"
}

also try:

{
  "CleanedPath": "${Output}/TempCNV_17398/17398.cleaned",
  "FfpePath": null
}
stefpiatek commented 5 years ago

The both options work to start checkpoint 4 but come with this exception:

12/18/2018,13:34:53.591,Running Canvas Somatic-Enrichment 1.11.0
12/18/2018,13:34:53.599,Command-line arguments: Somatic-Enrichment --manifest=/mnt/output/ICR/now/canvas/nextera_manifest.txt --bam=/mnt/bam-input/17398.sorted.bam --control-bam=/mnt/bam-input/17327.sorted.bam --control-bam=/mnt/bam-inp1
12/18/2018,13:34:53.733,Loading previously saved results for checkpoint 2: 'CanvasBin'
12/18/2018,13:34:53.735,Loading checkpoint results from /mnt/output/ICR/now/canvas/BRCA1/Checkpoints/02-CanvasBin.json
12/18/2018,13:34:53.743,Loading previously saved results for checkpoint 1: 'CanvasSNV'
12/18/2018,13:34:53.744,Loading checkpoint results from /mnt/output/ICR/now/canvas/BRCA1/Checkpoints/01-CanvasSNV.json
12/18/2018,13:34:53.829,Loading previously saved results for checkpoint 3: 'CanvasClean'
12/18/2018,13:34:53.830,Loading checkpoint results from /mnt/output/ICR/now/canvas/BRCA1/Checkpoints/03-CanvasClean.json
12/18/2018,13:34:53.893,Found specified start checkpoint 4: 'CanvasPartition'
12/18/2018,13:34:53.894,Running checkpoint 4: 'CanvasPartition'
12/18/2018,13:34:53.915,Launch process: /usr/bin/mono /usr/canvas/CanvasPartition.exe -i "/mnt/output/ICR/now/canvas/BRCA1/TempCNV_17398/17398.cleaned" -b "/mnt/cnv-caller-resources/canvas/filter13.bed" -o "/mnt/output/ICR/now/canvas/BR
12/18/2018,13:34:54.335,Max job memory (GB): 0.7
12/18/2018,13:34:54.335,Longest job runtime (Hours): 0.00
12/18/2018,13:34:54.337,Elapsed time (step/time(sec)/name)      4       00:00:00.4      CanvasPartition
12/18/2018,13:34:54.338,Saving checkpoint results to /mnt/output/ICR/now/canvas/BRCA1/Checkpoints/04-CanvasPartition.json
12/18/2018,13:34:54.356,Stop checkpoint 4: 'CanvasPartition' finished

Unhandled Exception:
System.ArgumentException: The specified path is not of a legal form (empty).
  at System.IO.Path.InsecureGetFullPath (System.String path) [0x00025] in <2943701620b54f86b436d3ffad010412>:0
  at System.IO.Path.GetFullPathInternal (System.String path) [0x00000] in <2943701620b54f86b436d3ffad010412>:0
  at System.IO.FileInfo.Init (System.String fileName, System.Boolean checkHost) [0x00007] in <2943701620b54f86b436d3ffad010412>:0
  at System.IO.FileInfo..ctor (System.String fileName) [0x00014] in <2943701620b54f86b436d3ffad010412>:0
  at (wrapper remoting-invoke-with-check) System.IO.FileInfo..ctor(string)
  at Isas.Shared.FileLocation..ctor (System.String filePath) [0x00000] in <50a58fca929d4779b288da9d5fc7e23a>:0
  at Canvas.CommandLineParsing.CoreOptionTypes.FileOption.Parse (System.String value) [0x00003] in <40480894c2e34a83bba19927b21c54fe>:0
  at Canvas.CommandLineParsing.CoreOptionTypes.ValueOption`1[T].Parse (Canvas.CommandLineParsing.OptionProcessing.SuccessfulResultCollection value) [0x0000d] in <40480894c2e34a83bba19927b21c54fe>:0
  at Canvas.CommandLineParsing.CoreOptionTypes.Option`1[TParseOutput].Canvas.CommandLineParsing.CoreOptionTypes.IOption.Parse (Canvas.CommandLineParsing.OptionProcessing.SuccessfulResultCollection parseInput) [0x00000] in <40480894c2e34
  at Canvas.CommandLineParsing.OptionCollection`1[TResult].ParseGeneric (System.Collections.Generic.Dictionary`2[TKey,TValue] optionResults, System.Collections.Generic.IEnumerable`1[T] remainingArgs) [0x000d1] in <40480894c2e34a83bba199
  at Canvas.CommandLineParsing.OptionCollection`1[TResult].ParseInternal (System.Collections.Generic.Dictionary`2[TKey,TValue] optionResults, System.Collections.Generic.IEnumerable`1[T] remainingArgs) [0x00000] in <40480894c2e34a83bba19
  at Canvas.CommandLineParsing.OptionCollection`1[TResult].Canvas.CommandLineParsing.IOptionCollection.ParseInternal (System.Collections.Generic.Dictionary`2[TKey,TValue] optionResults, System.Collections.Generic.IEnumerable`1[T] remain
  at Canvas.CommandLineParsing.OptionCollection`1[TResult].ParseGeneric (System.Collections.Generic.Dictionary`2[TKey,TValue] optionResults, System.Collections.Generic.IEnumerable`1[T] remainingArgs) [0x00099] in <40480894c2e34a83bba199
  at Canvas.CommandLineParsing.OptionCollection`1[TResult].ParseInternal (System.Collections.Generic.Dictionary`2[TKey,TValue] optionResults, System.Collections.Generic.IEnumerable`1[T] remainingArgs) [0x00000] in <40480894c2e34a83bba19
  at Canvas.CommandLineParsing.OptionCollection`1[TResult].Canvas.CommandLineParsing.IOptionCollection.ParseInternal (System.Collections.Generic.Dictionary`2[TKey,TValue] optionResults, System.Collections.Generic.IEnumerable`1[T] remain
  at Canvas.CommandLineParsing.OptionCollection`1[TResult].ParseGeneric (System.Collections.Generic.Dictionary`2[TKey,TValue] optionResults, System.Collections.Generic.IEnumerable`1[T] remainingArgs) [0x00099] in <40480894c2e34a83bba199
  at Canvas.CommandLineParsing.OptionCollection`1[TResult].Parse (System.Collections.Generic.IEnumerable`1[T] args) [0x00011] in <40480894c2e34a83bba19927b21c54fe>:0
  at Canvas.CommandLineParsing.MainParser.Parse (System.String[] args, System.IO.TextWriter standardWriter, System.IO.TextWriter errorWriter) [0x0004f] in <40480894c2e34a83bba19927b21c54fe>:0
  at Canvas.Program.Main (System.String[] args) [0x00068] in <40480894c2e34a83bba19927b21c54fe>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.ArgumentException: The specified path is not of a legal form (empty).
  at System.IO.Path.InsecureGetFullPath (System.String path) [0x00025] in <2943701620b54f86b436d3ffad010412>:0
  at System.IO.Path.GetFullPathInternal (System.String path) [0x00000] in <2943701620b54f86b436d3ffad010412>:0
  at System.IO.FileInfo.Init (System.String fileName, System.Boolean checkHost) [0x00007] in <2943701620b54f86b436d3ffad010412>:0
  at System.IO.FileInfo..ctor (System.String fileName) [0x00014] in <2943701620b54f86b436d3ffad010412>:0
  at (wrapper remoting-invoke-with-check) System.IO.FileInfo..ctor(string)
  at Isas.Shared.FileLocation..ctor (System.String filePath) [0x00000] in <50a58fca929d4779b288da9d5fc7e23a>:0
  at Canvas.CommandLineParsing.CoreOptionTypes.FileOption.Parse (System.String value) [0x00003] in <40480894c2e34a83bba19927b21c54fe>:0
  at Canvas.CommandLineParsing.CoreOptionTypes.ValueOption`1[T].Parse (Canvas.CommandLineParsing.OptionProcessing.SuccessfulResultCollection value) [0x0000d] in <40480894c2e34a83bba19927b21c54fe>:0
  at Canvas.CommandLineParsing.CoreOptionTypes.Option`1[TParseOutput].Canvas.CommandLineParsing.CoreOptionTypes.IOption.Parse (Canvas.CommandLineParsing.OptionProcessing.SuccessfulResultCollection parseInput) [0x00000] in <40480894c2e34
  at Canvas.CommandLineParsing.OptionCollection`1[TResult].ParseGeneric (System.Collections.Generic.Dictionary`2[TKey,TValue] optionResults, System.Collections.Generic.IEnumerable`1[T] remainingArgs) [0x000d1] in <40480894c2e34a83bba199
  at Canvas.CommandLineParsing.OptionCollection`1[TResult].ParseInternal (System.Collections.Generic.Dictionary`2[TKey,TValue] optionResults, System.Collections.Generic.IEnumerable`1[T] remainingArgs) [0x00000] in <40480894c2e34a83bba19
  at Canvas.CommandLineParsing.OptionCollection`1[TResult].Canvas.CommandLineParsing.IOptionCollection.ParseInternal (System.Collections.Generic.Dictionary`2[TKey,TValue] optionResults, System.Collections.Generic.IEnumerable`1[T] remain
  at Canvas.CommandLineParsing.OptionCollection`1[TResult].ParseGeneric (System.Collections.Generic.Dictionary`2[TKey,TValue] optionResults, System.Collections.Generic.IEnumerable`1[T] remainingArgs) [0x00099] in <40480894c2e34a83bba199
  at Canvas.CommandLineParsing.OptionCollection`1[TResult].ParseInternal (System.Collections.Generic.Dictionary`2[TKey,TValue] optionResults, System.Collections.Generic.IEnumerable`1[T] remainingArgs) [0x00000] in <40480894c2e34a83bba19
  at Canvas.CommandLineParsing.OptionCollection`1[TResult].Canvas.CommandLineParsing.IOptionCollection.ParseInternal (System.Collections.Generic.Dictionary`2[TKey,TValue] optionResults, System.Collections.Generic.IEnumerable`1[T] remain
  at Canvas.CommandLineParsing.OptionCollection`1[TResult].ParseGeneric (System.Collections.Generic.Dictionary`2[TKey,TValue] optionResults, System.Collections.Generic.IEnumerable`1[T] remainingArgs) [0x00099] in <40480894c2e34a83bba199
  at Canvas.CommandLineParsing.OptionCollection`1[TResult].Parse (System.Collections.Generic.IEnumerable`1[T] args) [0x00011] in <40480894c2e34a83bba19927b21c54fe>:0
  at Canvas.CommandLineParsing.MainParser.Parse (System.String[] args, System.IO.TextWriter standardWriter, System.IO.TextWriter errorWriter) [0x0004f] in <40480894c2e34a83bba19927b21c54fe>:0
  at Canvas.Program.Main (System.String[] args) [0x00068] in <40480894c2e34a83bba19927b21c54fe>:0
Traceback (most recent call last):
eroller commented 5 years ago

This is a weird error since it points to a problem parsing the Canvas.exe command line arguments, not a problem running CanvasPartition.exe. It also only seems to get triggered upon application exit which makes me think there is some race condition going on. This could be an obscure problem with our checkpointing system or could be a problem with the mono runtime that we have never come across.

It does appear that checkpoint 4 is completed successfully so we may be able to ignore this error for now. What happens if you do not specify a stop checkpoint and let it run to the end? Do you get an output VCF file from Canvas?

stefpiatek commented 5 years ago

When I let it run to the end, it does output a CNV.vcf.gz file, but for every sample, it only contains the header and has no variants. The dataset should have 50 variants so I don't think it's just missing a few.

eroller commented 5 years ago

Somatic-Enrichment is intended for larger panels and exomes. With a small number of targets the purity/ploidy model will not be robust. In that case Canvas just outputs an empty VCF output. The same situation can arise for low coverage or poor quality WGS data for a somatic sample. If there are not enough high confidence bins and SNVs the purity/ploidy model is not reliable and so there will be no variant calls made.