Пример #1
0
        public CalculatedPeaks AutoSizePeak(TracerFormula tracerFormula, AdjustPeaksMode adjustPeaksMode)
        {
            if (tracerFormula.Equals(BasePeakKey))
            {
                return(this);
            }
            var result = new CalculatedPeaks(PeptideFileAnalysis)
            {
                AutoFindPeak = false,
            };
            var oldBasePeak = _peaks[BasePeakKey];

            result.MakeBasePeak(BasePeakKey, oldBasePeak.StartTime, oldBasePeak.EndTime);
            foreach (var entry in _peaks)
            {
                if (entry.Key.Equals(BasePeakKey))
                {
                    continue;
                }
                Peak?newPeak = null;
                if (entry.Key.Equals(tracerFormula))
                {
                    double width = oldBasePeak.EndTime - oldBasePeak.StartTime;
                    if (adjustPeaksMode == AdjustPeaksMode.Full)
                    {
                        newPeak = result.FindMatchingPeak(tracerFormula);
                    }
                    else if (adjustPeaksMode == AdjustPeaksMode.Overlapping)
                    {
                        newPeak = result.FindMatchingPeak(tracerFormula, entry.Value.StartTime - width, entry.Value.EndTime + width);
                    }
                    else if (adjustPeaksMode == AdjustPeaksMode.Narrow)
                    {
                        newPeak = result.FindMatchingPeak(tracerFormula,
                                                          Math.Min(entry.Value.StartTime, entry.Value.EndTime - width),
                                                          Math.Max(entry.Value.EndTime, entry.Value.StartTime + width));
                    }
                }
                if (newPeak == null)
                {
                    result.MakeSecondaryPeak(entry.Key, entry.Value.StartTime, entry.Value.EndTime);
                }
            }
            result.FinishCalculation();
            return(result);
        }
Пример #2
0
 public CalculatedPeaks AutoSizePeak(TracerFormula tracerFormula, AdjustPeaksMode adjustPeaksMode)
 {
     if (tracerFormula.Equals(BasePeakKey))
     {
         return this;
     }
     var result = new CalculatedPeaks(PeptideFileAnalysis)
                      {
                          AutoFindPeak = false,
                      };
     var oldBasePeak = _peaks[BasePeakKey];
     result.MakeBasePeak(BasePeakKey, oldBasePeak.StartTime, oldBasePeak.EndTime);
     foreach (var entry in _peaks)
     {
         if (entry.Key.Equals(BasePeakKey))
         {
             continue;
         }
         Peak? newPeak = null;
         if (entry.Key.Equals(tracerFormula))
         {
             double width = oldBasePeak.EndTime - oldBasePeak.StartTime;
             if (adjustPeaksMode == AdjustPeaksMode.Full)
             {
                 newPeak = result.FindMatchingPeak(tracerFormula);
             }
             else if (adjustPeaksMode == AdjustPeaksMode.Overlapping)
             {
                 newPeak = result.FindMatchingPeak(tracerFormula, entry.Value.StartTime - width, entry.Value.EndTime + width);
             }
             else if (adjustPeaksMode == AdjustPeaksMode.Narrow)
             {
                 newPeak = result.FindMatchingPeak(tracerFormula,
                                                   Math.Min(entry.Value.StartTime, entry.Value.EndTime - width),
                                                   Math.Max(entry.Value.EndTime, entry.Value.StartTime + width));
             }
         }
         if (newPeak == null)
         {
             result.MakeSecondaryPeak(entry.Key, entry.Value.StartTime, entry.Value.EndTime);
         }
     }
     result.FinishCalculation();
     return result;
 }