예제 #1
0
        private void mnuItemQnorm_Click(object sender, EventArgs e)
        {
            var selectedNodeTag = (clsDatasetTreeNode)ctlTreeView.SelectedNode.Tag;

            if (!ValidateNodeIsSelected(selectedNodeTag))
            {
                return;
            }

            var qnOK = false;


            if (!ValidateExpressionsLoaded("normalize"))
            {
                return;
            }

            if (!ValidateDataMatrixTableSelected(selectedNodeTag))
            {
                return;
            }

            // check if there's enough complete data to do Quantile normalization
            var rCmd = "qnOK <- IsCompleteData(" + selectedNodeTag.RDatasetName + ")";

            try
            {
                mRConnector.EvaluateNoReturn(rCmd);
                qnOK = mRConnector.GetSymbolAsBool("qnOK");
            }
            catch (Exception ex)
            {
                MessageBox.Show("R.Net failed: " + ex.Message, "Error!");
            }

            if (!qnOK)
            {
                MessageBox.Show("Not enough complete data for Quantile Normalization", "Too many missing",
                                MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            #region Hook Threading events

            m_BackgroundWorker.DoWork             += m_BackgroundWorker_Quantile;
            m_BackgroundWorker.RunWorkerCompleted += m_BackgroundWorker_QuantileCompleted;

            #endregion

            mQuantileNormalizationParams = new Purgatorio.clsQnormPar
            {
                RDataset    = selectedNodeTag.RDatasetName,
                DataSetName = selectedNodeTag.DataText
            };

            Add2AnalysisHTable(mQuantileNormalizationParams, "Quantile_Normalization");
            //rCmd = "quaNormEset <- quantileN(" + selectedNode.RDatasetName + ")";
            rCmd = mQuantileNormalizationParams.RCommand;

            m_BackgroundWorker.RunWorkerAsync(rCmd);
            mProgressForm.Reset("Quantile Normalizing ...");
            mProgressForm.ShowDialog();

            #region Unhook Threading events

            m_BackgroundWorker.DoWork             -= m_BackgroundWorker_Quantile;
            m_BackgroundWorker.RunWorkerCompleted -= m_BackgroundWorker_QuantileCompleted;

            #endregion
        }
        private void mnuItemQnorm_Click(object sender, EventArgs e)
        {
            var mclsSelected = (clsDatasetTreeNode)ctltreeView.SelectedNode.Tag;

            if (!ValidateNodeIsSelected(mclsSelected))
            {
                return;
            }

            var qnOK = false;

            if (!ValidateExpressionsLoaded("normalize"))
            {
                return;
            }

            if (!ValidateDataMatrixTableSelected(mclsSelected))
            {
                return;
            }

            // check if there's enough complete data to do Quantile normalization
            var rcmd = "qnOK <- IsCompleteData(" + mclsSelected.mstrRdatasetName + ")";
            try
            {
                mRConnector.EvaluateNoReturn(rcmd);
                qnOK = mRConnector.GetSymbolAsBool("qnOK");
            }
            catch (Exception ex)
            {
                MessageBox.Show("R.Net failed: " + ex.Message, "Error!");
            }

            if (!qnOK)
            {
                MessageBox.Show("Not enough complete data for Quantile Normalization", "Too many missing",
                                MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            #region Hook Threading events

            m_BackgroundWorker.DoWork += m_BackgroundWorker_Quantile;
            m_BackgroundWorker.RunWorkerCompleted += m_BackgroundWorker_QuantileCompleted;

            #endregion

            mclsQnormPar = new Purgatorio.clsQnormPar
            {
                Rdataset = mclsSelected.mstrRdatasetName,
                DataSetName = mclsSelected.mstrDataText
            };

            Add2AnalysisHTable(mclsQnormPar, "Quantile_Normalization");
            //rcmd = "quaNormEset <- quantileN(" + mclsSelected.mstrRdatasetName + ")";
            rcmd = mclsQnormPar.Rcmd;

            m_BackgroundWorker.RunWorkerAsync(rcmd);
            mfrmShowProgress.Message = "Quantile Normalizing ...";
            mfrmShowProgress.ShowDialog();

            #region Unhook Threading events

            m_BackgroundWorker.DoWork -= m_BackgroundWorker_Quantile;
            m_BackgroundWorker.RunWorkerCompleted -= m_BackgroundWorker_QuantileCompleted;

            #endregion
        }