public void Test1() { TargetedWorkflowParameters o16o18workflowParameters = new O16O18WorkflowParameters(); var parentWorkflow = new O16O18IqWorkflow(o16o18workflowParameters); TargetedWorkflowParameters workflowParameters = new BasicTargetedWorkflowParameters(); var childWorkflow = new BasicIqWorkflow(workflowParameters); IqTarget parentTarget = new IqChargeStateTarget(); IqTarget childTarget1 = new IqChargeStateTarget(); IqTarget childTarget2 = new IqChargeStateTarget(); IqTarget childTarget3 = new IqChargeStateTarget(); parentTarget.AddTarget(childTarget1); parentTarget.AddTarget(childTarget2); parentTarget.AddTarget(childTarget3); var workflowAssigner = new IqWorkflowAssigner(); workflowAssigner.AssignWorkflowToParent(parentWorkflow, parentTarget); workflowAssigner.AssignWorkflowToChildren(childWorkflow, parentTarget); Assert.IsNotNull(parentTarget.ChildTargets().First().Workflow); var childTargets = parentTarget.ChildTargets(); foreach (var childTarget in childTargets) { Assert.IsTrue(childTarget.Workflow is BasicIqWorkflow); } Assert.IsTrue(parentTarget.Workflow is O16O18IqWorkflow); }
public void ChromCorrelatorTest1() { var rawFilename = @"D:\Data\O16O18\Vlad_Mouse\mhp_plat_test_1_14April13_Frodo_12-12-04.raw"; var run = new RunFactory().CreateRun(rawFilename); WorkflowExecutorBaseParameters executorBaseParameters = new BasicTargetedWorkflowExecutorParameters(); var executor = new IqExecutor(executorBaseParameters, run); executor.LoadChromData(run); var workflowAssigner = new IqWorkflowAssigner(); TargetedWorkflowParameters workflowParameters = new O16O18WorkflowParameters(); IqWorkflow workflow = new O16O18IqWorkflow(run, workflowParameters); IqTarget iqTarget = new IqChargeStateTarget(); iqTarget.EmpiricalFormula = "C58H100N18O20"; iqTarget.Code = "GAAQNIIPASTGAAK"; iqTarget.ID = 1093; iqTarget.ChargeState = 0; var iqTargetList = new List <IqTarget>(); iqTargetList.Add(iqTarget); var utilities = new IqTargetUtilities(); utilities.CreateChildTargets(iqTargetList); workflowAssigner.AssignWorkflowToParent(workflow, iqTargetList); workflowAssigner.AssignWorkflowToChildren(workflow, iqTargetList); var theorFeatureGenerator = new JoshTheorFeatureGenerator(); foreach (var target in iqTarget.ChildTargets()) { utilities.UpdateTargetMissingInfo(target); target.TheorIsotopicProfile = theorFeatureGenerator.GenerateTheorProfile(target.EmpiricalFormula, target.ChargeState); } foreach (var childTarget in iqTarget.ChildTargets()) { var result = childTarget.CreateResult(); var correlator = new O16O18ChromCorrelator(7, 0.1, 20, Globals.ToleranceUnit.PPM); var corrData = correlator.CorrelateData(run, result, 5700, 6500); var corrDataItem1 = corrData.CorrelationDataItems.First(); Console.WriteLine("z= \t" + childTarget.ChargeState + "\tCorrelationData (slope,intercept,rsquared)= \t" + corrDataItem1); } }
public void ProblemTesting_correlationProb1() { //see JIRA https://jira.pnnl.gov/jira/browse/OMCS-628 var executorParameters = new BasicTargetedWorkflowExecutorParameters(); var testDatasetPath = @"D:\Data\O16O18\Vlad_Mouse\mhp_plat_test_1B_8Apr13_Cougar_13-03-25.raw"; executorParameters.IsMassAlignmentPerformed = true; executorParameters.IsNetAlignmentPerformed = true; executorParameters.ReferenceTargetsFilePath = @"\\protoapps\DataPkgs\Public\2013\795_Iq_analysis_of_mouse_O16O18\Targets\MT_Mouse_MHP_O18_Set3_P892_targets.txt"; var run = new RunFactory().CreateRun(testDatasetPath); var executor = new IqExecutor(executorParameters, run); var targetsFile = @"\\protoapps\DataPkgs\Public\2013\795_Iq_analysis_of_mouse_O16O18\Targets\MT_Mouse_MHP_O18_Set3_P892_targets.txt"; executor.LoadAndInitializeTargets(targetsFile); executor.SetupMassAndNetAlignment(); var testTarget = 6955012; executor.Targets = (from n in executor.Targets where n.ID == testTarget select n).ToList(); var targetedWorkflowParameters = new BasicTargetedWorkflowParameters(); targetedWorkflowParameters.LoadParameters(@"\\protoapps\DataPkgs\Public\2013\795_Iq_analysis_of_mouse_O16O18\Parameters\O16O18WorkflowParameters_2011_08_23_sum5.xml"); //define workflows for parentTarget and childTargets var parentWorkflow = new O16O18ParentIqWorkflow(run, targetedWorkflowParameters); var childWorkflow = new O16O18IqWorkflow(run, targetedWorkflowParameters); var workflowAssigner = new IqWorkflowAssigner(); workflowAssigner.AssignWorkflowToParent(parentWorkflow, executor.Targets); workflowAssigner.AssignWorkflowToChildren(childWorkflow, executor.Targets); executor.DoAlignment(); executor.Execute(); }
public void IqExecutor_StandardO16O18Testing_VladAlz() { //see JIRA https://jira.pnnl.gov/jira/browse/OMCS-628 var executorParametersFile = @"\\protoapps\UserData\Slysz\Standard_Testing\Targeted_FeatureFinding\O16O18_standard_testing\Test1_VladAlz\Parameters\ExecutorParameters1.xml"; var executorParameters = new BasicTargetedWorkflowExecutorParameters(); executorParameters.LoadParameters(executorParametersFile); executorParameters.OutputFolderBase = @"\\protoapps\UserData\Slysz\Standard_Testing\Targeted_FeatureFinding\O16O18_standard_testing\Test1_VladAlz"; var testDatasetPath = @"\\protoapps\UserData\Slysz\Standard_Testing\Targeted_FeatureFinding\O16O18_standard_testing\Test1_VladAlz\RawData\Alz_P01_A01_097_26Apr12_Roc_12-03-15.RAW"; executorParameters.IsMassAlignmentPerformed = true; executorParameters.IsNetAlignmentPerformed = true; executorParameters.ReferenceTargetsFilePath = @"\\protoapps\UserData\Slysz\Standard_Testing\Targeted_FeatureFinding\O16O18_standard_testing\Test1_VladAlz\Targets\MT_Human_ALZ_O18_P836\MassTags_PMT2.txt"; var expectedResultsFilename = Path.Combine(executorParameters.OutputFolderBase, "IqResults", RunUtilities.GetDatasetName(testDatasetPath) + "_iqResults.txt"); if (File.Exists(expectedResultsFilename)) { File.Delete(expectedResultsFilename); } var autoSavedExecutorParametersFile = @"\\protoapps\UserData\Slysz\Standard_Testing\Targeted_FeatureFinding\O16O18_standard_testing\Test1_VladAlz\Parameters\ExecutorParameters1_autosaved.xml"; executorParameters.SaveParametersToXML(autoSavedExecutorParametersFile); var run = new RunFactory().CreateRun(testDatasetPath); var executor = new IqExecutor(executorParameters, run); var targetsFile = @"\\protoapps\UserData\Slysz\Standard_Testing\Targeted_FeatureFinding\O16O18_standard_testing\Test1_VladAlz\Targets\MT_Human_ALZ_O18_P836\MassTags_PMT2_First60.txt"; targetsFile = @"\\protoapps\UserData\Slysz\Standard_Testing\Targeted_FeatureFinding\O16O18_standard_testing\Test1_VladAlz\Targets\MT_Human_ALZ_O18_P836\MassTags_PMT2.txt"; executor.LoadAndInitializeTargets(targetsFile); executor.SetupMassAndNetAlignment(); var testTarget = 9282; executor.Targets = (from n in executor.Targets where n.ID == testTarget select n).ToList(); var targetedWorkflowParameters = new BasicTargetedWorkflowParameters(); targetedWorkflowParameters.ChromNETTolerance = 0.025; targetedWorkflowParameters.ChromGeneratorMode = Globals.ChromatogramGeneratorMode.O16O18_THREE_MONOPEAKS; //define workflows for parentTarget and childTargets var parentWorkflow = new O16O18ParentIqWorkflow(run, targetedWorkflowParameters); var childWorkflow = new O16O18IqWorkflow(run, targetedWorkflowParameters); var workflowAssigner = new IqWorkflowAssigner(); workflowAssigner.AssignWorkflowToParent(parentWorkflow, executor.Targets); workflowAssigner.AssignWorkflowToChildren(childWorkflow, executor.Targets); executor.DoAlignment(); executor.Execute(); IqResultImporter importer = new IqResultImporterBasic(expectedResultsFilename); var allResults = importer.Import(); var result1 = allResults.First(p => p.Target.ID == 9282 && p.Target.ChargeState == 2); Assert.AreEqual(9282, result1.Target.ID); Assert.AreEqual(0.32678m, (decimal)result1.ElutionTimeObs); Assert.AreEqual(4545, result1.LcScanObs); Assert.AreEqual(0.02, (decimal)result1.FitScore); }
static int Main(string[] args) { var options = new IqConsoleOptions(); var datasetList = new List <string>(); if (!CommandLine.Parser.Default.ParseArguments(args, options)) { return(-1); } var inputFile = options.InputFile; var inputFileIsAListOfDatasets = inputFile.ToLower().EndsWith(".txt"); if (inputFileIsAListOfDatasets) { using (var reader = new StreamReader(inputFile)) { while (reader.Peek() != -1) { var datsetName = reader.ReadLine(); datasetList.Add(datsetName); } } } else { datasetList.Add(options.InputFile); } var numDatasets = datasetList.Count; var datasetCounter = 0; foreach (var dataset in datasetList) { datasetCounter++; var datasetNameContainsPath = dataset.Contains(@"\"); string currentDatasetPath; if (datasetNameContainsPath) { currentDatasetPath = dataset; } else { if (string.IsNullOrEmpty(options.TemporaryWorkingFolder)) { IqLogger.Log.Fatal("Trying to grab .raw file from DMS, but no temporary working folder was declared. Use option -f. "); break; } if (string.IsNullOrEmpty(options.OutputFolder)) { options.OutputFolder = options.TemporaryWorkingFolder; } var datasetutil = new DatasetUtilities(); //TODO: figure out how to do this while supporting other file types currentDatasetPath = Path.Combine(datasetutil.GetDatasetPath(dataset), dataset + ".raw"); if (currentDatasetPath.ToLower().Contains("purged")) { currentDatasetPath = Path.Combine(datasetutil.GetDatasetPathArchived(dataset), dataset + ".raw"); } } if (!File.Exists(currentDatasetPath)) { IqLogger.Log.Fatal("!!!!!!!!! Dataset not found! Dataset path = " + currentDatasetPath); return(-2); } if (string.IsNullOrEmpty(options.OutputFolder)) { options.OutputFolder = RunUtilities.GetDatasetParentFolder(currentDatasetPath); } var executorParameters = GetExecutorParameters(options); IqLogger.Log.Info("IQ analyzing dataset " + datasetCounter + " of " + numDatasets + ". Dataset = " + dataset); if (options.UseOldIq) { TargetedWorkflowExecutor executor = new BasicTargetedWorkflowExecutor(executorParameters, currentDatasetPath); //executor.Targets.TargetList = executor.Targets.TargetList.Take(10).ToList(); executor.MsgfFdrScoreCutoff = 0.1; executor.Execute(); } else { var run = new RunFactory().CreateRun(currentDatasetPath); var executor = new IqExecutor(executorParameters, run); executor.LoadAndInitializeTargets(executorParameters.TargetsFilePath); executor.SetupMassAndNetAlignment(); executor.DoAlignment(); foreach (var iqTarget in executor.Targets) { TargetedWorkflowParameters workflowParameters = new O16O18WorkflowParameters(); if (iqTarget.ElutionTimeTheor > 0.7 || iqTarget.ElutionTimeTheor < 0.15) { //TODO: remove the hard-coded value workflowParameters.ChromNETTolerance = 0.1; } else { //TODO: remove the hard-coded value workflowParameters.ChromNETTolerance = 0.025; } if (run.MassAlignmentInfo != null && run.MassAlignmentInfo.StdevPpmShiftData > 0) { workflowParameters.ChromGenTolerance = run.MassAlignmentInfo.StdevPpmShiftData * 3; } //define workflows for parentTarget and childTargets // Note: this is currently hard-coded to user O16O18IqWorkflow var parentWorkflow = new ChromPeakDeciderIqWorkflow(run, workflowParameters); var childWorkflow = new O16O18IqWorkflow(run, workflowParameters); var workflowAssigner = new IqWorkflowAssigner(); workflowAssigner.AssignWorkflowToParent(parentWorkflow, iqTarget); workflowAssigner.AssignWorkflowToChildren(childWorkflow, iqTarget); } executor.Execute(); run.Dispose(); } } return(0); }