Skip to content

Commit 3a8507e

Browse files
committed
Fix wrong mzML with -p flag
and added some tests
1 parent 9bd769c commit 3a8507e

File tree

2 files changed

+55
-3
lines changed

2 files changed

+55
-3
lines changed

ThermoRawFileParserTest/WriterTests.cs

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.Collections.Generic;
23
using System.IO;
34
using System.Linq;
45
using System.Net.PeerToPeer.Collaboration;
@@ -73,6 +74,57 @@ public void TestMzml()
7374
Assert.AreEqual(48, testMzMl.run.chromatogramList.chromatogram[0].defaultArrayLength);
7475
}
7576

77+
[Test]
78+
public void TestProfileMzml()
79+
{
80+
// Get temp path for writing the test mzML
81+
var tempFilePath = Path.GetTempPath();
82+
83+
var testRawFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Data/small.RAW");
84+
var parseInput = new ParseInput(testRawFile, null, tempFilePath, OutputFormat.MzML);
85+
86+
parseInput.NoPeakPicking = true;
87+
88+
RawFileParser.Parse(parseInput);
89+
90+
// Deserialize the mzML file
91+
var xmlSerializer = new XmlSerializer(typeof(mzMLType));
92+
var testMzMl = (mzMLType)xmlSerializer.Deserialize(new FileStream(
93+
Path.Combine(tempFilePath, "small.mzML"), FileMode.Open, FileAccess.Read, FileShare.ReadWrite));
94+
95+
Assert.AreEqual("48", testMzMl.run.spectrumList.count);
96+
Assert.AreEqual(48, testMzMl.run.spectrumList.spectrum.Length);
97+
98+
Assert.AreEqual("1", testMzMl.run.chromatogramList.count);
99+
Assert.AreEqual(1, testMzMl.run.chromatogramList.chromatogram.Length);
100+
101+
Assert.AreEqual(48, testMzMl.run.chromatogramList.chromatogram[0].defaultArrayLength);
102+
}
103+
104+
[Test]
105+
public void TestMSLevels()
106+
{
107+
// Get temp path for writing the test mzML
108+
var tempFilePath = Path.GetTempPath();
109+
110+
var testRawFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Data/small.RAW");
111+
var parseInput = new ParseInput(testRawFile, null, tempFilePath, OutputFormat.MzML);
112+
113+
parseInput.MsLevel = new HashSet<int> { 1 };
114+
115+
RawFileParser.Parse(parseInput);
116+
117+
// Deserialize the mzML file
118+
var xmlSerializer = new XmlSerializer(typeof(mzMLType));
119+
var testMzMl = (mzMLType)xmlSerializer.Deserialize(new FileStream(
120+
Path.Combine(tempFilePath, "small.mzML"), FileMode.Open, FileAccess.Read, FileShare.ReadWrite));
121+
122+
Assert.AreEqual("14", testMzMl.run.spectrumList.count);
123+
Assert.AreEqual(14, testMzMl.run.spectrumList.spectrum.Length);
124+
125+
Assert.AreEqual(48, testMzMl.run.chromatogramList.chromatogram[0].defaultArrayLength);
126+
}
127+
76128
[Test]
77129
public void TestIndexedMzML()
78130
{

Writer/MzMlSpectrumWriter.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -293,10 +293,10 @@ public override void Write(IRawDataPlus rawFile, int firstScanNumber, int lastSc
293293
name = "peak picking",
294294
value = ""
295295
});
296+
_writer.WriteEndElement(); // processingMethod
296297
}
297-
_writer.WriteEndElement(); // processingMethod
298-
_writer.WriteEndElement(); // dataProcessing
299-
_writer.WriteEndElement(); // dataProcessingList
298+
_writer.WriteEndElement(); // dataProcessing
299+
_writer.WriteEndElement(); // dataProcessingList
300300

301301
// run
302302
_writer.WriteStartElement("run");

0 commit comments

Comments
 (0)