Ejemplo n.º 1
0
        /*private double curMRMPrecursor;
         * private bool MRMFilter( ManagedScan scan )
         * {
         *      if( scan.getPrecursorScanInfo( 0 ).Mz == curMRMPrecursor )
         *              return true;
         *      return false;
         * }*/

        private void InitForm(Form mdiParent)
        {
            MdiParent = mdiParent;
            InitializeComponent();

            initPeakAnnotationSettings();

            scanNumberComboBox.AccessibleName    = "scanNumberComboBox";
            scanNumberComboBox.Anchor            = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
            scanNumberComboBox.Enabled           = false;
            scanNumberComboBox.IntegralHeight    = true;
            scanNumberComboBox.ItemHeight        = 13;
            scanNumberComboBox.ListDisplayMember = "ComboBoxView";
            scanNumberComboBox.Location          = new System.Drawing.Point(397, 3);
            scanNumberComboBox.Name                          = "scanNumberComboBox";
            scanNumberComboBox.SelectedIndex                 = -1;
            scanNumberComboBox.SelectedItem                  = null;
            scanNumberComboBox.SelectedValue                 = null;
            scanNumberComboBox.Size                          = new System.Drawing.Size(72, 22);
            scanNumberComboBox.TabIndex                      = 8;
            scanNumberComboBox.TextDisplayMember             = "Id";
            scanNumberComboBox.ValueMember                   = "Id";
            scanNumberComboBox.ListBox.SelectedIndexChanged += new EventHandler(scanNumberComboBox_SelectedIndexChanged);
            scanNumberComboBox.ListHeaderText                = scanNumberHeaderString;
            scanNumberComboBoxToolStripHost                  = new ToolStripControlHost(scanNumberComboBox);
            scanNumberComboBoxToolStripHost.Alignment        = ToolStripItemAlignment.Right;
            if (SeemsMdiParent != null)
            {
                SeemsMdiParent.ToolStrip1.Items.Insert(SeemsMdiParent.ToolStrip1.Items.IndexOf(SeemsMdiParent.ToolStripScanLabel), scanNumberComboBoxToolStripHost);
            }

            scanNumberChangedTimer.Tick    += new EventHandler(scanNumberChangedTimer_Tick);
            scanNumberChangedTimer.Interval = 500;

            webBrowserLeftKeyDownTimer.Tick    += new EventHandler(webBrowserLeftKeyDownTimer_Tick);
            webBrowserLeftKeyDownTimer.Interval = 50;

            webBrowserRightKeyDownTimer.Tick    += new EventHandler(webBrowserRightKeyDownTimer_Tick);
            webBrowserRightKeyDownTimer.Interval = 50;

            instrumentInterface = new ManagedInstrumentInterface();
            if (!instrumentInterface.initInterface())
            {
                MessageBox.Show("Fatal error: failed to initialize data interface.");
                Process.GetCurrentProcess().Kill();
            }
        }
Ejemplo n.º 2
0
        public DataSource(string filepath)
        {
            instrumentInterface = new ManagedInstrumentInterface();
            if (!instrumentInterface.initInterface())
            {
                throw new Exception("failed to initialize data interface.");
            }

            setInputFileWaitHandle = new EventWaitHandle(false, EventResetMode.ManualReset);
            setInputFileDelegate   = new ParameterizedThreadStart(startSetInputFile);
            Thread setInputFileThread = new Thread(setInputFileDelegate);

            //setInputFileThread.IsBackground = true;
            setInputFileThread.Start((object)filepath);
            if (!instrumentInterface.setInputFile(filepath))
            {
                throw new Exception("LibMSR could not open the file");
            }
        }
