Пример #1
0
        private static FileRetentionTimeAlignments CalculateFileRetentionTimeAlignments(
            string dataFileName, ResultNameMap <IDictionary <Target, double> > libraryRetentionTimes, IProgressMonitor progressMonitor)
        {
            var targetTimes = libraryRetentionTimes.Find(dataFileName);

            if (targetTimes == null)
            {
                return(null);
            }
            var alignments = new List <RetentionTimeAlignment>();

            foreach (var entry in libraryRetentionTimes)
            {
                if (dataFileName == entry.Key)
                {
                    continue;
                }
                var alignedFile = AlignedRetentionTimes.AlignLibraryRetentionTimes(targetTimes, entry.Value, REFINEMENT_THRESHHOLD, RegressionMethodRT.linear, new CustomCancellationToken(CancellationToken.None, () => progressMonitor.IsCanceled));
                if (alignedFile == null || alignedFile.RegressionRefinedStatistics == null ||
                    !RetentionTimeRegression.IsAboveThreshold(alignedFile.RegressionRefinedStatistics.R, REFINEMENT_THRESHHOLD))
                {
                    continue;
                }
                var regressionLine = alignedFile.RegressionRefined.Conversion as RegressionLineElement;
                if (regressionLine != null)
                {
                    alignments.Add(new RetentionTimeAlignment(entry.Key, regressionLine));
                }
            }
            return(new FileRetentionTimeAlignments(dataFileName, alignments));
        }
 public bool IsRefined()
 {
     // If refinement has been performed, or it doesn't need to be.
     if (_regressionRefined != null)
     {
         return(true);
     }
     if (_statisticsAll == null)
     {
         return(false);
     }
     return(RetentionTimeRegression.IsAboveThreshold(_statisticsAll.R, _threshold));
 }