Ejemplo n.º 1
0
 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));
 }
Ejemplo n.º 2
0
 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));
 }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
                }
            }
        }
Ejemplo n.º 5
0
 public override MassSpectrumItem GetInitalSelectedSpectrum(MSOrderType msOrder)
 {
     return(SelectSpectralTreeNode(m_unknownFeatureIonInstanceItems.First().RetentionTime, msOrder));
 }
Ejemplo n.º 6
0
        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);
 }