Ejemplo n.º 3
0
        /*private double curMRMPrecursor;
        private bool MRMFilter( ManagedScan scan )
        {
            if( scan.getPrecursorScanInfo( 0 ).Mz == curMRMPrecursor )
                return true;
            return false;
        }*/
        private void InitForm( Form mdiParent )
        {
            MdiParent = mdiParent;
            InitializeComponent();

            initPeakAnnotationSettings();

            scanNumberComboBox.AccessibleName = "scanNumberComboBox";
            scanNumberComboBox.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right ) ) );
            scanNumberComboBox.Enabled = false;
            scanNumberComboBox.IntegralHeight = true;
            scanNumberComboBox.ItemHeight = 13;
            scanNumberComboBox.ListDisplayMember = "ComboBoxView";
            scanNumberComboBox.Location = new System.Drawing.Point( 397, 3 );
            scanNumberComboBox.Name = "scanNumberComboBox";
            scanNumberComboBox.SelectedIndex = -1;
            scanNumberComboBox.SelectedItem = null;
            scanNumberComboBox.SelectedValue = null;
            scanNumberComboBox.Size = new System.Drawing.Size( 72, 22 );
            scanNumberComboBox.TabIndex = 8;
            scanNumberComboBox.TextDisplayMember = "Id";
            scanNumberComboBox.ValueMember = "Id";
            scanNumberComboBox.ListBox.SelectedIndexChanged += new EventHandler( scanNumberComboBox_SelectedIndexChanged );
            scanNumberComboBox.ListHeaderText = scanNumberHeaderString;
            scanNumberComboBoxToolStripHost = new ToolStripControlHost( scanNumberComboBox );
            scanNumberComboBoxToolStripHost.Alignment = ToolStripItemAlignment.Right;
            if( SeemsMdiParent != null )
                SeemsMdiParent.ToolStrip1.Items.Insert( SeemsMdiParent.ToolStrip1.Items.IndexOf( SeemsMdiParent.ToolStripScanLabel ), scanNumberComboBoxToolStripHost );

            scanNumberChangedTimer.Tick += new EventHandler( scanNumberChangedTimer_Tick );
            scanNumberChangedTimer.Interval = 500;

            webBrowserLeftKeyDownTimer.Tick += new EventHandler( webBrowserLeftKeyDownTimer_Tick );
            webBrowserLeftKeyDownTimer.Interval = 50;

            webBrowserRightKeyDownTimer.Tick += new EventHandler( webBrowserRightKeyDownTimer_Tick );
            webBrowserRightKeyDownTimer.Interval = 50;

            instrumentInterface = new ManagedInstrumentInterface();
            if( !instrumentInterface.initInterface() )
            {
                MessageBox.Show( "Fatal error: failed to initialize data interface." );
                Process.GetCurrentProcess().Kill();
            }
        }
