Beispiel #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));
        }
Beispiel #2
0
        public static ResultNameMap <RetentionTimeSource> ListSourcesForResults(MeasuredResults results, ResultNameMap <RetentionTimeSource> availableSources)
        {
            if (results == null)
            {
                return(ResultNameMap <RetentionTimeSource> .EMPTY);
            }
            var sourcesForResults = results.Chromatograms
                                    .SelectMany(chromatogramSet => chromatogramSet.MSDataFileInfos)
                                    .Select(availableSources.Find);

            return(ResultNameMap.FromNamedElements(sourcesForResults.Where(source => null != source)));
        }
Beispiel #3
0
        public static ResultNameMap <RetentionTimeSource> ListAvailableRetentionTimeSources(SrmSettings settings)
        {
            if (!settings.TransitionSettings.FullScan.IsEnabled)
            {
                return(ResultNameMap <RetentionTimeSource> .EMPTY);
            }
            IEnumerable <RetentionTimeSource> sources = new RetentionTimeSource[0];

            foreach (var library in settings.PeptideSettings.Libraries.Libraries)
            {
                if (library == null || !library.IsLoaded)
                {
                    continue;
                }
                sources = sources.Concat(library.ListRetentionTimeSources());
            }
            return(ResultNameMap.FromNamedElements(sources));
        }
Beispiel #4
0
        public static ResultNameMap <IDictionary <Target, double> > ReadAllRetentionTimes(SrmDocument document, ResultNameMap <RetentionTimeSource> sources)
        {
            var allRetentionTimes = new Dictionary <string, IDictionary <Target, double> >();

            foreach (var source in sources)
            {
                var library = document.Settings.PeptideSettings.Libraries.GetLibrary(source.Value.Library);
                if (null == library)
                {
                    continue;
                }
                LibraryRetentionTimes libraryRetentionTimes;
                if (!library.TryGetRetentionTimes(MsDataFileUri.Parse(source.Value.Name), out libraryRetentionTimes))
                {
                    continue;
                }
                allRetentionTimes.Add(source.Key, libraryRetentionTimes.GetFirstRetentionTimes());
            }
            return(ResultNameMap.FromDictionary(allRetentionTimes));
        }
        public override void ReadXml(XmlReader reader)
        {
            if (null != RetentionTimeAlignments)
            {
                throw new InvalidOperationException();
            }
            base.ReadXml(reader);
            var retentionTimeAlignments = new List <RetentionTimeAlignment>();

            if (reader.IsEmptyElement)
            {
                reader.Read();
            }
            else
            {
                // Read past the property element
                reader.Read();
                reader.ReadElements(retentionTimeAlignments);
                reader.ReadEndElement();
            }
            RetentionTimeAlignments = ResultNameMap.FromNamedElements(retentionTimeAlignments);
        }
Beispiel #6
0
        public void ReadXml(XmlReader reader)
        {
            if (RetentionTimeSources != null || FileAlignments != null)
            {
                throw new InvalidOperationException();
            }
            var sources        = new List <RetentionTimeSource>();
            var fileAlignments = new List <FileRetentionTimeAlignments>();

            if (reader.IsEmptyElement)
            {
                reader.Read();
            }
            else
            {
                reader.Read();
                reader.ReadElements(sources);
                reader.ReadElements(fileAlignments);
                reader.ReadEndElement();
            }
            RetentionTimeSources = ResultNameMap.FromNamedElements(sources);
            FileAlignments       = ResultNameMap.FromNamedElements(fileAlignments);
        }
Beispiel #7
0
 public DocumentRetentionTimes(IEnumerable <RetentionTimeSource> sources, IEnumerable <FileRetentionTimeAlignments> fileAlignments)
     : this()
 {
     RetentionTimeSources = ResultNameMap.FromNamedElements(sources);
     FileAlignments       = ResultNameMap.FromNamedElements(fileAlignments);
 }
Beispiel #8
0
 private static ResultNameMap <string> ResultMapFromStrings(IEnumerable <string> strings)
 {
     return(ResultNameMap.FromKeyValuePairs(strings.Select(s => new KeyValuePair <string, string>(s, s))));
 }
 public FileRetentionTimeAlignments(string dataFileName, IEnumerable <RetentionTimeAlignment> alignments) : base(dataFileName)
 {
     RetentionTimeAlignments = ResultNameMap.FromNamedElements(alignments);
 }
 private static FileRetentionTimeAlignments CalculateFileRetentionTimeAlignments(
     string dataFileName, ResultNameMap<IDictionary<string, 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, ()=>progressMonitor.IsCanceled);
         if (alignedFile == null || !RetentionTimeRegression.IsAboveThreshold(alignedFile.RegressionRefinedStatistics.R, REFINEMENT_THRESHHOLD))
         {
             continue;
         }
         alignments.Add(new RetentionTimeAlignment(entry.Key, alignedFile.RegressionRefined.Conversion));
     }
     return new FileRetentionTimeAlignments(dataFileName, alignments);
 }
 public void ReadXml(XmlReader reader)
 {
     if (RetentionTimeSources != null || FileAlignments != null)
     {
         throw new InvalidOperationException();
     }
     var sources = new List<RetentionTimeSource>();
     var fileAlignments = new List<FileRetentionTimeAlignments>();
     if (reader.IsEmptyElement)
     {
         reader.Read();
     }
     else
     {
         reader.Read();
         reader.ReadElements(sources);
         reader.ReadElements(fileAlignments);
         reader.ReadEndElement();
     }
     RetentionTimeSources = ResultNameMap.FromNamedElements(sources);
     FileAlignments = ResultNameMap.FromNamedElements(fileAlignments);
 }
 public static ResultNameMap<IDictionary<string, double>> ReadAllRetentionTimes(SrmDocument document, ResultNameMap<RetentionTimeSource> sources)
 {
     var allRetentionTimes = new Dictionary<string, IDictionary<string, double>>();
     foreach (var source in sources)
     {
         var library = document.Settings.PeptideSettings.Libraries.GetLibrary(source.Value.Library);
         if (null == library)
         {
             continue;
         }
         LibraryRetentionTimes libraryRetentionTimes;
         if (!library.TryGetRetentionTimes(MsDataFileUri.Parse(source.Value.Name), out libraryRetentionTimes))
         {
             continue;
         }
         allRetentionTimes.Add(source.Key, libraryRetentionTimes.GetFirstRetentionTimes());
     }
     return ResultNameMap.FromDictionary(allRetentionTimes);
 }
 public static ResultNameMap<RetentionTimeSource> ListSourcesForResults(MeasuredResults results, ResultNameMap<RetentionTimeSource> availableSources)
 {
     if (results == null)
     {
         return ResultNameMap<RetentionTimeSource>.EMPTY;
     }
     var sourcesForResults = results.Chromatograms
         .SelectMany(chromatogramSet => chromatogramSet.MSDataFileInfos)
         .Select(availableSources.Find);
     return ResultNameMap.FromNamedElements(sourcesForResults.Where(source => null != source));
 }