diff --git a/Ilmn.Das.App.Wittyer.sln b/Ilmn.Das.App.Wittyer.sln index 9c152a8..f59912f 100644 --- a/Ilmn.Das.App.Wittyer.sln +++ b/Ilmn.Das.App.Wittyer.sln @@ -26,8 +26,44 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ReleaseNotes", "ReleaseNote docs\release-notes\v0.3.1.md = docs\release-notes\v0.3.1.md docs\release-notes\v0.3.2.md = docs\release-notes\v0.3.2.md docs\release-notes\v0.3.3.md = docs\release-notes\v0.3.3.md + docs\release-notes\v0.3.4.md = docs\release-notes\v0.3.4.md EndProjectSection EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "examples", "examples", "{3CCBABA0-BF50-4691-86B3-B2AC662A4F30}" +ProjectSection(SolutionItems) = preProject + docs\examples\README.md = docs\examples\README.md +EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SV", "SV", "{204A99D9-C74C-4D7B-B4A2-148A819B4EAE}" +ProjectSection(SolutionItems) = preProject + docs\examples\SV\config.json = docs\examples\SV\config.json + docs\examples\SV\HG002.sv.vcf.gz = docs\examples\SV\HG002.sv.vcf.gz + docs\examples\SV\README.md = docs\examples\SV\README.md +EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "CNV", "CNV", "{0405A3B5-8043-4058-A541-DF0E3CB6F63B}" +ProjectSection(SolutionItems) = preProject + docs\examples\CNV\config.json = docs\examples\CNV\config.json + docs\examples\CNV\HG002.cnv.vcf.gz = docs\examples\CNV\HG002.cnv.vcf.gz + docs\examples\CNV\README.md = docs\examples\CNV\README.md +EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "output", "output", "{8F931635-2D47-4C50-A44F-44561B11612D}" +ProjectSection(SolutionItems) = preProject + docs\examples\SV\output\Wittyer.ConfigFileUsed.json = docs\examples\SV\output\Wittyer.ConfigFileUsed.json + docs\examples\SV\output\Wittyer.HG002.Vs.HG2.vcf.gz = docs\examples\SV\output\Wittyer.HG002.Vs.HG2.vcf.gz + docs\examples\SV\output\Wittyer.HG002.Vs.HG2.vcf.gz.tbi = docs\examples\SV\output\Wittyer.HG002.Vs.HG2.vcf.gz.tbi + docs\examples\SV\output\Wittyer.Stats.json = docs\examples\SV\output\Wittyer.Stats.json +EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "output", "output", "{CA36CA82-F8E1-445B-9B1F-D08DE432C923}" +ProjectSection(SolutionItems) = preProject + docs\examples\CNV\output\Wittyer.ConfigFileUsed.json = docs\examples\CNV\output\Wittyer.ConfigFileUsed.json + docs\examples\CNV\output\Wittyer.HG002.Vs.PrecisionFDA_HG002.vcf.gz = docs\examples\CNV\output\Wittyer.HG002.Vs.PrecisionFDA_HG002.vcf.gz + docs\examples\CNV\output\Wittyer.HG002.Vs.PrecisionFDA_HG002.vcf.gz.tbi = docs\examples\CNV\output\Wittyer.HG002.Vs.PrecisionFDA_HG002.vcf.gz.tbi + docs\examples\CNV\output\Wittyer.Stats.json = docs\examples\CNV\output\Wittyer.Stats.json +EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -52,6 +88,11 @@ Global EndGlobalSection GlobalSection(NestedProjects) = preSolution {F1D00B2C-E9A7-4AAA-ACDE-72572A9A0FA6} = {C30AA211-D9AE-474B-9340-66E7636F307D} + {3CCBABA0-BF50-4691-86B3-B2AC662A4F30} = {C30AA211-D9AE-474B-9340-66E7636F307D} + {204A99D9-C74C-4D7B-B4A2-148A819B4EAE} = {3CCBABA0-BF50-4691-86B3-B2AC662A4F30} + {0405A3B5-8043-4058-A541-DF0E3CB6F63B} = {3CCBABA0-BF50-4691-86B3-B2AC662A4F30} + {8F931635-2D47-4C50-A44F-44561B11612D} = {204A99D9-C74C-4D7B-B4A2-148A819B4EAE} + {CA36CA82-F8E1-445B-9B1F-D08DE432C923} = {0405A3B5-8043-4058-A541-DF0E3CB6F63B} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {F8B9CA36-CEC4-4D1B-84CC-F8BDC6ED3947} diff --git a/docs/examples/CNV/HG002.cnv.vcf.gz b/docs/examples/CNV/HG002.cnv.vcf.gz new file mode 100755 index 0000000..7ad3cf0 Binary files /dev/null and b/docs/examples/CNV/HG002.cnv.vcf.gz differ diff --git a/docs/examples/CNV/README.md b/docs/examples/CNV/README.md new file mode 100644 index 0000000..5e72b27 --- /dev/null +++ b/docs/examples/CNV/README.md @@ -0,0 +1,20 @@ +# CNV witty.er Examples + +In this folder, you will find a dragen CNV output file ([HG002.cnv.vcf.gz](HG002.cnv.vcf.gz)) and a [config.json](config.json), which will be used as input. Example output can be found in the [output folder](output). + +1. Download the NIST truth set [VCF file](ftp://ftp-trace.ncbi.nlm.nih.gov/giab/ftp/data/AshkenazimTrio/analysis/NIST_SVs_Integration_v0.6/HG002_SVs_Tier1_v0.6.vcf.gz) and [BED file](ftp://ftp-trace.ncbi.nlm.nih.gov/giab/ftp/data/AshkenazimTrio/analysis/NIST_SVs_Integration_v0.6/HG002_SVs_Tier1_v0.6.bed) +2. Install dotnet if you don't already have it installed on your system (you can google directions on how to install based on your system). +3. Build witty.er with the `dotnet publish` command under the Wittyer project folder +4. Run the following command line: + +```bash +# DOTNET is your path to your dotnet executable +# WITTYER_DLL is the path to the wittyer dll. +$DOTNET $WITTYER_DLL \ + -t NIST_v0.6/HG002_SVs_Tier1_v0.6.vcf.gz \ + -i HG002.cnv.vcf.gz \ + -em CrossTypeAndSimpleCounting \ + --configFile config.json \ + --includeBed NIST_v0.6/HG002_SVs_Tier1_v0.6.bed \ + -o output/ +``` \ No newline at end of file diff --git a/docs/examples/CNV/config.json b/docs/examples/CNV/config.json new file mode 100755 index 0000000..07cd9db --- /dev/null +++ b/docs/examples/CNV/config.json @@ -0,0 +1,26 @@ +[ + { + "variantType": "Duplication", + "binSizes": "1000,5000,10000,20000,50000", + "bpDistance": 10000, + "percentDistance": 0.25, + "includedFilters": "PASS", + "excludedFilters": "" + }, + { + "variantType": "Deletion", + "binSizes": "1000,5000,10000,20000,50000", + "bpDistance": 10000, + "percentDistance": 0.25, + "includedFilters": "PASS", + "excludedFilters": "" + }, + { + "variantType": "CopyNumberReference", + "binSizes": "1000,5000,10000,20000,50000", + "bpDistance": 10000, + "percentDistance": 0.25, + "includedFilters": "PASS", + "excludedFilters": "" + } +] diff --git a/docs/examples/CNV/output/Wittyer.ConfigFileUsed.json b/docs/examples/CNV/output/Wittyer.ConfigFileUsed.json new file mode 100755 index 0000000..4f99db6 --- /dev/null +++ b/docs/examples/CNV/output/Wittyer.ConfigFileUsed.json @@ -0,0 +1,29 @@ +[ + { + "variantType": "Duplication", + "binSizes": "1000,5000,10000,20000,50000", + "bpDistance": 10000, + "percentDistance": 0.25, + "includedFilters": "PASS", + "excludedFilters": "", + "includeBed": "NIST_v0.6/HG002_SVs_Tier1_v0.6.bed" + }, + { + "variantType": "Deletion", + "binSizes": "1000,5000,10000,20000,50000", + "bpDistance": 10000, + "percentDistance": 0.25, + "includedFilters": "PASS", + "excludedFilters": "", + "includeBed": "NIST_v0.6/HG002_SVs_Tier1_v0.6.bed" + }, + { + "variantType": "CopyNumberReference", + "binSizes": "1000,5000,10000,20000,50000", + "bpDistance": 10000, + "percentDistance": 0.25, + "includedFilters": "PASS", + "excludedFilters": "", + "includeBed": "NIST_v0.6/HG002_SVs_Tier1_v0.6.bed" + } +] \ No newline at end of file diff --git a/docs/examples/CNV/output/Wittyer.HG002.Vs.PrecisionFDA_HG002.vcf.gz b/docs/examples/CNV/output/Wittyer.HG002.Vs.PrecisionFDA_HG002.vcf.gz new file mode 100755 index 0000000..aaffe78 Binary files /dev/null and b/docs/examples/CNV/output/Wittyer.HG002.Vs.PrecisionFDA_HG002.vcf.gz differ diff --git a/docs/examples/CNV/output/Wittyer.HG002.Vs.PrecisionFDA_HG002.vcf.gz.tbi b/docs/examples/CNV/output/Wittyer.HG002.Vs.PrecisionFDA_HG002.vcf.gz.tbi new file mode 100755 index 0000000..b8b13fd Binary files /dev/null and b/docs/examples/CNV/output/Wittyer.HG002.Vs.PrecisionFDA_HG002.vcf.gz.tbi differ diff --git a/docs/examples/CNV/output/Wittyer.Stats.json b/docs/examples/CNV/output/Wittyer.Stats.json new file mode 100755 index 0000000..bcea003 --- /dev/null +++ b/docs/examples/CNV/output/Wittyer.Stats.json @@ -0,0 +1,655 @@ +{ + "Command": "/illumina/sync/software/groups/witty.er/v0.3.4/Wittyer.dll -t NIST_v0.6/HG002_SVs_Tier1_v0.6.vcf.gz -i HG002.cnv.vcf.gz -em CrossTypeAndSimpleCounting --configFile wittyer.cnv.config.filtered.json --includeBed NIST_v0.6/HG002_SVs_Tier1_v0.6.bed -o evalOutput_cnv/", + "EventPrecision": 0.63665594855305463, + "EventRecall": 0.046871282417320963, + "EventFscore": 0.0873143875334234, + "PerSampleStats": [ + { + "QuerySampleName": "PrecisionFDA_HG002", + "TruthSampleName": "HG002", + "OverallStats": [ + { + "StatsType": "Event", + "TruthTpCount": 197, + "TruthFnCount": 4006, + "TruthTotalCount": 4203, + "Recall": 0.046871282417320963, + "QueryTpCount": 198, + "QueryFpCount": 113, + "QueryTotalCount": 311, + "Precision": 0.63665594855305463, + "Fscore": 0.0873143875334234 + }, + { + "StatsType": "Base", + "TruthTpCount": 1379071, + "TruthFnCount": 1760399, + "TruthTotalCount": 3139470, + "Recall": 0.43926873007227335, + "QueryTpCount": 1369399, + "QueryFpCount": 2868258, + "QueryTotalCount": 4237657, + "Precision": 0.32315003314331481, + "Fscore": 0.37236676621909953 + } + ], + "DetailedStats": [ + { + "VariantType": "CopyNumberReference", + "OverallStats": [ + { + "StatsType": "Event", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 30, + "QueryTotalCount": 30, + "Precision": 0.0, + "Fscore": "NaN" + }, + { + "StatsType": "Base", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 2547564, + "QueryTotalCount": 2547564, + "Precision": 0.0, + "Fscore": "NaN" + } + ], + "PerBinStats": [ + { + "Bin": "[1, 1000)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 0, + "QueryTotalCount": 0, + "Precision": "NaN", + "Fscore": "NaN" + }, + { + "StatsType": "Base", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 0, + "QueryTotalCount": 0, + "Precision": "NaN", + "Fscore": "NaN" + } + ] + }, + { + "Bin": "[1000, 5000)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 1, + "QueryTotalCount": 1, + "Precision": 0.0, + "Fscore": "NaN" + }, + { + "StatsType": "Base", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 4295, + "QueryTotalCount": 4295, + "Precision": 0.0, + "Fscore": "NaN" + } + ] + }, + { + "Bin": "[5000, 10000)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 2, + "QueryTotalCount": 2, + "Precision": 0.0, + "Fscore": "NaN" + }, + { + "StatsType": "Base", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 15116, + "QueryTotalCount": 15116, + "Precision": 0.0, + "Fscore": "NaN" + } + ] + }, + { + "Bin": "[10000, 20000)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 11, + "QueryTotalCount": 11, + "Precision": 0.0, + "Fscore": "NaN" + }, + { + "StatsType": "Base", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 153775, + "QueryTotalCount": 153775, + "Precision": 0.0, + "Fscore": "NaN" + } + ] + }, + { + "Bin": "[20000, 50000)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 7, + "QueryTotalCount": 7, + "Precision": 0.0, + "Fscore": "NaN" + }, + { + "StatsType": "Base", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 228905, + "QueryTotalCount": 228905, + "Precision": 0.0, + "Fscore": "NaN" + } + ] + }, + { + "Bin": "50000+", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 9, + "QueryTotalCount": 9, + "Precision": 0.0, + "Fscore": "NaN" + }, + { + "StatsType": "Base", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 2145473, + "QueryTotalCount": 2145473, + "Precision": 0.0, + "Fscore": "NaN" + } + ] + } + ] + }, + { + "VariantType": "Deletion", + "OverallStats": [ + { + "StatsType": "Event", + "TruthTpCount": 197, + "TruthFnCount": 4006, + "TruthTotalCount": 4203, + "Recall": 0.046871282417320963, + "QueryTpCount": 198, + "QueryFpCount": 77, + "QueryTotalCount": 275, + "Precision": 0.72, + "Fscore": 0.088013005870015759 + }, + { + "StatsType": "Base", + "TruthTpCount": 1379071, + "TruthFnCount": 1760399, + "TruthTotalCount": 3139470, + "Recall": 0.43926873007227335, + "QueryTpCount": 1369399, + "QueryFpCount": 271671, + "QueryTotalCount": 1641070, + "Precision": 0.8344549592643824, + "Fscore": 0.57555649365282968 + } + ], + "PerBinStats": [ + { + "Bin": "[1, 1000)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 4, + "TruthFnCount": 3666, + "TruthTotalCount": 3670, + "Recall": 0.0010899182561307902, + "QueryTpCount": 0, + "QueryFpCount": 0, + "QueryTotalCount": 0, + "Precision": "NaN", + "Fscore": "NaN" + }, + { + "StatsType": "Base", + "TruthTpCount": 10407, + "TruthFnCount": 752149, + "TruthTotalCount": 762556, + "Recall": 0.013647522280330887, + "QueryTpCount": 0, + "QueryFpCount": 0, + "QueryTotalCount": 0, + "Precision": "NaN", + "Fscore": "NaN" + } + ] + }, + { + "Bin": "[1000, 5000)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 118, + "TruthFnCount": 277, + "TruthTotalCount": 395, + "Recall": 0.29873417721518986, + "QueryTpCount": 109, + "QueryFpCount": 69, + "QueryTotalCount": 178, + "Precision": 0.61235955056179781, + "Fscore": 0.40156730514057348 + }, + { + "StatsType": "Base", + "TruthTpCount": 317808, + "TruthFnCount": 563469, + "TruthTotalCount": 881277, + "Recall": 0.36062214264073611, + "QueryTpCount": 284071, + "QueryFpCount": 152319, + "QueryTotalCount": 436390, + "Precision": 0.650956713031921, + "Fscore": 0.46412477545083464 + } + ] + }, + { + "Bin": "[5000, 10000)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 45, + "TruthFnCount": 60, + "TruthTotalCount": 105, + "Recall": 0.42857142857142855, + "QueryTpCount": 60, + "QueryFpCount": 7, + "QueryTotalCount": 67, + "Precision": 0.89552238805970152, + "Fscore": 0.57971014492753625 + }, + { + "StatsType": "Base", + "TruthTpCount": 284511, + "TruthFnCount": 378912, + "TruthTotalCount": 663423, + "Recall": 0.42885308468352773, + "QueryTpCount": 361223, + "QueryFpCount": 87499, + "QueryTotalCount": 448722, + "Precision": 0.80500398910684123, + "Fscore": 0.55959227570902237 + } + ] + }, + { + "Bin": "[10000, 20000)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 17, + "TruthFnCount": 1, + "TruthTotalCount": 18, + "Recall": 0.94444444444444442, + "QueryTpCount": 20, + "QueryFpCount": 1, + "QueryTotalCount": 21, + "Precision": 0.95238095238095233, + "Fscore": 0.94839609483960952 + }, + { + "StatsType": "Base", + "TruthTpCount": 205605, + "TruthFnCount": 20376, + "TruthTotalCount": 225981, + "Recall": 0.90983312756382173, + "QueryTpCount": 259967, + "QueryFpCount": 26070, + "QueryTotalCount": 286037, + "Precision": 0.90885794495117767, + "Fscore": 0.90934527481091809 + } + ] + }, + { + "Bin": "[20000, 50000)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 9, + "TruthFnCount": 2, + "TruthTotalCount": 11, + "Recall": 0.81818181818181823, + "QueryTpCount": 5, + "QueryFpCount": 0, + "QueryTotalCount": 5, + "Precision": 1.0, + "Fscore": 0.9 + }, + { + "StatsType": "Base", + "TruthTpCount": 258040, + "TruthFnCount": 44453, + "TruthTotalCount": 302493, + "Recall": 0.85304453326192675, + "QueryTpCount": 161438, + "QueryFpCount": 2861, + "QueryTotalCount": 164299, + "Precision": 0.98258662560332077, + "Fscore": 0.91324463019613344 + } + ] + }, + { + "Bin": "50000+", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 4, + "TruthFnCount": 0, + "TruthTotalCount": 4, + "Recall": 1.0, + "QueryTpCount": 4, + "QueryFpCount": 0, + "QueryTotalCount": 4, + "Precision": 1.0, + "Fscore": 1.0 + }, + { + "StatsType": "Base", + "TruthTpCount": 302700, + "TruthFnCount": 1040, + "TruthTotalCount": 303740, + "Recall": 0.99657601896358727, + "QueryTpCount": 302700, + "QueryFpCount": 2922, + "QueryTotalCount": 305622, + "Precision": 0.99043916995504255, + "Fscore": 0.9934981177034341 + } + ] + } + ] + }, + { + "VariantType": "Duplication", + "OverallStats": [ + { + "StatsType": "Event", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 6, + "QueryTotalCount": 6, + "Precision": 0.0, + "Fscore": "NaN" + }, + { + "StatsType": "Base", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 49023, + "QueryTotalCount": 49023, + "Precision": 0.0, + "Fscore": "NaN" + } + ], + "PerBinStats": [ + { + "Bin": "[1, 1000)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 0, + "QueryTotalCount": 0, + "Precision": "NaN", + "Fscore": "NaN" + }, + { + "StatsType": "Base", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 0, + "QueryTotalCount": 0, + "Precision": "NaN", + "Fscore": "NaN" + } + ] + }, + { + "Bin": "[1000, 5000)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 1, + "QueryTotalCount": 1, + "Precision": 0.0, + "Fscore": "NaN" + }, + { + "StatsType": "Base", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 2292, + "QueryTotalCount": 2292, + "Precision": 0.0, + "Fscore": "NaN" + } + ] + }, + { + "Bin": "[5000, 10000)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 3, + "QueryTotalCount": 3, + "Precision": 0.0, + "Fscore": "NaN" + }, + { + "StatsType": "Base", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 24521, + "QueryTotalCount": 24521, + "Precision": 0.0, + "Fscore": "NaN" + } + ] + }, + { + "Bin": "[10000, 20000)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 2, + "QueryTotalCount": 2, + "Precision": 0.0, + "Fscore": "NaN" + }, + { + "StatsType": "Base", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 22210, + "QueryTotalCount": 22210, + "Precision": 0.0, + "Fscore": "NaN" + } + ] + }, + { + "Bin": "[20000, 50000)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 0, + "QueryTotalCount": 0, + "Precision": "NaN", + "Fscore": "NaN" + }, + { + "StatsType": "Base", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 0, + "QueryTotalCount": 0, + "Precision": "NaN", + "Fscore": "NaN" + } + ] + }, + { + "Bin": "50000+", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 0, + "QueryTotalCount": 0, + "Precision": "NaN", + "Fscore": "NaN" + }, + { + "StatsType": "Base", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 0, + "QueryTotalCount": 0, + "Precision": "NaN", + "Fscore": "NaN" + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/docs/examples/README.md b/docs/examples/README.md new file mode 100644 index 0000000..ac1171b --- /dev/null +++ b/docs/examples/README.md @@ -0,0 +1,8 @@ +# witty.er Examples + +These folders contain example output files from dragen evaluated against the NIST HG002 truth sets. + +You can follow the instructions in the following `README`s to reproduce the examples. + +* [CNV Example information](CNV/README.md) +* [SV Example information](SV/README.md) diff --git a/docs/examples/SV/HG002.sv.vcf.gz b/docs/examples/SV/HG002.sv.vcf.gz new file mode 100755 index 0000000..da9183c Binary files /dev/null and b/docs/examples/SV/HG002.sv.vcf.gz differ diff --git a/docs/examples/SV/README.md b/docs/examples/SV/README.md new file mode 100644 index 0000000..17e5c47 --- /dev/null +++ b/docs/examples/SV/README.md @@ -0,0 +1,20 @@ +# SV witty.er Examples + +In this folder, you will find a dragen SV output file ([HG002.sv.vcf.gz](HG002.sv.vcf.gz)) and a [config.json](config.json), which will be used as input. Example output can be found in the [output folder](output). + +1. Download the NIST truth set [VCF file](ftp://ftp-trace.ncbi.nlm.nih.gov/giab/ftp/data/AshkenazimTrio/analysis/NIST_SVs_Integration_v0.6/HG002_SVs_Tier1_v0.6.vcf.gz) and [BED file](ftp://ftp-trace.ncbi.nlm.nih.gov/giab/ftp/data/AshkenazimTrio/analysis/NIST_SVs_Integration_v0.6/HG002_SVs_Tier1_v0.6.bed) +2. Install dotnet if you don't already have it installed on your system (you can google directions on how to install based on your system). +3. Build witty.er with the `dotnet publish` command under the Wittyer project folder +4. Run the following command line: + +```bash +# DOTNET is your path to your dotnet executable +# WITTYER_DLL is the path to the wittyer dll. +$DOTNET $WITTYER_DLL \ + -t NIST_v0.6/HG002_SVs_Tier1_v0.6.vcf.gz \ + -i HG002.sv.vcf.gz \ + -em SimpleCounting \ + --configFile config.json \ + --includeBed NIST_v0.6/HG002_SVs_Tier1_v0.6.bed \ + -o output/ +``` \ No newline at end of file diff --git a/docs/examples/SV/config.json b/docs/examples/SV/config.json new file mode 100755 index 0000000..daee02d --- /dev/null +++ b/docs/examples/SV/config.json @@ -0,0 +1,47 @@ +[ + { + "variantType": "Insertion", + "binSizes": "50,100,200,500,1000", + "bpDistance": 250, + "includedFilters": "PASS", + "excludedFilters": "" + }, + { + "variantType": "Deletion", + "binSizes": "50,100,200,500,1000,10000", + "bpDistance": 2500, + "percentDistance": 0.25, + "includedFilters": "PASS", + "excludedFilters": "" + }, + { + "variantType": "Duplication", + "binSizes": "50,1000,10000", + "bpDistance": 2500, + "percentDistance": 0.25, + "includedFilters": "PASS", + "excludedFilters": "" + }, + { + "variantType": "Inversion", + "binSizes": "50,1000,10000", + "bpDistance": 2500, + "percentDistance": 0.25, + "includedFilters": "PASS", + "excludedFilters": "" + }, + { + "variantType": "IntraChromosomeBreakend", + "binSizes": "50,1000,10000", + "bpDistance": 2500, + "percentDistance": 0.25, + "includedFilters": "PASS", + "excludedFilters": "" + }, + { + "variantType": "TranslocationBreakend", + "bpDistance": 500, + "includedFilters": "PASS", + "excludedFilters": "" + } +] diff --git a/docs/examples/SV/output/Wittyer.ConfigFileUsed.json b/docs/examples/SV/output/Wittyer.ConfigFileUsed.json new file mode 100755 index 0000000..1bc25df --- /dev/null +++ b/docs/examples/SV/output/Wittyer.ConfigFileUsed.json @@ -0,0 +1,53 @@ +[ + { + "variantType": "Inversion", + "binSizes": "50,1000,10000", + "bpDistance": 2500, + "percentDistance": 0.25, + "includedFilters": "PASS", + "excludedFilters": "", + "includeBed": "NIST_v0.6/HG002_SVs_Tier1_v0.6.bed" + }, + { + "variantType": "Insertion", + "binSizes": "50,100,200,500,1000", + "bpDistance": 250, + "includedFilters": "PASS", + "excludedFilters": "", + "includeBed": "NIST_v0.6/HG002_SVs_Tier1_v0.6.bed" + }, + { + "variantType": "TranslocationBreakend", + "bpDistance": 500, + "includedFilters": "PASS", + "excludedFilters": "", + "includeBed": "NIST_v0.6/HG002_SVs_Tier1_v0.6.bed" + }, + { + "variantType": "IntraChromosomeBreakend", + "binSizes": "50,1000,10000", + "bpDistance": 2500, + "percentDistance": 0.25, + "includedFilters": "PASS", + "excludedFilters": "", + "includeBed": "NIST_v0.6/HG002_SVs_Tier1_v0.6.bed" + }, + { + "variantType": "Duplication", + "binSizes": "50,1000,10000", + "bpDistance": 2500, + "percentDistance": 0.25, + "includedFilters": "PASS", + "excludedFilters": "", + "includeBed": "NIST_v0.6/HG002_SVs_Tier1_v0.6.bed" + }, + { + "variantType": "Deletion", + "binSizes": "50,100,200,500,1000,10000", + "bpDistance": 2500, + "percentDistance": 0.25, + "includedFilters": "PASS", + "excludedFilters": "", + "includeBed": "NIST_v0.6/HG002_SVs_Tier1_v0.6.bed" + } +] \ No newline at end of file diff --git a/docs/examples/SV/output/Wittyer.HG002.Vs.HG2.vcf.gz b/docs/examples/SV/output/Wittyer.HG002.Vs.HG2.vcf.gz new file mode 100755 index 0000000..c662a0b Binary files /dev/null and b/docs/examples/SV/output/Wittyer.HG002.Vs.HG2.vcf.gz differ diff --git a/docs/examples/SV/output/Wittyer.HG002.Vs.HG2.vcf.gz.tbi b/docs/examples/SV/output/Wittyer.HG002.Vs.HG2.vcf.gz.tbi new file mode 100755 index 0000000..f5053c7 Binary files /dev/null and b/docs/examples/SV/output/Wittyer.HG002.Vs.HG2.vcf.gz.tbi differ diff --git a/docs/examples/SV/output/Wittyer.Stats.json b/docs/examples/SV/output/Wittyer.Stats.json new file mode 100755 index 0000000..84dbc38 --- /dev/null +++ b/docs/examples/SV/output/Wittyer.Stats.json @@ -0,0 +1,752 @@ +{ + "Command": "/illumina/sync/software/groups/witty.er/v0.3.4/Wittyer.dll -t NIST_v0.6/HG002_SVs_Tier1_v0.6.vcf.gz -i HG002.sv.vcf.gz -em SimpleCounting --configFile wittyer.sv.config.filtered.json --includeBed NIST_v0.6/HG002_SVs_Tier1_v0.6.bed -o evalOutput_sv/", + "EventPrecision": 0.881559220389805, + "EventRecall": 0.65377837669741889, + "EventFscore": 0.7507721522126527, + "PerSampleStats": [ + { + "QuerySampleName": "HG2", + "TruthSampleName": "HG002", + "OverallStats": [ + { + "StatsType": "Event", + "TruthTpCount": 6307, + "TruthFnCount": 3340, + "TruthTotalCount": 9647, + "Recall": 0.65377837669741889, + "QueryTpCount": 6468, + "QueryFpCount": 869, + "QueryTotalCount": 7337, + "Precision": 0.881559220389805, + "Fscore": 0.7507721522126527 + }, + { + "StatsType": "Base", + "TruthTpCount": 2746133, + "TruthFnCount": 393337, + "TruthTotalCount": 3139470, + "Recall": 0.874712292202187, + "QueryTpCount": 2747006, + "QueryFpCount": 142813, + "QueryTotalCount": 2889819, + "Precision": 0.95058064190179381, + "Fscore": 0.91106973205822694 + } + ], + "DetailedStats": [ + { + "VariantType": "Deletion", + "OverallStats": [ + { + "StatsType": "Event", + "TruthTpCount": 3008, + "TruthFnCount": 1195, + "TruthTotalCount": 4203, + "Recall": 0.715679276707114, + "QueryTpCount": 3011, + "QueryFpCount": 205, + "QueryTotalCount": 3216, + "Precision": 0.93625621890547261, + "Fscore": 0.81124132914200531 + }, + { + "StatsType": "Base", + "TruthTpCount": 2746133, + "TruthFnCount": 393337, + "TruthTotalCount": 3139470, + "Recall": 0.874712292202187, + "QueryTpCount": 2747006, + "QueryFpCount": 96513, + "QueryTotalCount": 2843519, + "Precision": 0.9660586055517828, + "Fscore": 0.91811896667304971 + } + ], + "PerBinStats": [ + { + "Bin": "[1, 50)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 0, + "QueryTotalCount": 0, + "Precision": "NaN", + "Fscore": "NaN" + }, + { + "StatsType": "Base", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 0, + "QueryTotalCount": 0, + "Precision": "NaN", + "Fscore": "NaN" + } + ] + }, + { + "Bin": "[50, 100)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 879, + "TruthFnCount": 574, + "TruthTotalCount": 1453, + "Recall": 0.60495526496902963, + "QueryTpCount": 871, + "QueryFpCount": 102, + "QueryTotalCount": 973, + "Precision": 0.895169578622816, + "Fscore": 0.72198997562275147 + }, + { + "StatsType": "Base", + "TruthTpCount": 58681, + "TruthFnCount": 39471, + "TruthTotalCount": 98152, + "Recall": 0.59785842366941067, + "QueryTpCount": 57927, + "QueryFpCount": 8124, + "QueryTotalCount": 66051, + "Precision": 0.87700413316982329, + "Fscore": 0.71101446867312657 + } + ] + }, + { + "Bin": "[100, 200)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 353, + "TruthFnCount": 339, + "TruthTotalCount": 692, + "Recall": 0.51011560693641622, + "QueryTpCount": 362, + "QueryFpCount": 62, + "QueryTotalCount": 424, + "Precision": 0.85377358490566035, + "Fscore": 0.63864899444244538 + }, + { + "StatsType": "Base", + "TruthTpCount": 48418, + "TruthFnCount": 47992, + "TruthTotalCount": 96410, + "Recall": 0.50220931438647443, + "QueryTpCount": 49172, + "QueryFpCount": 9229, + "QueryTotalCount": 58401, + "Precision": 0.84197188404308143, + "Fscore": 0.62915047928357715 + } + ] + }, + { + "Bin": "[200, 500)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 1129, + "TruthFnCount": 195, + "TruthTotalCount": 1324, + "Recall": 0.85271903323262843, + "QueryTpCount": 1129, + "QueryFpCount": 28, + "QueryTotalCount": 1157, + "Precision": 0.975799481417459, + "Fscore": 0.9101168883514712 + }, + { + "StatsType": "Base", + "TruthTpCount": 359990, + "TruthFnCount": 59830, + "TruthTotalCount": 419820, + "Recall": 0.8574865418512696, + "QueryTpCount": 359349, + "QueryFpCount": 10305, + "QueryTotalCount": 369654, + "Precision": 0.97212257949325587, + "Fscore": 0.91121324136450865 + } + ] + }, + { + "Bin": "[500, 1000)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 157, + "TruthFnCount": 44, + "TruthTotalCount": 201, + "Recall": 0.78109452736318408, + "QueryTpCount": 157, + "QueryFpCount": 6, + "QueryTotalCount": 163, + "Precision": 0.96319018404907975, + "Fscore": 0.86263736263736268 + }, + { + "StatsType": "Base", + "TruthTpCount": 119109, + "TruthFnCount": 29065, + "TruthTotalCount": 148174, + "Recall": 0.80384547896392078, + "QueryTpCount": 117571, + "QueryFpCount": 5437, + "QueryTotalCount": 123008, + "Precision": 0.95579962278876174, + "Fscore": 0.87326155121722193 + } + ] + }, + { + "Bin": "[1000, 10000)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 460, + "TruthFnCount": 40, + "TruthTotalCount": 500, + "Recall": 0.92, + "QueryTpCount": 462, + "QueryFpCount": 6, + "QueryTotalCount": 468, + "Precision": 0.98717948717948723, + "Fscore": 0.95240656090346887 + }, + { + "StatsType": "Base", + "TruthTpCount": 1429578, + "TruthFnCount": 115122, + "TruthTotalCount": 1544700, + "Recall": 0.92547290736065257, + "QueryTpCount": 1432630, + "QueryFpCount": 22626, + "QueryTotalCount": 1455256, + "Precision": 0.98445222009048583, + "Fscore": 0.954051910402021 + } + ] + }, + { + "Bin": "10000+", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 30, + "TruthFnCount": 3, + "TruthTotalCount": 33, + "Recall": 0.90909090909090906, + "QueryTpCount": 30, + "QueryFpCount": 1, + "QueryTotalCount": 31, + "Precision": 0.967741935483871, + "Fscore": 0.93749999999999989 + }, + { + "StatsType": "Base", + "TruthTpCount": 730357, + "TruthFnCount": 101857, + "TruthTotalCount": 832214, + "Recall": 0.877607201993718, + "QueryTpCount": 730357, + "QueryFpCount": 40792, + "QueryTotalCount": 771149, + "Precision": 0.94710231096714126, + "Fscore": 0.911031375926724 + } + ] + } + ] + }, + { + "VariantType": "Duplication", + "OverallStats": [ + { + "StatsType": "Event", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 9, + "QueryTotalCount": 9, + "Precision": 0.0, + "Fscore": "NaN" + }, + { + "StatsType": "Base", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 46300, + "QueryTotalCount": 46300, + "Precision": 0.0, + "Fscore": "NaN" + } + ], + "PerBinStats": [ + { + "Bin": "[1, 50)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 0, + "QueryTotalCount": 0, + "Precision": "NaN", + "Fscore": "NaN" + }, + { + "StatsType": "Base", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 0, + "QueryTotalCount": 0, + "Precision": "NaN", + "Fscore": "NaN" + } + ] + }, + { + "Bin": "[50, 1000)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 0, + "QueryTotalCount": 0, + "Precision": "NaN", + "Fscore": "NaN" + }, + { + "StatsType": "Base", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 0, + "QueryTotalCount": 0, + "Precision": "NaN", + "Fscore": "NaN" + } + ] + }, + { + "Bin": "[1000, 10000)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 7, + "QueryTotalCount": 7, + "Precision": 0.0, + "Fscore": "NaN" + }, + { + "StatsType": "Base", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 23747, + "QueryTotalCount": 23747, + "Precision": 0.0, + "Fscore": "NaN" + } + ] + }, + { + "Bin": "10000+", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 2, + "QueryTotalCount": 2, + "Precision": 0.0, + "Fscore": "NaN" + }, + { + "StatsType": "Base", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 22553, + "QueryTotalCount": 22553, + "Precision": 0.0, + "Fscore": "NaN" + } + ] + } + ] + }, + { + "VariantType": "Insertion", + "OverallStats": [ + { + "StatsType": "Event", + "TruthTpCount": 3299, + "TruthFnCount": 2145, + "TruthTotalCount": 5444, + "Recall": 0.60598824393828066, + "QueryTpCount": 3457, + "QueryFpCount": 184, + "QueryTotalCount": 3641, + "Precision": 0.94946443284811866, + "Fscore": 0.73980300774203278 + } + ], + "PerBinStats": [ + { + "Bin": "[1, 50)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 0, + "QueryTotalCount": 0, + "Precision": "NaN", + "Fscore": "NaN" + } + ] + }, + { + "Bin": "[50, 100)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 907, + "TruthFnCount": 590, + "TruthTotalCount": 1497, + "Recall": 0.605878423513694, + "QueryTpCount": 956, + "QueryFpCount": 23, + "QueryTotalCount": 979, + "Precision": 0.97650663942798777, + "Fscore": 0.7477880284681242 + } + ] + }, + { + "Bin": "[100, 200)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 489, + "TruthFnCount": 454, + "TruthTotalCount": 943, + "Recall": 0.51855779427359494, + "QueryTpCount": 445, + "QueryFpCount": 3, + "QueryTotalCount": 448, + "Precision": 0.9933035714285714, + "Fscore": 0.6813922502806451 + } + ] + }, + { + "Bin": "[200, 500)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 1282, + "TruthFnCount": 483, + "TruthTotalCount": 1765, + "Recall": 0.72634560906515577, + "QueryTpCount": 398, + "QueryFpCount": 0, + "QueryTotalCount": 398, + "Precision": 1.0, + "Fscore": 0.84148342632097139 + } + ] + }, + { + "Bin": "[500, 1000)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 236, + "TruthFnCount": 249, + "TruthTotalCount": 485, + "Recall": 0.48659793814432989, + "QueryTpCount": 69, + "QueryFpCount": 2, + "QueryTotalCount": 71, + "Precision": 0.971830985915493, + "Fscore": 0.64849365803150072 + } + ] + }, + { + "Bin": "1000+", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 385, + "TruthFnCount": 369, + "TruthTotalCount": 754, + "Recall": 0.51061007957559679, + "QueryTpCount": 1589, + "QueryFpCount": 156, + "QueryTotalCount": 1745, + "Precision": 0.91060171919770772, + "Fscore": 0.65431826094117906 + } + ] + } + ] + }, + { + "VariantType": "IntraChromosomeBreakend", + "OverallStats": [ + { + "StatsType": "Event", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 259, + "QueryTotalCount": 259, + "Precision": 0.0, + "Fscore": "NaN" + } + ], + "PerBinStats": [ + { + "Bin": "[1, 50)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 0, + "QueryTotalCount": 0, + "Precision": "NaN", + "Fscore": "NaN" + } + ] + }, + { + "Bin": "[50, 1000)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 92, + "QueryTotalCount": 92, + "Precision": 0.0, + "Fscore": "NaN" + } + ] + }, + { + "Bin": "[1000, 10000)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 56, + "QueryTotalCount": 56, + "Precision": 0.0, + "Fscore": "NaN" + } + ] + }, + { + "Bin": "10000+", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 111, + "QueryTotalCount": 111, + "Precision": 0.0, + "Fscore": "NaN" + } + ] + } + ] + }, + { + "VariantType": "Inversion", + "OverallStats": [ + { + "StatsType": "Event", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 0, + "QueryTotalCount": 0, + "Precision": "NaN", + "Fscore": "NaN" + } + ], + "PerBinStats": [ + { + "Bin": "[1, 50)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 0, + "QueryTotalCount": 0, + "Precision": "NaN", + "Fscore": "NaN" + } + ] + }, + { + "Bin": "[50, 1000)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 0, + "QueryTotalCount": 0, + "Precision": "NaN", + "Fscore": "NaN" + } + ] + }, + { + "Bin": "[1000, 10000)", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 0, + "QueryTotalCount": 0, + "Precision": "NaN", + "Fscore": "NaN" + } + ] + }, + { + "Bin": "10000+", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 0, + "QueryTotalCount": 0, + "Precision": "NaN", + "Fscore": "NaN" + } + ] + } + ] + }, + { + "VariantType": "TranslocationBreakend", + "OverallStats": [ + { + "StatsType": "Event", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 212, + "QueryTotalCount": 212, + "Precision": 0.0, + "Fscore": "NaN" + } + ], + "PerBinStats": [ + { + "Bin": "NA", + "Stats": [ + { + "StatsType": "Event", + "TruthTpCount": 0, + "TruthFnCount": 0, + "TruthTotalCount": 0, + "Recall": "NaN", + "QueryTpCount": 0, + "QueryFpCount": 212, + "QueryTotalCount": 212, + "Precision": 0.0, + "Fscore": "NaN" + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/docs/release-notes/README.md b/docs/release-notes/README.md index ae153da..f26d7b7 100644 --- a/docs/release-notes/README.md +++ b/docs/release-notes/README.md @@ -10,4 +10,5 @@ v0.2.0 | 12/12/2018 | [v0.2.0](v0.2.0.md) v0.3.0 | 02/15/2019 | [v0.3.0](v0.3.0.md) v0.3.1 | 04/02/2019 | [v0.3.1](v0.3.1.md) v0.3.2 | 06/04/2019 | [v0.3.2](v0.3.2.md) -v0.3.3 | TBA | [v0.3.3](v0.3.3.md) +v0.3.3 | 01/31/2020 | [v0.3.3](v0.3.3.md) +v0.3.4 | TBA | [v0.3.4](v0.3.4.md) diff --git a/docs/release-notes/v0.3.4.md b/docs/release-notes/v0.3.4.md new file mode 100644 index 0000000..e69de29