Ejemplo n.º 4
0
        public bool SetInputFile(string filepath)
        {
            ManagedInstrumentInterface tempInterface = new ManagedInstrumentInterface();

            try
            {
                if (!tempInterface.initInterface())
                {
                    throw new Exception("failed to initialize temporary data interface.");
                }

                if (!File.Exists(filepath))
                {
                    throw new ArgumentException("file does not exist");
                }
                sourceFilepath = filepath;

                OnStatusReport("Initializing interface for source file...");

                if (!tempInterface.setInputFile(sourceFilepath))
                {
                    throw new Exception("LibMSR could not open the file");
                }
                tempInterface.setCentroiding(false, false);
            } catch (Exception ex)
            {
                string message = "SeeMS encountered an error opening \"" + filepath + "\" (" + ex.Message + ")";
                if (ex.InnerException != null)
                {
                    message += "\n\nAdditional information: " + ex.InnerException.Message;
                }
                MessageBox.Show(message,
                                "Error opening source file",
                                MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1,
                                0, false);
                return(false);
            }

            try
            {
                OnStatusReport("Loading metadata from source file...");
                OnProgressReport(0);

                int totalScanCount = tempInterface.getTotalScanCount();
                int curScanCount   = 0;

                if (totalScanCount > 1)
                {
                    ManagedScan chromatogram = tempInterface.getChromatogram();
                    if (chromatogram == null)
                    {
                        throw new Exception("failed to generate chromatogram");
                    }
                    else
                    {
                        sourceScanHeaders.Add(new SeemsScan(chromatogram, "Chromatogram"));
                    }
                }

                ParentToFragmentMap transitionMap = new ParentToFragmentMap();

                // get all scans by sequential access
                ManagedScan curScan = tempInterface.getScanHeader(instrumentInterface.getFirstScanNumber());
                while (curScan != null)
                {
                    ++curScanCount;
                    if ((curScanCount % 100) == 0 || curScanCount == totalScanCount)
                    {
                        OnStatusReport(String.Format("Loading metadata from source file ({0} of {1})...",
                                                     curScanCount, totalScanCount));
                        OnProgressReport(curScanCount * 100 / totalScanCount);
                    }

                    if (curScan.ScanType == ScanTypeEnum.SRM || curScan.ScanType == ScanTypeEnum.MRM)
                    {
                        ManagedScan curScanWithPeakData = tempInterface.getScan(curScan.ScanNumber);
                        if (curScanWithPeakData.getTotalPeakCount() > 0)
                        {
                            if (curScan.getPrecursorScanCount() > 0)
                            {
                                FragmentToChromatogramMap fragmentMap = transitionMap[curScan.getPrecursorScanInfo(0).Mz];
                                for (int i = 0; i < curScanWithPeakData.getTotalPeakCount(); ++i)
                                {
                                    fragmentMap[curScanWithPeakData.getPeakMz(i)].Add(curScan.RetentionTime, curScanWithPeakData.getPeakIntensity(i));
                                }
                            }
                        }
                    }
                    else
                    {
                        sourceScanHeaders.Add(new SeemsScan(curScan));
                    }
                    curScan = tempInterface.getScanHeader();
                }
                OnProgressReport(100);

                if (transitionMap.Count > 0)
                {
                    OnStatusReport("Generating chromatograms for SRM/MRM data...");
                    OnProgressReport(0);
                    Map <double, RefPair <ManagedScan, Map <double, ManagedScan> > > transitionChromatograms = new Map <double, RefPair <ManagedScan, Map <double, ManagedScan> > >();
                    foreach (ParentToFragmentMap.MapPair pfPair in transitionMap)
                    {
                        Map <double, List <double> > parentPeaks = new Map <double, List <double> >();
                        foreach (FragmentToChromatogramMap.MapPair fcPair in pfPair.Value)
                        {
                            ManagedScan fragmentChromatogram = transitionChromatograms[pfPair.Key].second[fcPair.Key] = new ManagedScan();
                            foreach (Chromatogram.MapPair tiPair in fcPair.Value)
                            {
                                fragmentChromatogram.addPeak(tiPair.Key, tiPair.Value);
                                parentPeaks[tiPair.Key].Add(tiPair.Value);
                            }
                        }

                        ManagedScan parentChromatogram  = transitionChromatograms[pfPair.Key].first = new ManagedScan();
                        ManagedScan productChromatogram = transitionChromatograms[pfPair.Key].second[pfPair.Key] = new ManagedScan();
                        foreach (Map <double, List <double> > .MapPair itr in parentPeaks)
                        {
                            double totalIntensity = 0, productIntensity = 1;
                            foreach (double intensity in itr.Value)
                            {
                                totalIntensity   += intensity;
                                productIntensity *= intensity;
                            }
                            parentChromatogram.addPeak(itr.Key, totalIntensity);
                            productChromatogram.addPeak(itr.Key, productIntensity);
                        }

                        OnProgressReport(transitionChromatograms.Count * 100 / transitionMap.Count);
                    }

                    foreach (Map <double, RefPair <ManagedScan, Map <double, ManagedScan> > > .MapPair kvp1 in transitionChromatograms)
                    {
                        sourceScanHeaders.Add(new SeemsScan(kvp1.Value.first, String.Format("{0} (Sum)", Math.Round(kvp1.Key, 2))));
                        sourceScanHeaders.Add(new SeemsScan(kvp1.Value.second[kvp1.Key], String.Format("{0} (Product)", Math.Round(kvp1.Key, 2))));
                        foreach (Map <double, ManagedScan> .MapPair kvp2 in kvp1.Value.second)
                        {
                            if (kvp1.Key != kvp2.Key)
                            {
                                sourceScanHeaders.Add(new SeemsScan(kvp2.Value, String.Format("{0} -> {1}", Math.Round(kvp1.Key, 2), Math.Round(kvp2.Key, 2))));
                            }
                        }
                    }

                    OnStatusReport("Finished loading source metadata.");
                    OnProgressReport(100);
                }
            } catch (Exception ex)
            {
                string message = "SeeMS encountered an error reading metadata from \"" + filepath + "\" (" + ex.Message + ")";
                if (ex.InnerException != null)
                {
                    message += "\n\nAdditional information: " + ex.InnerException.Message;
                }
                MessageBox.Show(message,
                                "Error reading source metadata",
                                MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1,
                                0, false);
                OnStatusReport("Failed to read source metadata.");
                return(false);
            }

            return(true);
        }