CanvasCommon.CanvasSegment.GetQScorePredictor C# (CSharp) Метод

GetQScorePredictor() публичный Метод

public GetQScorePredictor ( QScorePredictor predictorId ) : double
predictorId QScorePredictor
Результат double
        public double GetQScorePredictor(QScorePredictor predictorId)
        {
            switch (predictorId)
            {
                case QScorePredictor.BinCount:
                    return (double)this.BinCount;

                case QScorePredictor.LogBinCount:
                    return Math.Log10(1 + this.BinCount);

                case QScorePredictor.BinMean:
                    if (this.Counts.Count == 0) return 0;
                    return this.Counts.Average();

                case QScorePredictor.BinCv:
                    if (this.Counts.Count == 0) return 0;
                    if (this.Counts.Average() == 0) return 0;
                    return CanvasCommon.Utilities.CoefficientOfVariation(this.Counts);

                case QScorePredictor.MafCount:
                    return this.VariantFrequencies.Count;

                case QScorePredictor.MafMean:
                    if (this.VariantFrequencies.Count == 0) return 0;
                    return this.VariantFrequencies.Average();

                case QScorePredictor.MafCv:
                    if (this.VariantFrequencies.Count == 0) return 0;
                    if (this.VariantFrequencies.Average() == 0) return 0;
                    return CanvasCommon.Utilities.CoefficientOfVariation(this.VariantFrequencies);

                case QScorePredictor.LogMafCv:
                    return Math.Log10(1 + GetQScorePredictor(QScorePredictor.MafCv));

                case QScorePredictor.ModelDistance:
                    return this.ModelDistance;

                case QScorePredictor.RunnerUpModelDistance:
                    return this.RunnerUpModelDistance;

                case QScorePredictor.DistanceRatio:
                    if (this.RunnerUpModelDistance == 0) return 0;
                    return this.ModelDistance / this.RunnerUpModelDistance;

                case QScorePredictor.CopyNumber:
                    return (double)this.CopyNumber;

                case QScorePredictor.MajorChromosomeCount:
                    // Force a double:
                    if (!this.MajorChromosomeCount.HasValue) return Math.Ceiling(this.CopyNumber / 2f);
                    return (double)this.MajorChromosomeCount;
            }
            return 0;
        }