static void WiffToMzML() { string wiffPath = @"C:\Work\primaqdev\testdata\C2 Sol SWATH4.wiff"; string runID = "sample=0"; string mzMLOutPath = @"C:\Work\primaqdev\testdata\test.mzML"; using (var wiff = new WiffFileReader(wiffPath)) using (ITransactionScope txn = wiff.BeginTransaction()) using (var mzML = new MzMLWriter(mzMLOutPath)) { mzML.BeginMzML(wiff.Model); mzML.BeginRun(wiff.Model.Runs[runID]); var spectra = wiff.ReadMassSpectra(runID).Take(1); int spectrumCount = spectra.Count(); int specIdx = 0; mzML.BeginSpectrumList(spectrumCount); foreach (var ms in spectra) { var bd = wiff.ReadSpectrumPeaks(ms.ID); mzML.WriteSpectrum(ms, bd, specIdx); specIdx++; } mzML.EndSpectrumList(); mzML.EndRun(); mzML.EndMzML(); mzML.Close(); } }
public void MzMLWriteTest(string inPath, string outFolderName, int expectedSpectra) { var sourceFile = new FileInfo(Path.Combine(TestPath.ExtTestDataDirectory, inPath)); if (!sourceFile.Exists) { Console.WriteLine("File not found: " + sourceFile.FullName); return; } if (sourceFile.DirectoryName == null) { throw new DirectoryNotFoundException("Cannot determine the parent folder of " + sourceFile.FullName); } var outFolder = new DirectoryInfo(Path.Combine(sourceFile.DirectoryName, outFolderName)); if (!outFolder.Exists) { outFolder.Create(); } var outFile = new FileInfo(Path.Combine(outFolder.FullName, sourceFile.Name)); var reader = new MzMLReader(Path.Combine(TestPath.ExtTestDataDirectory, inPath)); var mzMLData = reader.Read(); Console.WriteLine("Spectrum count: " + mzMLData.run.spectrumList.count); Console.WriteLine("Array length: " + mzMLData.run.spectrumList.spectrum.Count); Assert.AreEqual(expectedSpectra.ToString(), mzMLData.run.spectrumList.count, "Spectrum Count"); Assert.AreEqual(expectedSpectra, mzMLData.run.spectrumList.spectrum.Count, "Array length"); var writer = new MzMLWriter(Path.Combine(TestPath.ExtTestDataDirectory, outFile.FullName)) { MzMLType = MzMLSchemaType.MzML }; writer.Write(mzMLData); }