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); }
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; } }
/// <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); }