CSMSL.Examples.MsDataFileExamples.VendorNeutralDataAccess C# (CSharp) Method

VendorNeutralDataAccess() public static method

Code to show how one could write one set of code to interact with multiple different types of MS data files.
public static VendorNeutralDataAccess ( ) : void
return void
        public static void VendorNeutralDataAccess()
        {
            Console.WriteLine("**MS I/O Examples**");
            Console.WriteLine("{0,-4} {1,3} {2,-6} {3,-5} {4,7} {5,-10} {6}", "SN", "Msn", "RT", "Polarity", "# Peaks", "Analyzer", "M/Z Range");

            // Generic MS data file reader
            List<IMSDataFile> exampleRawFiles = new List<IMSDataFile>
            {
                new ThermoRawFile("Resources/ThermoRawFileMS1MS2.raw"),
                new AgilentDDirectory(@"Resources\AgilentDDirectoryMS1MS2.d"),
                new Mzml("Resources/ThermoRawFileMS1MS2_Profile.mzML")
            };

            foreach (IMSDataFile dataFile in exampleRawFiles)
            {
                dataFile.Open();
                Stopwatch watch = new Stopwatch();
                watch.Start();
                foreach (IMSDataScan scan in dataFile.Where(s => s.MassSpectrum.Count > 1).Take(4))
                {
                    Console.WriteLine("{0,-4} {1,3} {2,-6:F4} {3,-5} {4,7} {5,-10} {6}", scan.SpectrumNumber, scan.MsnOrder, scan.RetentionTime,
                        scan.Polarity, scan.MassSpectrum.Count, scan.MzAnalyzer, scan.MzRange);
                }
                watch.Stop();
                Console.WriteLine("File: {0}", dataFile);
                Console.WriteLine("Time: {0}", watch.Elapsed);
                Console.WriteLine("Memory used: {0:N0} MB", Environment.WorkingSet/(1024*1024));
            }
        }
MsDataFileExamples