Esempio n. 1
0
        private void CreatSpectralCountTablesSEQSYN(ICollection <string> datasetNames, DoWorkEventArgs e)
        {
            var dir = new DirectoryInfo(mstrAnalysisFolder);

            foreach (var f in dir.GetFiles())
            {
                if (!f.Name.EndsWith("_syn.txt", StringComparison.CurrentCultureIgnoreCase))
                {
                    continue;
                }

                var dName = f.Name.Substring(0, f.Name.IndexOf("_syn.txt", StringComparison.CurrentCultureIgnoreCase));
                if (datasetNames.Contains(dName))
                {
                    successfulDataSets.Add(dName);
                }
            }

            if (successfulDataSets.Count > 1)
            {
                var fileList   = @"c(""" + successfulDataSets[0];
                var rcmd       = "X <- createMSMSdt.SpectralCount(";
                var dataFolder = mstrAnalysisFolder.Replace("\\", "/");
                for (var i = 1; i < successfulDataSets.Count; i++)
                {
                    fileList = fileList + @""",""" + successfulDataSets[i];
                }
                fileList += @""")";

                rcmd += fileList + @",""" + dataFolder + @""",XcRank=" + XcRank +
                        "," + XCorrTh + "," + DelCn2Th + "," + TrypState + ")";

                try
                {
                    backgroundWorker1.ReportProgress(70,
                                                     "Creating peptide count table ... may take a while for large datasets ...");
                    rConnector.EvaluateNoReturn(rcmd);
                    rConnector.EvaluateNoReturn("Eset <- X$eset");
                    rConnector.EvaluateNoReturn("EsetRows <- X$rows");
                    var rows = rConnector.GetSymbolAsNumbers("EsetRows");
                    if ((int)rows[0] > 0)
                    {
                        if (rConnector.GetTableFromRmatrix("Eset"))
                        {
                            mDTEset           = rConnector.DataTable.Copy();
                            mDTEset.TableName = "Eset";
                            rConnector.EvaluateNoReturn("cat(\"Spectral count data obtained.\n\")");
                            e.Result = enmDataType.ESET;
                        }
                        else
                        {
                            e.Result = null;
                        }
                    }
                    else
                    {
                        e.Result = null;
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("R.Net failed: " + ex.Message, "Error!");
                    e.Result = null;
                    e.Cancel = true;
                }
                backgroundWorker1.ReportProgress(100, "Done.");
            }
            else
            {
                backgroundWorker1.ReportProgress(100, "You need at leaset two unique datasets... Giving up.");
            }
        }