public MsDataFile LoadFile(string origDataFile, CommonParameters commonParameters) { FilteringParams filter = new FilteringParams(commonParameters.NumberOfPeaksToKeepPerWindow, commonParameters.MinimumAllowedIntensityRatioToBasePeak, commonParameters.WindowWidthThomsons, commonParameters.NumberOfWindows, commonParameters.NormalizePeaksAccrossAllWindows, commonParameters.TrimMs1Peaks, commonParameters.TrimMsMsPeaks); if (commonParameters.DissociationType == DissociationType.LowCID || commonParameters.MS2ChildScanDissociationType == DissociationType.LowCID || commonParameters.MS3ChildScanDissociationType == DissociationType.LowCID) { filter = null; } if (MyMsDataFiles.TryGetValue(origDataFile, out MsDataFile value) && value != null) { return(value); } // By now know that need to load this file!!! lock (FileLoadingLock) // Lock because reading is sequential { if (Path.GetExtension(origDataFile).Equals(".mzML", StringComparison.OrdinalIgnoreCase)) { MyMsDataFiles[origDataFile] = Mzml.LoadAllStaticData(origDataFile, filter, commonParameters.MaxThreadsToUsePerFile); } else if (Path.GetExtension(origDataFile).Equals(".mgf", StringComparison.OrdinalIgnoreCase)) { MyMsDataFiles[origDataFile] = Mgf.LoadAllStaticData(origDataFile, filter); } else { MyMsDataFiles[origDataFile] = ThermoRawFileReaderData.LoadAllStaticData(origDataFile, filter, commonParameters.MaxThreadsToUsePerFile); } return(MyMsDataFiles[origDataFile]); } }
public static void TestLoadMgf() { try { Mgf.LoadAllStaticData(Path.Combine(TestContext.CurrentContext.TestDirectory, "DataFiles", "ThereIsNothingHerePleaseDoNotGenerateThisFile.mgf")); Assert.IsTrue(false); } catch { //woohoo, there was an exception! } Mgf a = Mgf.LoadAllStaticData(Path.Combine(TestContext.CurrentContext.TestDirectory, "DataFiles", "tester.mgf")); var ya = a.GetOneBasedScan(14); Assert.AreEqual(192, ya.MassSpectrum.Size); Assert.AreEqual(2, ya.MsnOrder); Assert.AreEqual(14, ya.OneBasedScanNumber); Assert.AreEqual(MassSpectrometry.Polarity.Positive, ya.Polarity); Assert.AreEqual(0.26666666666666666, ya.RetentionTime); Assert.AreEqual(571.806916, ya.IsolationMz); Assert.AreEqual(571.806916, ya.SelectedIonMZ); Assert.AreEqual(2, ya.SelectedIonChargeStateGuess); Assert.AreEqual(571.806916, ya.SelectedIonMonoisotopicGuessMz); Assert.AreEqual(1294963.5999999996, ya.TotalIonCurrent); Assert.AreEqual(110.0719, ya.ScanWindowRange.Minimum); Assert.AreEqual(1038.8018, ya.ScanWindowRange.Maximum); var ya2 = a.GetOneBasedScan(20).MassSpectrum; Assert.AreEqual(165, ya2.Size); var ya3 = a.GetOneBasedScan(2).MassSpectrum; Assert.AreEqual(551, ya3.Size); }
public MsDataFile LoadFile(string origDataFile, int?topNpeaks, double?minRatio, bool trimMs1Peaks, bool trimMsMsPeaks, CommonParameters commonParameters) { FilteringParams filter = new FilteringParams(topNpeaks, minRatio, 1, trimMs1Peaks, trimMsMsPeaks); if (MyMsDataFiles.TryGetValue(origDataFile, out MsDataFile value) && value != null) { return(value); } // By now know that need to load this file!!! lock (FileLoadingLock) // Lock because reading is sequential { if (Path.GetExtension(origDataFile).Equals(".mzML", StringComparison.OrdinalIgnoreCase)) { MyMsDataFiles[origDataFile] = Mzml.LoadAllStaticData(origDataFile, filter, commonParameters.MaxThreadsToUsePerFile); } else if (Path.GetExtension(origDataFile).Equals(".mgf", StringComparison.OrdinalIgnoreCase)) { MyMsDataFiles[origDataFile] = Mgf.LoadAllStaticData(origDataFile, filter); } else { #if NETFRAMEWORK MyMsDataFiles[origDataFile] = ThermoStaticData.LoadAllStaticData(origDataFile, filter); #else Warn("No capability for reading " + origDataFile); #endif } return(MyMsDataFiles[origDataFile]); } }
public void TestFolderMgfs() { // Get temp path for writing the test MGF var tempFilePath = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName()); Directory.CreateDirectory(tempFilePath); var testRawFolder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Data/TestFolderMgfs"); var parseInput = new ParseInput(null, testRawFolder, tempFilePath, OutputFormat.MGF); RawFileParser.Parse(parseInput); var numFiles = Directory.GetFiles(tempFilePath, "*.mgf"); Assert.AreEqual(numFiles.Length, 2); var mgfData = Mgf.LoadAllStaticData(Path.Combine(tempFilePath, "small1.mgf")); Assert.AreEqual(34, mgfData.NumSpectra); var mgfData2 = Mgf.LoadAllStaticData(Path.Combine(tempFilePath, "small2.mgf")); Assert.AreEqual(34, mgfData2.NumSpectra); Directory.Delete(tempFilePath, true); }
public void TestMgf() { // Get temp path for writing the test MGF var tempFilePath = Path.GetTempPath(); var testRawFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Data/small.RAW"); var parseInput = new ParseInput(testRawFile, null, tempFilePath, OutputFormat.MGF); RawFileParser.Parse(parseInput); var mgfData = Mgf.LoadAllStaticData(Path.Combine(tempFilePath, "small.mgf")); Assert.AreEqual(34, mgfData.NumSpectra); }
public static void TestLoadCorruptMgf() { //tester_corrupt.mgf is extracted from tester.mgf except it contains empty lines or unknow words. You can compare the two files and find the differences. Mgf a = Mgf.LoadAllStaticData(Path.Combine(TestContext.CurrentContext.TestDirectory, "DataFiles", "tester_corrupt.mgf")); var ya = a.GetOneBasedScan(14); Assert.AreEqual(192, ya.MassSpectrum.Size); Assert.AreEqual(2, ya.MsnOrder); Assert.AreEqual(14, ya.OneBasedScanNumber); Assert.AreEqual(MassSpectrometry.Polarity.Positive, ya.Polarity); Assert.AreEqual(0.26666666666666666, ya.RetentionTime); Assert.AreEqual(571.806916, ya.IsolationMz); Assert.AreEqual(571.806916, ya.SelectedIonMZ); Assert.AreEqual(2, ya.SelectedIonChargeStateGuess); Assert.AreEqual(571.806916, ya.SelectedIonMonoisotopicGuessMz); Assert.AreEqual(1294963.5999999996, ya.TotalIonCurrent); Assert.AreEqual(110.0719, ya.ScanWindowRange.Minimum); Assert.AreEqual(1038.8018, ya.ScanWindowRange.Maximum); }
public void TestMgf() { // Get temp path for writing the test MGF var tempFilePath = Path.GetTempPath(); var testRawFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"small.RAW"); var parseInput = new ParseInput(testRawFile, tempFilePath, null, OutputFormat.MGF); RawFileParser.Parse(parseInput); // Do this for the mzLib library issue var tempFileName = Path.GetTempPath() + "elements.dat"; Loaders.LoadElements(tempFileName); var mgfData = Mgf.LoadAllStaticData(Path.Combine(tempFilePath, "small.mgf")); Assert.AreEqual(34, mgfData.NumSpectra); }
public void TestMgf() { // Get temp path for writing the test MGF var tempFilePath = Path.GetTempPath(); var testRawFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"small.RAW"); var parseInput = new ParseInput(testRawFile, tempFilePath, OutputFormat.Mgf, false, MetadataFormat.NON, false, "coll", "run", "sub"); RawFileParser.Parse(parseInput); // Do this for the mzLib library issue var tempFileName = Path.GetTempPath() + "elements.dat"; UsefulProteomicsDatabases.Loaders.LoadElements(tempFileName); var mgfData = Mgf.LoadAllStaticData(Path.Combine(tempFilePath, "small.mgf")); Assert.AreEqual(34, mgfData.NumSpectra); Assert.IsEmpty(mgfData.GetMS1Scans()); }
public static List <ScanHeaderInfo> FileScanHeaderInfo(string fullFilePathWithExtension) { string filename = Path.GetFileName(fullFilePathWithExtension); List <ScanHeaderInfo> scanHeaderInfoList = new(); switch (GetDataFileType(fullFilePathWithExtension)) { case DataFileType.Thermo: ThermoRawFileReader staticRaw = ThermoRawFileReader.LoadAllStaticData(fullFilePathWithExtension); foreach (MsDataScan item in staticRaw) { scanHeaderInfoList.Add(new ScanHeaderInfo(fullFilePathWithExtension, filename, item.OneBasedScanNumber, item.RetentionTime)); } break; case DataFileType.mzML: List <MsDataScan> mzmlDataScans = Mzml.LoadAllStaticData(fullFilePathWithExtension).GetAllScansList(); foreach (MsDataScan item in mzmlDataScans) { scanHeaderInfoList.Add(new ScanHeaderInfo(fullFilePathWithExtension, filename, item.OneBasedScanNumber, item.RetentionTime)); } break; case DataFileType.mgf: List <MsDataScan> mgfDataScans = Mgf.LoadAllStaticData(fullFilePathWithExtension).GetAllScansList(); foreach (MsDataScan item in mgfDataScans) { scanHeaderInfoList.Add(new ScanHeaderInfo(fullFilePathWithExtension, filename, item.OneBasedScanNumber, item.RetentionTime)); } break; case DataFileType.unknown: default: break; } return(scanHeaderInfoList); }
public static void TestDynamicMgf(string fileName) { string filePath = Path.Combine(TestContext.CurrentContext.TestDirectory, "DataFiles", fileName); Mgf staticMgf = Mgf.LoadAllStaticData(filePath); MgfDynamicData dynamicMgf = new MgfDynamicData(filePath); foreach (MsDataScan staticScan in staticMgf.GetAllScansList()) { MsDataScan dynamicScan = dynamicMgf.GetOneBasedScanFromDynamicConnection(staticScan.OneBasedScanNumber); Assert.That(dynamicScan.OneBasedScanNumber == staticScan.OneBasedScanNumber); Assert.That(dynamicScan.MsnOrder == staticScan.MsnOrder); if (!double.IsNaN(dynamicScan.RetentionTime) || !double.IsNaN(staticScan.RetentionTime)) { Assert.That(dynamicScan.RetentionTime == staticScan.RetentionTime); } Assert.That(dynamicScan.Polarity == staticScan.Polarity); Assert.That(dynamicScan.ScanWindowRange.Minimum == staticScan.ScanWindowRange.Minimum); Assert.That(dynamicScan.ScanWindowRange.Maximum == staticScan.ScanWindowRange.Maximum); Assert.That(dynamicScan.ScanFilter == staticScan.ScanFilter); Assert.That(dynamicScan.NativeId == staticScan.NativeId); Assert.That(dynamicScan.IsCentroid == staticScan.IsCentroid); Assert.That(dynamicScan.IsCentroid == staticScan.IsCentroid); Assert.That(dynamicScan.InjectionTime == staticScan.InjectionTime); Assert.That(dynamicScan.NoiseData == staticScan.NoiseData); Assert.That(dynamicScan.IsolationMz == staticScan.IsolationMz); Assert.That(dynamicScan.SelectedIonChargeStateGuess == staticScan.SelectedIonChargeStateGuess); Assert.That(dynamicScan.SelectedIonIntensity == staticScan.SelectedIonIntensity); Assert.That(dynamicScan.SelectedIonMZ == staticScan.SelectedIonMZ); Assert.That(dynamicScan.DissociationType == staticScan.DissociationType); Assert.That(dynamicScan.IsolationWidth == staticScan.IsolationWidth); Assert.That(dynamicScan.OneBasedPrecursorScanNumber == staticScan.OneBasedPrecursorScanNumber); Assert.That(dynamicScan.SelectedIonMonoisotopicGuessIntensity == staticScan.SelectedIonMonoisotopicGuessIntensity); Assert.That(dynamicScan.SelectedIonMonoisotopicGuessMz == staticScan.SelectedIonMonoisotopicGuessMz); if (dynamicScan.IsolationRange != null || staticScan.IsolationRange != null) { Assert.That(dynamicScan.IsolationRange.Minimum == staticScan.IsolationRange.Minimum); Assert.That(dynamicScan.IsolationRange.Maximum == staticScan.IsolationRange.Maximum); } Assert.That(dynamicScan.MassSpectrum.XArray.Length == staticScan.MassSpectrum.XArray.Length); Assert.That(dynamicScan.MassSpectrum.YArray.Length == staticScan.MassSpectrum.YArray.Length); for (int i = 0; i < staticScan.MassSpectrum.XArray.Length; i++) { double staticMz = staticScan.MassSpectrum.XArray[i]; double staticIntensity = staticScan.MassSpectrum.YArray[i]; double dynamicMz = dynamicScan.MassSpectrum.XArray[i]; double dynamicIntensity = dynamicScan.MassSpectrum.YArray[i]; Assert.That(dynamicMz == staticMz); Assert.That(dynamicIntensity == staticIntensity); } } }