private void cbOpen_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(txtFilePath.Text)) { MessageBox.Show("No input file is specified"); return; } string filePath = txtFilePath.Text.Trim(); if (!Directory.Exists(filePath)) { MessageBox.Show(string.Format("Folder {0} does not exist.", filePath)); return; } if (!MidacFileAccess.FileHasImsData(filePath)) { lbFileContents.Text = "File does not have IM-MS data (not opened)"; lbFileContents2.Text = ""; gbCCS.Enabled = false; return; } if (m_reader != null) { m_reader.Close(); } m_reader = null; // Returns a reader alredy opened to the specified file path m_reader = MidacFileAccess.ImsDataReader(filePath); m_currentFilePath = filePath; // Get overall file metadata IMidacFileInfo fileInfo = m_reader.FileInfo; // show something about the contents of the file string tfsType = ""; if (m_reader.HasPeakTfsSpectra) { tfsType += "Peak"; } if (m_reader.HasProfileTfsSpectra) { tfsType += tfsType.Length > 0 ? " and Profile" : "Profile"; } lbFileContents.Text = string.Format("{0} frames with max of {1} drift bins/frame; with {2} Total Frame Spectra for each frame", fileInfo.NumFrames, fileInfo.MaxNonTfsMsPerFrame, tfsType); gbCCS.Enabled = m_reader.HasSingleFieldCcsInformation; lbFileContents2.Text = string.Format("{0} prepared for CCS conversions", m_reader.HasSingleFieldCcsInformation ? "Is" : "Is NOT"); // If there are high/low fragmentation frames, find out how many if (fileInfo.HasHiLoFragData) { IMidacMsFiltersChrom chromFilters = MidacFileAccess.DefaultMsChromFilters; chromFilters.ApplicableFilters = ApplicableFilters.FragmentationClass; chromFilters.FragmentationClass = FragmentationClass.HighEnergy; int numHighFrames = m_reader.FilteredFrameNumbers(chromFilters).Length; chromFilters.FragmentationClass = FragmentationClass.LowEnergy; int numLowFrames = m_reader.FilteredFrameNumbers(chromFilters).Length; rbAllIonsAll.Enabled = true; rbAllIonsHigh.Enabled = true; rbAllIonsLow.Enabled = true; lbStatusAllIons.Visible = true; lbStatusAllIons.Text = string.Format("{0} High-CE frames; {1} Low-CE frames", numHighFrames, numLowFrames); } else { rbAllIonsAll.Enabled = false; rbAllIonsHigh.Enabled = false; rbAllIonsLow.Enabled = false; lbStatusAllIons.Visible = false; } // Force read of some data before we start; gets some assertions out of the way. IMidacUnitConverter converter = m_reader.FrameInfo(1).FrameUnitConverter; }
private void cbReadFrameMs_Click(object sender, EventArgs e) { if (m_reader == null) { MessageBox.Show("File is not open"); return; } int reps = 1; int.TryParse(txtReps.Text, out reps); try { int[] frameNumbers = null; if (rbAllIonsHigh.Enabled) { IMidacMsFiltersChrom chromFilters = MidacFileAccess.DefaultMsChromFilters; if (rbAllIonsHigh.Checked) { chromFilters.ApplicableFilters = ApplicableFilters.FragmentationClass; chromFilters.FragmentationClass = FragmentationClass.HighEnergy; } else if (rbAllIonsLow.Checked) { chromFilters.ApplicableFilters = ApplicableFilters.FragmentationClass; chromFilters.FragmentationClass = FragmentationClass.LowEnergy; } frameNumbers = m_reader.FilteredFrameNumbers(chromFilters); } else { frameNumbers = new int[m_reader.FileInfo.NumFrames]; for (int i = 0; i < frameNumbers.Length; i++) { frameNumbers[i] = i + 1; } } cbBrowse.Enabled = false; cbOpen.Enabled = false; cbReadProfileTfs.Enabled = false; cbReadFrameMs.Enabled = false; gbProfileTfsFmt.Enabled = false; // int numFrames = m_reader.FileInfo.NumFrames; int numDriftBins = m_reader.FileInfo.MaxNonTfsMsPerFrame; Stopwatch sw = new Stopwatch(); sw.Reset(); lbStatus.Text = "Processing"; this.Refresh(); m_msCount = 0; m_tic = 0.0; m_sumPoints = 0; m_sumNzPoints = 0; ((MidacImsFileReader)m_reader).ClearCounts(); for (int i = reps; i > 0; i--) { if (rbFrameMsMidacSpecData.Checked) { ReadFrameMsMidacSpecData(MidacSpecFormat.Profile, ref sw, frameNumbers, numDriftBins); } if (rbFrameZtMsMidacSpecData.Checked) { ReadFrameMsMidacSpecData(MidacSpecFormat.ZeroTrimmed, ref sw, frameNumbers, numDriftBins); } if (rbFrameZbMsMidacSpecData.Checked) { ReadFrameMsMidacSpecData(MidacSpecFormat.ZeroBounded, ref sw, frameNumbers, numDriftBins); } if (rbFrameMdMsMidacSpecData.Checked) { ReadFrameMsMidacSpecData(MidacSpecFormat.Metadata, ref sw, frameNumbers, numDriftBins); } if (rbFrameMsReuseMidacSpecData.Checked) { ReadFrameMsReuseMidacSpecData(MidacSpecFormat.Profile, ref sw, frameNumbers, numDriftBins); } #if PNNL_VERSION // placeholder for internal tests if (rbFrameMsArrayOfIters.Checked) { ReadFrameMsArrayOfIters(ref sw, numFrames, numDriftBins); } #endif } ((MidacImsFileReader)m_reader).CheckCounts(); m_msCount /= reps; double ticks = sw.ElapsedTicks; double ticksPerSec = Stopwatch.Frequency; double milliseconds = (1000.0 * ticks) / ticksPerSec / reps; m_tic /= reps; m_sumPoints /= reps; m_sumNzPoints /= reps; IMidacFileInfo info = m_reader.FileInfo; if (chkFrameMsDoSumming.Checked && !rbFrameMdMsMidacSpecData.Checked) { lbStatus.Text = string.Format("Done in {0:##,#.###} ms ({1:##,#.###} us/spectrum; {2:##,#} non-empty spectra; TIC = {3:##,#}; points = {4:##,#}; NZ = {5:##,#})", milliseconds, 1000 * milliseconds / m_msCount, m_msCount, m_tic, m_sumPoints, m_sumNzPoints); } else { // no TIC lbStatus.Text = string.Format("Done in {0:##,#.###} ms ({1:##,#.###} us/spectrum; {2:##,#} non-empty spectra; points = {3:##,#}; NZ = {4:##,#})", milliseconds, 1000 * milliseconds / m_msCount, m_msCount, m_sumPoints, m_sumNzPoints); } } finally { cbBrowse.Enabled = true; cbOpen.Enabled = true; cbReadProfileTfs.Enabled = true; cbReadFrameMs.Enabled = true; gbProfileTfsFmt.Enabled = true; } }