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);
        }
예제 #2
0
        public void testVladsData()
        {
            var testFile =
                @"\\protoapps\UserData\Slysz\Standard_Testing\Targeted_FeatureFinding\O16O18_standard_testing\Test1_VladAlz\RawData\Alz_P01_A01_097_26Apr12_Roc_12-03-15.RAW";

            var massTagFile =
                @"\\protoapps\UserData\Slysz\Standard_Testing\Targeted_FeatureFinding\O16O18_standard_testing\Test1_VladAlz\Targets\MT_Human_ALZ_O18_P836\MassTags_PMT2_First60.txt";

            var peakTestFile = testFile.Replace(".RAW", "_peaks.txt");

            var run = RunUtilities.CreateAndAlignRun(testFile, peakTestFile);


            var mtc        = new TargetCollection();
            var mtimporter = new MassTagFromTextFileImporter(massTagFile);

            mtc = mtimporter.Import();

            var testMassTagID = 24653;

            run.CurrentMassTag = (from n in mtc.TargetList where n.ID == testMassTagID && n.ChargeState == 1 select n).First();

            TargetedWorkflowParameters parameters = new O16O18WorkflowParameters();

            parameters.ChromNETTolerance                  = 0.2;
            parameters.MSToleranceInPPM                   = 10;
            parameters.ChromGeneratorMode                 = Globals.ChromatogramGeneratorMode.O16O18_THREE_MONOPEAKS;
            parameters.ChromPeakDetectorPeakBR            = 1;
            parameters.ChromatogramCorrelationIsPerformed = true;

            var workflow = new O16O18Workflow(run, parameters);

            workflow.Execute();

            var result = run.ResultCollection.GetTargetedResult(run.CurrentMassTag) as O16O18TargetedResultObject;

            Assert.IsTrue(workflow.Success);
            Assert.IsFalse(result.FailedResult);


            result.DisplayToConsole();

            Console.WriteLine("Correlation between 016 and O18(double label)= " + result.ChromCorrO16O18DoubleLabel);

            Assert.IsTrue(result.ChromCorrO16O18DoubleLabel > 0);



            Console.WriteLine("theor monomass= \t" + result.Target.MonoIsotopicMass);
            Console.WriteLine("monomass= \t" + result.IsotopicProfile.MonoIsotopicMass);

            Console.WriteLine("ppmError before= \t" + result.MassErrorBeforeAlignment);

            Console.WriteLine("ppmError after= \t" + result.MassErrorAfterAlignment);
        }
        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);
            }
        }
예제 #4
0
        public void findSingleMassTag_test1()
        {
            var testFile = @"D:\Data\O16O18\Weijun\TechTest_O18_02\TechTest_O18_02_RunA_10Dec09_Doc_09-11-08.RAW";

            var massTagFile = @"C:\Users\d3x720\Documents\PNNL\My_DataAnalysis\2011\O16O18_TargetedProcessing\Targets\MassTags_MousePlasma_1709_allChargeStates_nonRedundant.txt";

            var peakTestFile = testFile.Replace(".RAW", "_peaks.txt");

            var run = RunUtilities.CreateAndLoadPeaks(testFile, peakTestFile);


            var mtc        = new TargetCollection();
            var mtimporter = new MassTagFromTextFileImporter(massTagFile);

            mtc = mtimporter.Import();

            var testMassTagID = 6643962;

            run.CurrentMassTag = (from n in mtc.TargetList where n.ID == testMassTagID && n.ChargeState == 2 select n).First();

            TargetedWorkflowParameters parameters = new O16O18WorkflowParameters();

            parameters.ChromNETTolerance = 0.1;
            parameters.MSToleranceInPPM  = 10;

            var workflow = new O16O18Workflow(run, parameters);

            workflow.Execute();


            var result = run.ResultCollection.GetTargetedResult(run.CurrentMassTag);

            Assert.IsNotNull(result);
            result.DisplayToConsole();

            Assert.IsNotNull(result.IsotopicProfile);
            Assert.IsNotNull(result.ScanSet);
            Assert.IsNotNull(result.ChromPeakSelected);
            Assert.AreEqual(2, result.IsotopicProfile.ChargeState);
            Assert.AreEqual(6865, result.ScanSet.PrimaryScanNumber);
        }
        public void Test1()
        {
            var testFile = @"\\protoapps\UserData\Slysz\Data\O16O18\BSA\BSA_18O_99_8Jan11_Falcon_10-12-09.RAW";

            var massTagFile =
                @"\\protoapps\UserData\Slysz\Data\O16O18\BSA\Targets\BSAmassTags_MinimalInfo_withScans.txt";

            var peakTestFile = testFile.Replace(".RAW", "_peaks.txt");

            var run = RunUtilities.CreateAndLoadPeaks(testFile, peakTestFile);


            var mtc        = new TargetCollection();
            var mtimporter = new MassTagFromTextFileImporter(massTagFile);

            mtc = mtimporter.Import();

            var testMassTagID = 3;

            run.CurrentMassTag = (from n in mtc.TargetList where n.ID == testMassTagID && n.ChargeState == 2 select n).First();

            TargetedWorkflowParameters parameters = new O16O18WorkflowParameters();

            parameters.ChromNETTolerance              = 0.2;
            parameters.MSToleranceInPPM               = 10;
            parameters.ChromPeakSelectorMode          = Globals.PeakSelectorMode.MostIntense;
            parameters.ChromGeneratorMode             = DeconTools.Backend.Globals.ChromatogramGeneratorMode.O16O18_THREE_MONOPEAKS;
            parameters.ChromSmootherNumPointsInSmooth = 31;

            var workflow = new O16O18Workflow(run, parameters);

            workflow.Execute();

            Assert.IsTrue(workflow.Result.Target.ScanLCTarget > 0);
            Assert.IsNotNull(workflow.ChromPeakSelected);

            Assert.AreEqual(10622, (int)workflow.ChromPeakSelected.XValue);
            Console.WriteLine("ChromPeak scan value = " + workflow.ChromPeakSelected.XValue);
        }
