예제 #1
0
        public string ToXML(FAIMStoMzXMLProcessor processor)
        {
            // place scan byte depth into our tracking list
            var index = new Index(processor.ByteTracking.CurrentScan, processor.ByteTracking.ByteDepth + 3);

            processor.ByteTracking.ScanOffsets.Add(index);

            FilterLine = FixFilterLine();

            var sb = new StringBuilder();

            sb.AppendFormat("   <scan num=\"{0}\"", processor.ByteTracking.CurrentScan).AppendLine();
            sb.AppendFormat("    msLevel=\"{0}\"", MsLevel).AppendLine();
            sb.AppendFormat("    peaksCount=\"{0}\"", PeaksCount).AppendLine();
            sb.AppendFormat("    polarity=\"{0}\"", Polarity).AppendLine();
            sb.AppendFormat("    scanType=\"{0}\"", ScanType).AppendLine();
            sb.AppendFormat("    filterLine=\"{0}\"", FilterLine).AppendLine();
            sb.AppendFormat("    retentionTime=\"{0}\"", RetentionTime).AppendLine();
            sb.AppendFormat("    lowMz=\"" + Math.Round(LowMz, 3) + "\"").AppendLine();
            sb.AppendFormat("    highMz=\"" + Math.Round(HighMz, 3) + "\"").AppendLine();
            sb.AppendFormat("    basePeakMz=\"" + Math.Round(BasePeakMz, 3) + "\"").AppendLine();
            sb.AppendFormat("    basePeakIntensity=\"" + FormatSpecialNumber(BasePeakIntensity) + "\"").AppendLine();
            sb.AppendFormat("    totIonCurrent=\"" + FormatSpecialNumber(TotIonCurrent) + "\"").AppendLine();
            sb.AppendFormat("    collisionEnergy=\"" + CollisionEnergy + "\">").AppendLine();

            sb.AppendLine(PrecursorMz.ToXML());
            sb.AppendLine(PeakData.ToXML(4));
            sb.Append("   </scan>");

            processor.ByteTracking.CurrentScan++;
            return(sb.ToString());
        }
        // for outputting valid MzXML strings to file
        public string ToXML(FAIMStoMzXMLProcessor processor)
        {
            // place scan byte depth into our tracking list
            var index = new Index(processor.ByteTracking.CurrentScan, processor.ByteTracking.ByteDepth + 2);

            processor.ByteTracking.ScanOffsets.Add(index);

            FilterLine = FixFilterLine();

            var sb = new StringBuilder();

            sb.AppendFormat("  <scan num=\"{0}\"", processor.ByteTracking.CurrentScan).AppendLine();

            sb.AppendFormat("   msLevel=\"{0}\"", MsLevel).AppendLine();
            sb.AppendFormat("   peaksCount=\"{0}\"", PeaksCount).AppendLine();
            sb.AppendFormat("   polarity=\"{0}\"", Polarity).AppendLine();
            sb.AppendFormat("   scanType=\"{0}\"", ScanType).AppendLine();
            sb.AppendFormat("   filterLine=\"{0}\"", FilterLine).AppendLine();
            sb.AppendFormat("   retentionTime=\"{0}\"", RetentionTime).AppendLine();
            sb.AppendFormat("   lowMz=\"" + Math.Round(LowMz, 3) + "\"").AppendLine();
            sb.AppendFormat("   highMz=\"" + Math.Round(HighMz, 3) + "\"").AppendLine();
            sb.AppendFormat("   basePeakMz=\"" + Math.Round(BasePeakMz, 3) + "\"").AppendLine();
            sb.AppendFormat("   basePeakIntensity=\"" + FormatSpecialNumber(BasePeakIntensity) + "\"").AppendLine();
            sb.AppendFormat("   totIonCurrent=\"" + FormatSpecialNumber(TotIonCurrent) + "\">").AppendLine();
            sb.AppendLine(PeakData.ToXML(3));

            // advance the byteTracker for Ms2 Indices
            processor.ByteTracker(sb.ToString(), true);

            processor.ByteTracking.CurrentScan++;

            foreach (var ms2 in Ms2s)
            {
                var ms2String = ms2.ToXML(processor);
                sb.AppendLine(ms2String);

                // advance byteTracker for the Ms2 Entry
                processor.ByteTracker(ms2String);
            }

            sb.Append("  </scan>");
            processor.ByteTracker("  </scan>");

            return(sb.ToString());
        }