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.BinCountAmpDistance: return(this.CopyNumber >= 15 ? Math.Log10(1 + this.BinCount) : 0.0); 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(Utilities.CoefficientOfVariation(this.Counts)); case QScorePredictor.MafCount: return(Alleles.Frequencies.Count); case QScorePredictor.MafMean: if (Alleles.Frequencies.Count == 0) { return(0); } return(Alleles.Frequencies.Average()); case QScorePredictor.MafCv: if (Alleles.Frequencies.Count == 0) { return(0); } if (Alleles.Frequencies.Average() == 0) { return(0); } return(Utilities.CoefficientOfVariation(Alleles.Frequencies)); 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); }
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.BinCountAmpDistance: return(this.CopyNumber >= 15 ? Math.Log10(1 + this.BinCount) : 0.0); 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(Utilities.CoefficientOfVariation(this.Counts)); case QScorePredictor.MafCount: return(Balleles.Frequencies.Count); case QScorePredictor.MafMean: if (Balleles.Frequencies.Count == 0) { return(0); } return(Balleles.Frequencies.Average()); case QScorePredictor.MafCv: if (Balleles.Frequencies.Count == 0) { return(0); } if (Balleles.Frequencies.Average() == 0) { return(0); } return(Utilities.CoefficientOfVariation(Balleles.Frequencies)); case QScorePredictor.LogMafCv: return(Math.Log10(1 + GetQScorePredictor(QScorePredictor.MafCv))); case QScorePredictor.ModelDistance: // HACK: high copy number needs some help: higher variance and general lack of interest in exact copy number return(this.ModelDistance / Math.Max(1.0, this.CopyNumber - 4.0)); 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); }
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; }