Beispiel #1
0
        public void TestLcmsWarpWrite(params string[] paths)
        {
            var fullPaths       = new List <string>();
            var fullOutputPaths = new List <string>();

            foreach (var path in paths)
            {
                fullPaths.Add(GetPath(path));
                fullOutputPaths.Add(GetOutputPath(path));
            }
            var options = new Options
            {
                RegressionType = RegressionType.MixtureRegression
            };

            var analysisProcessor = new AnalysisJobProcessor(options);
            var individualJobs    = fullPaths.Select(path => new AnalysisJobItem(path, LcmsIdentificationTool.MsgfPlus)).ToList();
            var bWorker           = new BackgroundWorker();

            var jobs = analysisProcessor.Process(individualJobs, bWorker);

            var databaseProcess = new MtdbProcessor(options);

            databaseProcess.Process(jobs.Select(job => job.DataSet).ToList(), bWorker);
        }
Beispiel #2
0
        public void TestWriteReal(params string[] paths)
        {
            var fullPaths       = new List <string>();
            var fullOutputPaths = new List <string>();

            foreach (var path in paths)
            {
                fullPaths.Add(GetPath(path));
                fullOutputPaths.Add(GetOutputPath(path));
            }
            var options = new Options();

            var analysisProcessor = new AnalysisJobProcessor(options);
            var individualJobs    = fullPaths.Select(path => new AnalysisJobItem(path, LcmsIdentificationTool.MsgfPlus)).ToList();
            var bWorker           = new BackgroundWorker();

            var jobs = analysisProcessor.Process(individualJobs, bWorker);

            var databaseProcess = new MtdbProcessor(options);

            var database = databaseProcess.Process(jobs.Select(job => job.DataSet).ToList(), bWorker);

            var writer = new SqLiteTargetDatabaseWriter();

            writer.Write(database, options, GetTestSuiteDataPath(@"Output.mtdb"));
        }
        public void LinearRegression(string jobDirectory, string jobList, int numJobs)
        {
            var jobDirectoryPath = GetPath(jobDirectory);
            var jobListPath      = GetPath(jobList);
            var num     = 0;
            var options = new Options();

            PeptideCache.Clear();
            var dataSets = new List <LcmsDataSet>();

            using (var sr = new StreamReader(jobListPath))
            {
                var pathName = sr.ReadLine();
                while (pathName != null && num < numJobs)
                {
                    pathName = Path.Combine(jobDirectoryPath, pathName);
                    var reader = PhrpReaderFactory.Create(pathName, options);
                    dataSets.Add(reader.Read(pathName));
                    pathName = sr.ReadLine();
                    num++;
                }
            }
            var processor = new MtdbProcessor(options);

            processor.Process(dataSets, new BackgroundWorker());
            foreach (var set in dataSets)
            {
                Assert.AreNotEqual(set.RegressionResult.RSquared, 0);

                // Set to 1.000001 due to (for some reason) RSquared occasionally
                // being calculated as 1.00000000000044
                Assert.Less(set.RegressionResult.RSquared, 1.000001);
            }
        }
        public void BackgroundWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            mAbortRequested = false;

            var mtdbProcessor = new MtdbProcessor(m_analysisJobViewModel.Options);

            mtdbProcessor.AlignmentComplete += mtdbProcessor_AlignmentComplete;
            mtdbProcessor.ProgressChanged   += mtdbProcessor_ProgressChanged;
            HostProcessWindow.MainBackgroundWorker.ReportProgress(0);

            try
            {
                e.Result =
                    mtdbProcessor.Process(
                        m_analysisJobViewModel.AnalysisJobItems.Select(job => job.DataSet).ToList(), HostProcessWindow.MainBackgroundWorker);

                if (HostProcessWindow.MainBackgroundWorker.CancellationPending || mAbortRequested)
                {
                    e.Cancel = true;
                }
            }
            catch (Exception ex)
            {
                e.Result = ex;
            }
        }
Beispiel #5
0
        /// <summary>
        /// Create a MTDB with the given files
        /// </summary>
        /// <param name="paths">Paths to the files to process</param>
        /// <param name="dbFileName">Name of MTDB to create</param>
        /// <returns></returns>
        public static TargetDatabase CreateDB(List <string> paths, string dbFileName)
        {
            var options           = new Options();
            var analysisProcessor = new AnalysisJobProcessor(options);
            var mtdbProcessor     = new MtdbProcessor(options);
            var bWorker           = new BackgroundWorker();
            var writer            = new SqLiteTargetDatabaseWriter();

            var reader           = new SqLiteTargetDatabaseReader();
            var existingDatabase = new TargetDatabase();

            IEnumerable <LcmsDataSet> priorDataSets = new List <LcmsDataSet>();

            if (File.Exists(dbFileName))
            {
                priorDataSets    = reader.Read(dbFileName);
                existingDatabase = reader.ReadDb(dbFileName);
            }
            var priorDatasetList = priorDataSets.Select(x => x.Name).ToList();
            var listJobs         = new List <AnalysisJobItem>();

            foreach (var path in paths)
            {
                if (File.Exists(path))
                {
                    var tool    = DetermineTool(path);
                    var jobName = path.Split('\\').Last();
                    if (tool == LcmsIdentificationTool.NOT_SUPPORTED)
                    {
                        Console.WriteLine(jobName + " is not a supported LCMS format for MTDBCreator;\nExcluding this file from MTDB creation\n");
                    }
                    else if (priorDatasetList.Any(x => jobName.Contains(x)))
                    {
                        Console.WriteLine(jobName + " is part of prior analysis;\nExcluding from reading portion of MTDB creation\n");
                    }
                    else
                    {
                        var individualJob = new AnalysisJobItem(path, tool);
                        listJobs.Add(individualJob);
                    }
                }
                else
                {
                    Console.WriteLine(path + " does not exist;\nExcluding this file in MTDB creation\n");
                }
            }
            if (listJobs.Count != 0)
            {
                var processedjobs = analysisProcessor.Process(listJobs, bWorker);

                var datasetList = processedjobs.Select(job => job.DataSet).ToList();
                if (priorDataSets != null)
                {
                    datasetList.AddRange(priorDataSets);
                }
                var database = mtdbProcessor.Process(datasetList, bWorker);

                writer.Write(database, options, dbFileName);

                return(database);
            }

            return(existingDatabase);
        }