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