コード例 #1
0
        public override void Open(string fileName)
        {
            Close();
            sr = new StreamReader(fileName);

            this.FileName = fileName;
            iter          = new MascotGenericFormatIterator <Peak>(sr);

            string line;
            int    scan     = 1;
            long   position = 0;

            while ((line = sr.ReadLine()) != null)
            {
                if (line.StartsWith(MascotGenericFormatConstants.MSMS_SCAN_TAG))
                {
                    Match m = scanRegex.Match(line);
                    scan            = Convert.ToInt32(m.Groups[1].Value);
                    positions[scan] = new PositionClass()
                    {
                        Position = position
                    };
                }
                else if (line.StartsWith(MascotGenericFormatConstants.RETENTION_TIME_TAG))
                {
                    positions[scan].RetentionTimeInSecond = MyConvert.ToDouble(line.Substring(MascotGenericFormatConstants.RETENTION_TIME_TAG.Length + 1));
                }
                else if (line.StartsWith(MascotGenericFormatConstants.END_PEAK_LIST_TAG))
                {
                    position = StreamUtils.GetCharpos(sr);
                }
            }

            List <int> scans = new List <int>(positions.Keys);

            if (scans.Count > 0)
            {
                firstScan = scans[0];
                lastScan  = scans[scans.Count - 1];
            }
            else
            {
                firstScan = 0;
                lastScan  = -1;
            }
        }
コード例 #2
0
        public void Test()
        {
            using (var sr = new StreamReader(TestContext.CurrentContext.TestDirectory + "/../../../data//Ribo B 645.txt"))
            {
                var             iter   = new MascotGenericFormatIterator <Peak>(sr);
                PeakList <Peak> expPkl = iter.Next();
                var             score  = new XCorrelationSpectrumScore <Peak>(expPkl);

                var builder = new ETDPeptideCSeriesBuilder <IonTypePeak>(2000, 3);

                builder.CurAminoacids['*'].ResetMass(1217.117, 1217.117);
                List <IonTypePeak> thePkl = builder.Build("SRN*LTK");

                double Score = score.Calculate(thePkl);

                Console.Out.WriteLine("Score={0:0.0000}", Score);
            }
        }
コード例 #3
0
    public void Test()
    {
      using (var sr = new StreamReader("../../../data/Ribo B 645.txt"))
      {
        var iter = new MascotGenericFormatIterator<Peak>(sr);
        PeakList<Peak> expPkl = iter.Next();
        var score = new XCorrelationSpectrumScore<Peak>(expPkl);

        var builder = new ETDPeptideCSeriesBuilder<IonTypePeak>(2000, 3);

        builder.CurAminoacids['*'].ResetMass(1217.117, 1217.117);
        List<IonTypePeak> thePkl = builder.Build("SRN*LTK");

        double Score = score.Calculate(thePkl);

        Console.Out.WriteLine("Score={0:0.0000}", Score);
      }
    }
        public override IEnumerable <string> Process(string fileName)
        {
            double offsetPPM;

            if (!FindOffset(fileName, out offsetPPM))
            {
                return(new string[] { });
            }

            string resultFilename = new FileInfo(targetDir + "\\" + new FileInfo(fileName).Name).FullName;
            var    writer         = new MascotGenericFormatWriter <Peak>();

            using (StreamReader sr = new StreamReader(new FileStream(fileName, FileMode.Open)))
            {
                var iter = new MascotGenericFormatIterator <Peak>(sr);
                using (StreamWriter sw = new StreamWriter(resultFilename))
                {
                    while (iter.HasNext())
                    {
                        if (Progress.IsCancellationPending())
                        {
                            throw new UserTerminatedException();
                        }

                        if (IsLoopStopped)
                        {
                            return(new string[] { });
                        }

                        var pkl = iter.Next();
                        pkl.PrecursorMZ = pkl.PrecursorMZ + PrecursorUtils.ppm2mz(pkl.PrecursorMZ, offsetPPM);
                        writer.Write(sw, pkl);
                    }
                }
            }

            return(new List <string>(new[] { resultFilename }));
        }
コード例 #5
0
        public override IEnumerable <string> Process(string mgfFilename)
        {
            String mgfName = Path.GetFileNameWithoutExtension(mgfFilename);

            using (var sw = new StreamWriter(targetFile))
            {
                sw.WriteLine("H\tCreationDate\t{0:yyyyMMdd}", DateTime.Now);
                sw.WriteLine("H\tExtractor\tProteomicsTools");

                using (var sr = new StreamReader(mgfFilename))
                {
                    bool bProcessing = sr.BaseStream.Length > 0;

                    var reader = new MascotGenericFormatIterator <Peak>(sr);

                    this.scanIndex = 0;

                    if (bProcessing)
                    {
                        Progress.SetMessage("Converting " + mgfFilename + " ...");
                        Progress.SetRange(0, sr.BaseStream.Length);
                    }

                    Progress.SetPosition(0);
                    while (reader.HasNext())
                    {
                        if (Progress.IsCancellationPending())
                        {
                            throw new UserTerminatedException();
                        }

                        PeakList <Peak> pkl = reader.Next();
                        if (bProcessing)
                        {
                            Progress.SetPosition(sr.BaseStream.Position);
                        }

                        int[] charges;
                        if (0 != pkl.PrecursorCharge)
                        {
                            charges = new[] { pkl.PrecursorCharge };
                        }
                        else if (IsWiff(pkl))
                        {
                            charges = new[] { 1 };
                        }
                        else
                        {
                            charges = new[] { 2, 3 };
                        }

                        var sf = GetFilename(pkl, mgfName);
                        sw.WriteLine("S\t{0}\t{1}\t{2}", sf.FirstScan, sf.LastScan, pkl.PrecursorMZ);
                        foreach (var charge in charges)
                        {
                            sw.WriteLine("Z\t{0}\t{1:0.#####}", charge, PrecursorUtils.MzToMH(pkl.PrecursorMZ, charge, true));
                        }
                        foreach (var peak in pkl)
                        {
                            sw.WriteLine("{0:0.#####}\t{1:0.#}", peak.Mz, peak.Intensity);
                        }
                    }

                    Progress.SetMessage("Converting " + mgfFilename + " finished.");
                }
            }
            return(new[] { this.targetFile });
        }