コード例 #1
0
        public void RemoveConflictSpectrum(List <IIdentifiedSpectrum> conflicted)
        {
            if (conflicted.Count > 0)
            {
                IFalseDiscoveryRateCalculator calc = Options.Parent.FalseDiscoveryRate.GetFalseDiscoveryRateCalculator();

                var map = OptimalResults.ToDictionary(m => m.Condition);
                var bin = Options.Parent.Classification.BuildSpectrumBin(conflicted);
                foreach (var oi in bin)
                {
                    var oldOi = map[oi.Condition];
                    foreach (var s in oi.Spectra)
                    {
                        if (s.FromDecoy)
                        {
                            oldOi.Result.PeptideCountFromDecoyDB--;
                        }
                        else
                        {
                            oldOi.Result.PeptideCountFromTargetDB--;
                        }
                        oldOi.Spectra.Remove(s);
                    }

                    oldOi.Result.FalseDiscoveryRate = calc.Calculate(oldOi.Result.PeptideCountFromDecoyDB, oldOi.Result.PeptideCountFromTargetDB);
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// 获取筛选后的谱图列表。
        /// </summary>
        /// <returns></returns>
        public List <IIdentifiedSpectrum> GetOptimalSpectra()
        {
            List <IIdentifiedSpectrum> result = new List <IIdentifiedSpectrum>();

            OptimalResults.ForEach(m => result.AddRange(m.Spectra));

            return(result);
        }
コード例 #3
0
        public void CalculateToleranceScore()
        {
            var scoreFunc = this.Options.ScoreFunction;

            OptimalResults.ForEach(m => m.CalculateToleranceScore(scoreFunc));
        }
コード例 #4
0
 public void KeepOptimalResultInSetOnly(HashSet <IIdentifiedSpectrum> spectra)
 {
     OptimalResults.ForEach(m => m.KeepOptimalResultInSetOnly(spectra));
     CalculateToleranceScore();
 }