Exemplo n.º 1
0
        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();
                    }
        }
Exemplo n.º 2
0
        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);
        }