public static double GetMedianMSFillTime(Dictionary <int, double> FillTimes, ScanIndex Index, MSOrderType MsOrder) { return((from x in Index.ScanEnumerators[MsOrder] select FillTimes[x]).ToArray().Percentile(50)); }
public static double GetMedianSummedMSIntensity(Dictionary <int, double> SummedIntensities, ScanIndex Index, MSOrderType MsOrder) { return((from x in Index.ScanEnumerators[MsOrder] select SummedIntensities[x]).ToArray().Percentile(50)); }
public static double[] GetFaimsVoltages(Dictionary <int, double> FaimsVoltages, ScanIndex Index, MSOrderType MsOrder) { //return (double[])(from x in Index.ScanEnumerators[MsOrder] select FaimsVoltages[x]).ToArray().Distinct(); List <double> faimsVoltageSet = new List <double>(); faimsVoltageSet = (from x in Index.ScanEnumerators[MsOrder] select FaimsVoltages[x]).ToList(); var DistinctFaimsVoltages = faimsVoltageSet.Distinct().ToArray(); return(DistinctFaimsVoltages); }
public static void ExtractSegmentScans(this RawDataCollection rawData, IRawDataPlus rawFile, MSOrderType MSOrder) { if (MSOrder == MSOrderType.Ms) { if (rawData.Performed.Contains(Operations.Ms1SegmentedScans)) { return; } } else { if (MSOrder == MSOrderType.Ms2) { if (rawData.Performed.Contains(Operations.Ms2SegmentedScans)) { return; } } else { if (rawData.Performed.Contains(Operations.Ms3SegmentedScans)) { return; } } } Log.Information("Extracting {MSOrder} segment scans", MSOrder); IEnumerable <int> scans = rawData.scanIndex.ScanEnumerators[MSOrder]; ProgressIndicator progress = new ProgressIndicator(scans.Count(), string.Format("Extracting {0} segment scans", MSOrder)); try { rawData.Extract(rawFile, scans, progress); } catch (Exception e) { Log.Error(e, "Failed while extracting {MSOrder} segment scans", MSOrder); throw e; } progress.Done(); if (MSOrder == MSOrderType.Ms) { rawData.Performed.Add(Operations.Ms1SegmentedScans); } else { if (MSOrder == MSOrderType.Ms2) { rawData.Performed.Add(Operations.Ms2SegmentedScans); } else { rawData.Performed.Add(Operations.Ms3SegmentedScans); } } }
public override MassSpectrumItem GetInitalSelectedSpectrum(MSOrderType msOrder) { return(SelectSpectralTreeNode(m_unknownFeatureIonInstanceItems.First().RetentionTime, msOrder)); }
public static void WriteChromatogram(this RawDataCollection rawData, IRawDataPlus rawFile, MSOrderType order, bool TIC, bool BP, string outputDirectory) { List <Operations> operations = new List <Operations>() { Operations.RetentionTimes }; //MSOrderType order = (MSOrderType)msOrder; MassAnalyzerType analyzer = rawData.methodData.MassAnalyzers[order]; if (analyzer == MassAnalyzerType.MassAnalyzerFTMS) { if (order == MSOrderType.Ms) { operations.Add(Operations.Ms1CentroidStreams); } if (order == MSOrderType.Ms2) { operations.Add(Operations.Ms2CentroidStreams); } if (order == MSOrderType.Ms3) { operations.Add(Operations.Ms3CentroidStreams); } } else { if (order == MSOrderType.Ms) { operations.Add(Operations.Ms1SegmentedScans); } if (order == MSOrderType.Ms2) { operations.Add(Operations.Ms2SegmentedScans); } if (order == MSOrderType.Ms3) { operations.Add(Operations.Ms3SegmentedScans); } } CheckIfDone.Check(rawData, rawFile, operations); int[] scans = rawData.scanIndex.ScanEnumerators[order]; if (TIC) { ProgressIndicator progress = new ProgressIndicator(scans.Length, String.Format("Writing {0} TIC chromatogram", order)); progress.Start(); string fileName = ReadWrite.GetPathToFile(outputDirectory, rawData.rawFileName, "_" + order + "_TIC_chromatogram.txt"); using (StreamWriter f = new StreamWriter(fileName)) { f.WriteLine("RetentionTime\tIntensity"); if (analyzer == MassAnalyzerType.MassAnalyzerFTMS) { foreach (int scan in scans) { if (rawData.centroidStreams[scan].Intensities.Length > 0) { f.WriteLine("{0}\t{1}", rawData.retentionTimes[scan], rawData.centroidStreams[scan].Intensities.Sum()); } else { f.WriteLine("{0}\t{1}", rawData.retentionTimes[scan], 0); } progress.Update(); } } else { foreach (int scan in scans) { if (rawData.segmentedScans[scan].Intensities.Length > 0) { f.WriteLine("{0}\t{1}", rawData.retentionTimes[scan], rawData.segmentedScans[scan].Intensities.Sum()); } else { f.WriteLine("{0}\t{1}", rawData.retentionTimes[scan], 0); } progress.Update(); } } } progress.Done(); } if (BP) { ProgressIndicator progress = new ProgressIndicator(scans.Length, String.Format("Writing {0} base peak chromatogram", order)); progress.Start(); string fileName = ReadWrite.GetPathToFile(outputDirectory, rawData.rawFileName, "_" + order + "_BP_chromatogram.txt"); using (StreamWriter f = new StreamWriter(fileName)) { f.WriteLine("RetentionTime\tIntensity"); if (analyzer == MassAnalyzerType.MassAnalyzerFTMS) { foreach (int scan in scans) { if (rawData.centroidStreams[scan].Intensities.Length > 0) { f.WriteLine("{0}\t{1}", rawData.retentionTimes[scan], rawData.centroidStreams[scan].Intensities.Max()); } else { f.WriteLine("{0}\t{1}", rawData.retentionTimes[scan], 0); } progress.Update(); } } else { foreach (int scan in scans) { if (rawData.segmentedScans[scan].Intensities.Length > 0) { f.WriteLine("{0}\t{1}", rawData.retentionTimes[scan], rawData.segmentedScans[scan].Intensities.Max()); } else { f.WriteLine("{0}\t{1}", rawData.retentionTimes[scan], 0); } progress.Update(); } } } progress.Done(); } }
public override MassSpectrumItem GetInitalSelectedSpectrum(MSOrderType msOrder) { return SelectSpectralTreeNode(m_unknownFeatureIonInstanceItems.First().RetentionTime, msOrder); }