public static ScanEventReactionCollection ScanEvents(IRawDataPlus rawFile, ScanIndex index) { if (index.AnalysisOrder == MSOrderType.Ms) { Console.WriteLine("This is not an Orbitrap file. Skipping reaction event extraction."); return(null); } else { rawFile.SelectMsData(); ScanEventReactionCollection events = new ScanEventReactionCollection(); Log.Information("Extracting scan events"); ProgressIndicator P = new ProgressIndicator(index.ScanEnumerators[MSOrderType.Any].Length, "Extracting reaction events"); P.Start(); foreach (int scan in index.ScanEnumerators[index.AnalysisOrder]) { events.Add(scan, rawFile.GetScanEventForScanNumber(scan).GetReaction(0)); P.Update(); } P.Done(); return(events); } }
public static ScanEventReactionCollection ScanEvents(IRawDataPlus rawFile, ScanIndex index) { rawFile.SelectMsData(); ScanEventReactionCollection events = new ScanEventReactionCollection(); Log.Information("Extracting scan events"); ProgressIndicator P = new ProgressIndicator(index.ScanEnumerators[MSOrderType.Any].Length, "Extracting reaction events"); P.Start(); foreach (int scan in index.ScanEnumerators[index.AnalysisOrder]) { events.Add(scan, rawFile.GetScanEventForScanNumber(scan).GetReaction(0)); P.Update(); } P.Done(); return(events); }
public static ScanMetaDataCollectionDDA AggregateMetaDataDDA(CentroidStreamCollection centroidStreams, SegmentScanCollection segmentScans, MethodDataContainer methodData, PrecursorScanCollection precursorScans, TrailerExtraCollection trailerExtras, PrecursorMassCollection precursorMasses, RetentionTimeCollection retentionTimes, ScanDependentsCollections scanDependents, ScanEventReactionCollection reactions, ScanIndex index) { //ProgressIndicator progress = new ProgressIndicator(index.ScanEnumerators[MSOrderType.Any].Count(), // "Formatting scan meta data"); ScanMetaDataCollectionDDA metaData = new ScanMetaDataCollectionDDA(); int[] scans = index.ScanEnumerators[MSOrderType.Any]; double isoWindow = MetaDataCalculations.Ms1IsoWindow(methodData); Console.WriteLine("Calculating meta data"); Console.WriteLine(" MS1 isolation interference"); metaData.Ms1IsolationInterference = MetaDataCalculations.Ms1Interference(centroidStreams, precursorMasses, trailerExtras, precursorScans, reactions, index); Console.WriteLine(" MS2 scan cycle density"); metaData.MS2ScansPerCycle = MetaDataCalculations.MS2ScansPerCycle(scanDependents, index); Console.WriteLine(" Ion injection time"); metaData.FillTime = MetaDataCalculations.FillTimes(trailerExtras, index); Console.WriteLine(" Duty cycle"); metaData.DutyCycle = MetaDataCalculations.DutyCycle(retentionTimes, index); Console.WriteLine(" Intensity distribution"); metaData.IntensityDistribution = MetaDataCalculations.IntensityDistributions(centroidStreams, segmentScans, index); Console.WriteLine(" Summed intensities"); metaData.SummedIntensity = MetaDataCalculations.SummedIntensities(centroidStreams, segmentScans, index); metaData.FractionConsumingTop80PercentTotalIntensity = MetaDataCalculations.Top80Frac(centroidStreams, segmentScans, index); //Task.WaitAll(); return(metaData); }
public static Dictionary <int, double> Ms1Interference(CentroidStreamCollection centroidStreams, PrecursorMassCollection precursorMasses, TrailerExtraCollection trailerExtras, PrecursorScanCollection precursorScans, ScanEventReactionCollection reactions, ScanIndex index) { ConcurrentDictionary <int, double> interference = new ConcurrentDictionary <int, double>(); int chunkSize = Constants.MultiThreading.ChunkSize(index.ScanEnumerators[index.AnalysisOrder].Count()); var batches = index.ScanEnumerators[index.AnalysisOrder].Chunk(chunkSize); Parallel.ForEach(batches, Constants.MultiThreading.Options(), batch => { foreach (int scan in batch) { int preScan = precursorScans[scan].MasterScan; interference.AddOrUpdate(scan, Algorithms.Ms1Interference.CalculateForOneScan(centroidStreams[preScan], reactions[scan], precursorMasses[scan].MonoisotopicMZ, trailerExtras[scan].ChargeState), (a, b) => b); } }); var interferenceOut = new Dictionary <int, double>(); foreach (var item in interference) { interferenceOut.Add(item.Key, item.Value); } return(interferenceOut); }