public void Compute()
        {
            // Based on Tamsen's original PValue test, just extended to our Compute method
            List <int[]> SampleValues_ExpectedQScore = new List <int[]>() //coverage,var calls}
            {
                new int[] { 100, 0, 0 },
                new int[] { 100, 1, 2 },
                new int[] { 100, 5, 24 },
                new int[] { 200, 10, 43 },
                new int[] { 500, 25, 98 },
                new int[] { 5000, 250, 100 },
            };

            foreach (int[] item in SampleValues_ExpectedQScore)
            {
                var variant = new CalledVariant(AlleleCategory.Snv)
                {
                    Coordinate    = 1,
                    Reference     = "A",
                    Alternate     = "T",
                    TotalCoverage = item[0],
                    AlleleSupport = item[1],
                };

                QualityCalculator.Compute(variant, 100, 20);

                Assert.Equal(item[2], variant.Qscore);
            }
        }
Beispiel #2
0
        private void ProcessVariant(IStateManager source, BaseCalledAllele variant)
        {
            // determine metrics
            CoverageCalculator.Compute(variant, source);
            QualityCalculator.Compute(variant, _config.MaxVariantQscore, _config.EstimatedBaseCallQuality);
            StrandBiasCalculator.Compute(variant, variant.SupportByDirection, _config.EstimatedBaseCallQuality,
                                         _config.StrandBiasFilterThreshold, _config.StrandBiasModel);

            // set genotype, filter, etc
            AlleleProcessor.Process(variant, _config.GenotypeModel, _config.MinFrequency, _config.MinCoverage,
                                    _config.VariantQscoreFilterThreshold, _config.FilterSingleStrandVariants);
        }