예제 #6
0
        public void checkO16O18ChromGenMode_test1()
        {
            //

            var testFile = @"D:\Data\O16O18\Weijun\TechTest_O18_02\TechTest_O18_02_RunA_10Dec09_Doc_09-11-08.RAW";

            var massTagFile = @"C:\Users\d3x720\Documents\PNNL\My_DataAnalysis\2011\O16O18_TargetedProcessing\Targets\MassTags_MousePlasma_1709_allChargeStates_nonRedundant.txt";

            var peakTestFile = testFile.Replace(".RAW", "_peaks.txt");

            var run = RunUtilities.CreateAndLoadPeaks(testFile, peakTestFile);


            var mtc        = new TargetCollection();
            var mtimporter = new MassTagFromTextFileImporter(massTagFile);

            mtc = mtimporter.Import();

            var testMassTagID = 20746149;

            run.CurrentMassTag = (from n in mtc.TargetList where n.ID == testMassTagID && n.ChargeState == 2 select n).First();

            TargetedWorkflowParameters parameters = new O16O18WorkflowParameters();

            parameters.ChromNETTolerance       = 0.1;
            parameters.MSToleranceInPPM        = 10;
            parameters.ChromGeneratorMode      = DeconTools.Backend.Globals.ChromatogramGeneratorMode.O16O18_THREE_MONOPEAKS;
            parameters.ChromPeakDetectorPeakBR = 1;


            var workflow = new O16O18Workflow(run, parameters);

            workflow.Execute();

            var result = run.ResultCollection.GetTargetedResult(run.CurrentMassTag);

            result.DisplayToConsole();
            // Assert.AreEqual(3498, result.ScanSet.PrimaryScanNumber);

            Console.WriteLine("O16O18 ChromMode PeaksWithinTol = " + result.NumChromPeaksWithinTolerance);
            Console.WriteLine("O16O18 ChromMode HQPeaksWithinTol = " + result.NumQualityChromPeaks);
            //foreach (var item in workflow.ChromPeaksDetected)
            //{
            //    Console.WriteLine("peak\t" + item.XValue.ToString("0.0") + "\t" + item.Height.ToString("0"));
            //}
            // TestUtilities.DisplayXYValues(workflow.ChromatogramXYData);

            parameters.ChromGeneratorMode = Globals.ChromatogramGeneratorMode.MOST_ABUNDANT_PEAK;
            workflow = new O16O18Workflow(run, parameters);
            workflow.Execute();



            result = run.ResultCollection.GetTargetedResult(run.CurrentMassTag);

            Console.WriteLine("MonoChromMode PeaksWithinTol = " + result.NumChromPeaksWithinTolerance);
            Console.WriteLine("O16O18 ChromMode HQPeaksWithinTol = " + result.NumQualityChromPeaks);
            // TestUtilities.DisplayXYValues(workflow.ChromatogramXYData);

            //foreach (var item in workflow.ChromPeaksDetected)
            //{
            //    Console.WriteLine("peak\t" + item.XValue.ToString("0.0") + "\t" + item.Height.ToString("0"));

            //}

            result.DisplayToConsole();
        }
예제 #7
0
        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);
        }