Ejemplo n.º 1
0
        private void DisplayScan()
        {
            if (this.reader == null)
            {
                return;
            }

            try
            {
                this.scan.ValidateComponent();
                this.minPeakIntensity.ValidateComponent();

                double rt = retentionTimes[this.scan.Value - 1];

                PeakList <Peak> pkl = reader.GetPeakList(rt, this.minPeakIntensity.Value, topPeak.Value);

                try
                {
                    ZedGraphicExtension.ClearData(this.zgcScan, false);

                    var pplLight = new PointPairList();
                    pkl.ForEach(p => pplLight.Add(p.Mz, p.Intensity));

                    ZedGraphicExtension.AddIndividualLine(this.zgcScan, MyConvert.Format("Scan {0}", this.scan.Value), pplLight, Color.Blue, false);

                    if (reader.GetMsLevel(rt) == 2)
                    {
                        this.zgcScan.GraphPane.Title.Text = MyConvert.Format("Precursor MZ = {0:0.0000}", pkl.PrecursorMZ);
                    }
                    else
                    {
                        this.zgcScan.GraphPane.Title.Text = string.Empty;
                    }
                }
                finally
                {
                    ZedGraphicExtension.UpdateGraph(this.zgcScan);
                }

                StringBuilder sb = new StringBuilder();
                pkl.ForEach(m => sb.AppendLine(MyConvert.Format("{0:0.0000}\t{1:0.00}", m.Mz, m.Intensity)));
                txtPeaks.Text = sb.ToString();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        protected override void DoRealGo()
        {
            PeakList <MatchedPeak> pkl = GetAnnotatedPeakList();

            var points = new PointPairList();

            pkl.ForEach(p => {
                if (p.PeakType == IonType.UNKNOWN)
                {
                    points.Add(new PointPair(p.Mz, p.Intensity));
                }
                else
                {
                    points.Add(new PointPair(p.Mz, p.Intensity, p.PeakType.ToString()));
                }
            });

            zgcPeaks.InitGraph(new FileInfo(dtaFile.FullName).Name, "MZ", "Intensity", false, 1.0);
            zgcPeaks.AddIndividualLine("", points, Color.Black, true);
        }
Ejemplo n.º 3
0
        public override IEnumerable <string> Process(string rootDirectory)
        {
            DirectoryInfo[] dirs = new DirectoryInfo(rootDirectory).GetDirectories("*.d");

            Regex reg = new Regex(@"([\d-_]*)");

            Progress.SetRange(1, dirs.Length);
            int count = 0;

            foreach (var dir in dirs)
            {
                if (Progress.IsCancellationPending())
                {
                    throw new UserTerminatedException();
                }

                count++;
                Progress.SetPosition(count);
                Progress.SetMessage("Processing " + dir.FullName + "...");

                Match  match = reg.Match(dir.Name);
                string name  = match.Groups[1].Value;
                if (name.StartsWith("_"))
                {
                    name = name.Substring(1);
                }

                string fileName = GetFileName(dir);
                if (File.Exists(fileName))
                {
                    continue;
                }

                double[] intensities = new double[maxPeakMz + 1];

                using (StreamWriter sw = new StreamWriter(fileName))
                {
                    rawFile.Open(dir.FullName);

                    sw.Write("{0:0}", rawFile.GetTotalIntensity());
                    for (int peak = minPeakMz; peak <= maxPeakMz; peak++)
                    {
                        sw.Write("\t{0}", peak);
                    }
                    sw.WriteLine();

                    for (int scan = rawFile.GetFirstSpectrumNumber(); scan <= rawFile.GetLastSpectrumNumber(); scan++)
                    {
                        if (Progress.IsCancellationPending())
                        {
                            sw.Close();
                            File.Delete(fileName);
                            throw new UserTerminatedException();
                        }

                        PeakList <Peak> pkl = rawFile.GetPeakList(scan, minPeakMz, maxPeakMz);

                        for (int peak = minPeakMz; peak <= maxPeakMz; peak++)
                        {
                            intensities[peak] = 0.0;
                        }

                        pkl.ForEach(m =>
                        {
                            int mz = (int)Math.Abs(m.Mz);
                            if (m.Intensity > intensities[mz])
                            {
                                intensities[mz] = m.Intensity;
                            }
                        });

                        sw.Write(scan);
                        for (int peak = minPeakMz; peak <= maxPeakMz; peak++)
                        {
                            sw.Write("\t{0:0.0}", intensities[peak]);
                        }
                        sw.WriteLine();
                    }
                }
            }

            return(new string[] { rootDirectory });
        }