Beispiel #1
0
        public void TestFindMassTag()
        {
            const string testFile      = @"\\protoapps\UserData\Kaipo\TopDown\test2\Proteus_Peri_intact_ETD.raw";
            const string peaksTestFile = @"\\protoapps\UserData\Kaipo\TopDown\test2\Proteus_Peri_intact_ETD_peaks.txt";
            const string massTagFile   = @"\\protoapps\UserData\Kaipo\TopDown\test2\Proteus_Peri_intact_ETD_MSAlign_ResultTable.txt";

            Run run = RunUtilities.CreateAndLoadPeaks(testFile, peaksTestFile);

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

            mtc = mtimporter.Import();

            const int testMassTagID = 14;

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

            TargetedWorkflowParameters parameters = new TopDownTargetedWorkflowParameters();

            var workflow = new TopDownTargetedWorkflow(run, parameters);

            workflow.Execute();

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

            if (result.FailedResult)
            {
                Console.WriteLine(result.ErrorDescription);
            }

            Assert.IsFalse(result.FailedResult);

            result.DisplayToConsole();
        }
        public void problemVladDatasetTest1()
        {
            var datasetFile =
                @"\\protoapps\UserData\Slysz\Data\O16O18\Vlad_O16O18\RawData\test.RAW";
            var massTagFile =
                @"\\protoapps\UserData\Slysz\Data\O16O18\Vlad_O16O18\Targets\massTags_found_across_all_5_datasets.txt";
            var workflowParameterFile =
                @"\\protoapps\UserData\Slysz\Data\O16O18\Vlad_O16O18\Workflow_Parameters\TargetedAlignmentWorkflowParameters1.xml";

            var run = RunUtilities.CreateAndLoadPeaks(datasetFile, datasetFile.Replace(".RAW", "_peaks.txt"));

            var parameters = new TargetedAlignerWorkflowParameters();

            parameters.LoadParameters(workflowParameterFile);
            parameters.ChromNETTolerance = 0.3;
            parameters.ChromGenTolerance = 60;
            parameters.MSToleranceInPPM  = 60;

            Console.WriteLine(parameters.ToStringWithDetails());


            var aligner = new TargetedAlignerWorkflow(run, parameters);

            aligner.outputToConsole = true;
            aligner.SetMassTags(massTagFile);
            aligner.Execute();
        }
        public void standardQCShewDatasetTest1()
        {
            var datasetFile =
                @"\\protoapps\UserData\Slysz\DeconTools_TestFiles\QC_Shew_08_04-pt5-2_11Jan09_Sphinx_08-11-18.RAW";
            var massTagFile           = @"\\protoapps\UserData\Slysz\Data\QCShew_MassiveTargeted\MassTags\QCShew_Formic_MassTags_for_alignment.txt";
            var workflowParameterFile = @"\\protoapps\UserData\Slysz\Data\QCShew_MassiveTargeted\WorkflowParameterFiles\TargetedAlignmentWorkflowParameters1.xml";

            var run = RunUtilities.CreateAndLoadPeaks(datasetFile, datasetFile.Replace(".RAW", "_peaks.txt"));

            var parameters = new TargetedAlignerWorkflowParameters();

            parameters.LoadParameters(workflowParameterFile);
            parameters.ChromNETTolerance = 0.3;
            parameters.ChromGenTolerance = 60;
            parameters.MSToleranceInPPM  = 60;

            Console.WriteLine(parameters.ToStringWithDetails());


            var aligner = new TargetedAlignerWorkflow(run, parameters);

            aligner.outputToConsole = true;
            aligner.SetMassTags(massTagFile);
            aligner.Execute();
        }
        public void cannotFindMassTag_test1()
        {
            //
            var testFile      = DeconTools.UnitTesting2.FileRefs.RawDataMSFiles.OrbitrapStdFile1;
            var peaksTestFile = DeconTools.UnitTesting2.FileRefs.PeakDataFiles.OrbitrapPeakFile_scans5500_6500;
            var massTagFile   = @"\\protoapps\UserData\Slysz\Data\MassTags\QCShew_Formic_MassTags_Bin10_all.txt";


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


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

            mtc = mtimporter.Import();

            var testMassTagID = 26523;

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


            TargetedWorkflowParameters parameters = new BasicTargetedWorkflowParameters();
            var workflow = new BasicTargetedWorkflow(run, parameters);

            workflow.Execute();

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

            Assert.IsNull(result.IsotopicProfile);
            Assert.IsNull(result.ScanSet);
            Assert.IsNull(result.ChromPeakSelected);

            Assert.IsTrue(result.FailedResult);
            Assert.AreEqual(DeconTools.Backend.Globals.TargetedResultFailureType.ChrompeakNotFoundWithinTolerances, result.FailureType);
        }
        public void Get3DElutionAndExportToFileTest1()
        {
            var rawFile   = @"\\protoapps\UserData\Fujimoto\TopDownPaperData\FINAL_DATA\_004\SBEP_STM_004_02272012_Aragon.raw";
            var peaksFile = @"\\protoapps\UserData\Fujimoto\TopDownPaperData\FINAL_DATA\_004\SBEP_STM_004_02272012_Aragon_peaks.txt";

            var run = RunUtilities.CreateAndLoadPeaks(rawFile, peaksFile);
            //var run = new RunFactory().CreateRun(rawFile);

            var outputFile = @"\\protoapps\UserData\Fujimoto\TopDownPaperData\FINAL_DATA\_004\3D_PLOT\3DelutionProfile.txt";


            Assert.IsNotNull(run);
            Assert.IsTrue(run.ResultCollection.MSPeakResultList.Count > 0);

            var extractor = new IsotopicProfileElutionExtractor();

            var    minScan = 3270;
            var    maxScan = 3350;
            double minMZ   = 700;
            double maxMZ   = 1700;

            int[]    scans;
            float[]  intensities;
            double[] mzBinVals;


            extractor.Get3DElutionProfileFromPeakLevelData(run, minScan, maxScan, minMZ, maxMZ, out scans, out mzBinVals, out intensities);

            var intensities2D = extractor.GetIntensitiesAs2DArray();

            extractor.OutputElutionProfileToFile(outputFile);
        }
Beispiel #6
0
        public void getPeakChromatogramTest1()
        {
            var run = RunUtilities.CreateAndLoadPeaks(FileRefs.RawDataMSFiles.OrbitrapStdFile1,
                                                      FileRefs.PeakDataFiles.OrbitrapPeakFile_scans5500_6500);

            var targetMZ  = 759.4032;
            var startScan = 5500;
            var stopScan  = 6500;


            double toleranceInPPM = 20;

            var chromGen = new PeakChromatogramGenerator();

            var mt = TestUtilities.GetMassTagStandard(1);

            run.CurrentMassTag = mt;

            var unlabelledTheorGenerator = new JoshTheorFeatureGenerator();

            unlabelledTheorGenerator.GenerateTheorFeature(mt);

            var peakChromGen = new PeakChromatogramGenerator(toleranceInPPM);

            peakChromGen.Execute(run.ResultCollection);

            run.XYData.Display();

            Assert.AreEqual(133, run.XYData.Xvalues.Length);
            Assert.AreEqual(5543, (int)run.XYData.Xvalues[35]);
            Assert.AreEqual(7319569, (int)run.XYData.Yvalues[35]);

            //make sure that the 0's are not trimmed off
            Assert.AreEqual(0, run.XYData.Yvalues[1]);
        }
        public void featuresFoundByTargetedProcessing_thenAligned_test1()
        {
            var peaksTestFile = DeconTools.UnitTesting2.FileRefs.PeakDataFiles.OrbitrapPeakFile1;
            var run           = RunUtilities.CreateAndLoadPeaks(DeconTools.UnitTesting2.FileRefs.RawDataMSFiles.OrbitrapStdFile1, peaksTestFile);
            var massTagFile   = @"\\protoapps\UserData\Slysz\Data\MassTags\qcshew_standard_file_NETVals0.3-0.33.txt";

            var parameters = new TargetedAlignerWorkflowParameters();

            parameters.ChromNETTolerance         = 0.2;
            parameters.ChromGenTolerance         = 25;
            parameters.ChromGeneratorMode        = Globals.ChromatogramGeneratorMode.MOST_ABUNDANT_PEAK;
            parameters.ChromPeakDetectorPeakBR   = 2;
            parameters.ChromPeakDetectorSigNoise = 2;
            parameters.MSToleranceInPPM          = 25;

            parameters.UpperFitScoreAllowedCriteria = 0.1;
            parameters.IScoreAllowedCriteria        = 0.15;

            var aligner = new TargetedAlignerWorkflow(run, parameters);

            aligner.SetMassTags(massTagFile);
            aligner.Execute();

            Console.WriteLine(aligner.GetAlignmentReport1());

            Assert.IsNotNull(run.AlignmentInfo);
            Assert.AreEqual(-4.2m, (decimal)(Math.Round(run.AlignmentInfo.GetPPMShiftFromMZ(600.0f), 1)));
        }
Beispiel #8
0
        public void GetPeakChromatogram_IQStyle_Test3()
        {
            var run = RunUtilities.CreateAndLoadPeaks(FileRefs.RawDataMSFiles.OrbitrapStdFile1, FileRefs.PeakDataFiles.OrbitrapPeakFile_scans5500_6500);

            var target = TestUtilities.GetIQTargetStandard(1);

            var chromGen = new PeakChromatogramGenerator();

            chromGen.ChromatogramGeneratorMode = Globals.ChromatogramGeneratorMode.TOP_N_PEAKS;
            chromGen.TopNPeaksLowerCutOff      = 0.4;
            chromGen.Tolerance = 100;

            var lowerScan      = 6087;
            var upperScan      = 6418;
            var massOfInterest = new List <double>();

            massOfInterest.Add(target.TheorIsotopicProfile.Peaklist[0].XValue);
            massOfInterest.Add(target.TheorIsotopicProfile.Peaklist[1].XValue);

            var chromXYData = chromGen.GenerateChromatogram(run, massOfInterest, lowerScan, upperScan, chromGen.Tolerance, chromGen.ToleranceUnit);

            Assert.IsNotNull(chromXYData);
            Assert.AreEqual(96, chromXYData.Xvalues.Length);

            TestUtilities.DisplayXYValues(chromXYData);
        }
Beispiel #9
0
        public void Get3DElutionTest1()
        {
            var peaksFile = FileRefs.PeakDataFiles.OrbitrapPeakFile_scans5500_6500;
            var orbiFile  = FileRefs.RawDataMSFiles.OrbitrapStdFile1;

            var run = RunUtilities.CreateAndLoadPeaks(orbiFile, peaksFile);

            Assert.IsNotNull(run);
            Assert.IsTrue(run.ResultCollection.MSPeakResultList.Count > 0);

            var extractor = new IsotopicProfileElutionExtractor();

            var    minScan = 5900;
            var    maxScan = 6300;
            double minMZ   = 749;
            double maxMZ   = 754;

            int[]    scans;
            float[]  intensities;
            double[] mzBinVals;


            extractor.Get3DElutionProfileFromPeakLevelData(run, minScan, maxScan, minMZ, maxMZ, out scans, out mzBinVals, out intensities);

            var intensities2D = extractor.GetIntensitiesAs2DArray();

            Console.WriteLine(extractor.OutputElutionProfileAsString());
        }
Beispiel #10
0
        public void GetChromatogramsTest1()
        {
            string testDatasetPath =
                @"D:\Data\From_Vlad\Bruker\2013_01_29_ALZ_CTRL_5_0p5_1_01_228.d";

            Run run = RunUtilities.CreateAndLoadPeaks(testDatasetPath);

            PeakChromatogramGenerator chromGen = new PeakChromatogramGenerator(10);

            double targetMZ    = 663.3404;
            int    chargeState = 2;
            int    peakNum     = 4;


            targetMZ = targetMZ + peakNum * Globals.MASS_DIFF_BETWEEN_ISOTOPICPEAKS / chargeState;

            double toleranceInPPM = 10;

            int startScan = 230;
            int stopScan  = 300;

            chromGen.GenerateChromatogram(run, startScan, stopScan, targetMZ, toleranceInPPM);

            run.XYData = run.XYData.TrimData(startScan, stopScan);

            TestUtilities.DisplayXYValues(run.XYData);
        }
Beispiel #11
0
        public void Get3DElutionAndExportToFileTest1()
        {
            var peaksFile = FileRefs.PeakDataFiles.OrbitrapPeakFile_scans5500_6500;
            var orbiFile  = FileRefs.RawDataMSFiles.OrbitrapStdFile1;



            var run = RunUtilities.CreateAndLoadPeaks(orbiFile, peaksFile);

            var outputFile = Path.Combine(run.DataSetPath, run.DatasetName + "_sample3DelutionProfile.txt");


            Assert.IsNotNull(run);
            Assert.IsTrue(run.ResultCollection.MSPeakResultList.Count > 0);

            var extractor = new IsotopicProfileElutionExtractor();

            var    minScan = 5900;
            var    maxScan = 6300;
            double minMZ   = 749;
            double maxMZ   = 754;

            int[]    scans;
            float[]  intensities;
            double[] mzBinVals;


            extractor.Get3DElutionProfileFromPeakLevelData(run, minScan, maxScan, minMZ, maxMZ, out scans, out mzBinVals, out intensities);

            var intensities2D = extractor.GetIntensitiesAs2DArray();

            extractor.OutputElutionProfileToFile(outputFile);
        }
        protected virtual void SetupLogging()
        {
            string loggingFolder;

            if (string.IsNullOrEmpty(ExecutorParameters.OutputFolderBase))
            {
                loggingFolder = RunUtilities.GetDatasetParentFolder(DatasetPath);
            }
            else
            {
                loggingFolder = Path.Combine(ExecutorParameters.OutputFolderBase, "Logs");
            }

            try
            {
                if (!Directory.Exists(loggingFolder))
                {
                    Directory.CreateDirectory(loggingFolder);
                }
            }
            catch (Exception ex)
            {
                throw new System.IO.IOException("Trying to set up logging folder but there was a critical error. Details:\n\n" + ex.Message, ex);
            }


            _loggingFileName = Path.Combine(loggingFolder, RunUtilities.GetDatasetName(DatasetPath) + "_log.txt");
        }
        protected void PerformAlignment()
        {
            if (!string.IsNullOrEmpty(_alignmentFolder))
            {
                RunUtilities.AlignRunUsingAlignmentInfoInFiles(Run, _alignmentFolder);
            }


            if (Run.MassIsAligned)
            {
                ReportGeneralProgress("Run has been mass aligned");
            }
            else
            {
                ReportGeneralProgress("FYI - Run has NOT been mass aligned.");
            }

            if (Run.NETIsAligned)
            {
                ReportGeneralProgress("Run has been NET aligned using info in either the _NETAlignment.txt file or the _UMCs.txt file");
            }
            else
            {
                ReportGeneralProgress("Warning - Run has NOT been NET aligned.");
            }
        }
Beispiel #14
0
        public void featuresFoundByTargetedProcessing_thenAligned_test1()
        {
            string peaksTestFile = DeconTools.UnitTesting2.FileRefs.PeakDataFiles.OrbitrapPeakFile1;

            Console.WriteLine("loading peaks.");
            Run run = RunUtilities.CreateAndLoadPeaks(FileRefs.RawDataMSFiles.OrbitrapStdFile1, peaksTestFile);

            Console.WriteLine("done.");
            string massTagFile = @"\\protoapps\UserData\Slysz\Data\MassTags\qcshew_standard_file_allMassTags.txt";

            DeconToolsTargetedWorkflowParameters parameters = new BasicTargetedWorkflowParameters();

            parameters.ChromNETTolerance         = 0.2;
            parameters.ChromToleranceInPPM       = 25;
            parameters.ChromGeneratorMode        = Backend.ProcessingTasks.ChromatogramGeneratorMode.MOST_ABUNDANT_PEAK;
            parameters.ChromPeakDetectorPeakBR   = 2;
            parameters.ChromPeakDetectorSigNoise = 2;
            parameters.MSToleranceInPPM          = 25;

            TargetedAligner aligner = new TargetedAligner(run, parameters);

            aligner.UpperFitScoreAllowedCriteria = 0.1;
            aligner.IScoreAllowedCriteria        = 0.15;


            Console.WriteLine("Loading Mass tags...");
            aligner.SetMassTags(massTagFile);

            Console.WriteLine("Done.");
            aligner.Execute();
        }
Beispiel #15
0
        public void FailureToFindAnyChromatogramDataTest1()
        {
            var testFile      = DeconTools.UnitTesting2.FileRefs.RawDataMSFiles.OrbitrapStdFile1;
            var peaksTestFile = DeconTools.UnitTesting2.FileRefs.PeakDataFiles.OrbitrapPeakFile_scans5500_6500;
            var massTagFile   = @"\\protoapps\UserData\Slysz\Data\MassTags\QCShew_Formic_MassTags_Bin10_all.txt";

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


            TargetedWorkflowParameters parameters = new BasicTargetedWorkflowParameters();

            parameters.ChromGenTolerance = 1;    //very narrow tolerance



            IqWorkflow iqWorkflow = new BasicIqWorkflow(run, parameters);
            IqTarget   target     = new IqChargeStateTarget(iqWorkflow);

            target.EmpiricalFormula = DeconTools.Backend.Utilities.IsotopeDistributionCalculation.IsotopicDistributionCalculator.Instance.GetAveragineFormulaAsString(1399);
            target.ElutionTimeTheor = 0.3;
            target.ChargeState      = 1;


            target.DoWorkflow();
            var result = target.GetResult();

            Assert.IsTrue(result.Target.TheorIsotopicProfile != null);
            Assert.IsTrue(result != null);
            Assert.IsTrue(result.IqResultDetail.Chromatogram == null);

            var reportString = result.ToStringWithDetailedReport();

            Console.WriteLine(reportString);
        }
Beispiel #16
0
        public void TopDownWorkflowTest1()
        {
            //see https://jira.pnnl.gov/jira/browse/OMCR-98

            string baseFolder =
                @"\\protoapps\UserData\Slysz\Standard_Testing\Targeted_FeatureFinding\Topdown_standard_testing\Test1_MSAlign_ProteusPeriIntact";

            const string executorParameterFile =
                @"\\protoapps\UserData\Slysz\Standard_Testing\Targeted_FeatureFinding\Topdown_standard_testing\Test1_MSAlign_ProteusPeriIntact\Parameters\topdownExecutorParameters1.xml";
            var executorParameters = new TopDownTargetedWorkflowExecutorParameters();

            executorParameters.LoadParameters(executorParameterFile);
            executorParameters.ExportChromatogramData = false;
            executorParameters.OutputFolderBase       =
                @"\\protoapps\UserData\Slysz\Standard_Testing\Targeted_FeatureFinding\Topdown_standard_testing\Test1_MSAlign_ProteusPeriIntact";


            const string testDatasetPath =
                @"\\protoapps\UserData\Slysz\Standard_Testing\Targeted_FeatureFinding\Topdown_standard_testing\Test1_MSAlign_ProteusPeriIntact\RawData\Proteus_Peri_intact_ETD.raw";


            string testDatasetName = RunUtilities.GetDatasetName(testDatasetPath);

            string expectedResultsFilename = executorParameters.OutputFolderBase + "\\IqResults" + "\\" + testDatasetName + "_quant.txt";

            if (File.Exists(expectedResultsFilename))
            {
                File.Delete(expectedResultsFilename);
            }

            var executor = new TopDownTargetedWorkflowExecutor(executorParameters, testDatasetPath);

            string proteinSeq =
                @"A.VDKTNPYALMEDAAQKTFDKLKTEQPEIRKNPELLREIVQQELLPYVHIKYAGALVLGPYYRNATPAQRDAYFAAFKDYLAQVYGQALAMYEGQEYRIEPAKPFADKSNLTIRVTIIDKNGRPPVRLDFQWRKNSKTGEWQAYDMIAEGVSMITTKQNEWSDILSAKGVDGLTKQLEISAKTPITLDEKK.";

            executor.Targets.TargetList = executor.Targets.TargetList.Where(p => p.Code == proteinSeq).ToList();
            executor.Execute();

            Assert.IsNotNull(executor.TargetedWorkflow.Run);

            Console.WriteLine("Num targetedResults in Run = " + executor.TargetedWorkflow.Run.ResultCollection.MassTagResultList.Count);

            Assert.IsTrue(File.Exists(expectedResultsFilename), "Results file does not exist!");


            //TODO: fix _quant.txt output column headers
            TopDownTargetedResultFromTextImporter importer = new TopDownTargetedResultFromTextImporter(expectedResultsFilename);
            var results = importer.Import();

            Assert.IsNotNull(results);
            Assert.IsTrue(results.HasResults);
            Assert.AreEqual(1, results.Results.Count);

            //foreach (var r in results.Results)
            //{
            //    Console.WriteLine(r.TargetID + "\t" + r.ScanLC + "\t" + r.Intensity);
            //}
        }
Beispiel #17
0
        public XicAdaptor(string rawPath, string peaksPath)
        {
            Run run = RunUtilities.CreateAndLoadPeaks(rawPath, peaksPath);

            m_run = run;

            NetWindow   = .02;
            MzPpmWindow = 20;
        }
        private void LoadPeaks(Run run)
        {
            var sourcePeaksFile = Path.Combine(run.DataSetPath, run.DatasetName + "_peaks.txt");    //FULL.txt";

            RunUtilities.GetPeaks(run, sourcePeaksFile);

            //create / load
            //TODO: adjust the RunUtilities class so that it can simply take a run and create the _peaks and load them.
        }
        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);
        }
        protected string TryFindTargetsForCurrentDataset()
        {
            var datasetName = RunUtilities.GetDatasetName(DatasetPath);

            string[] possibleFileSuffixs = { "_iqTargets.txt", "_targets.txt", "_LCMSFeatures.txt", "_MSGFPlus.tsv", "_msgfdb_fht.txt" };


            var possibleTargetFiles = new List <FileInfo>();

            var targetsBaseFolder = ExecutorParameters.TargetsBaseFolder;

            if (string.IsNullOrEmpty(ExecutorParameters.TargetsBaseFolder))
            {
                targetsBaseFolder = Path.Combine(ExecutorParameters.OutputFolderBase, "Targets");
            }

            var dirinfo = new DirectoryInfo(targetsBaseFolder);

            foreach (var suffix in possibleFileSuffixs)
            {
                var fileInfos = dirinfo.GetFiles("*" + suffix);


                foreach (var fileInfo in fileInfos)
                {
                    if (fileInfo.Name.StartsWith(datasetName, StringComparison.OrdinalIgnoreCase))
                    {
                        possibleTargetFiles.Add(fileInfo);
                    }
                }
            }

            if (possibleTargetFiles.Count == 0)
            {
                return(string.Empty);
            }
            else if (possibleTargetFiles.Count == 1)
            {
                return(possibleTargetFiles.First().FullName);
            }
            else
            {
                var sb = new StringBuilder();

                sb.Append("Error in getting IQ target file. Multiple files were found for the dataset: " + datasetName + Environment.NewLine);
                sb.Append("Candidate IQ target files: " + Environment.NewLine);

                foreach (var possibleTargetFile in possibleTargetFiles)
                {
                    sb.Append(possibleTargetFile.FullName + Environment.NewLine);
                }

                throw new NotSupportedException(sb.ToString());
            }
        }
Beispiel #21
0
        public void TopDownWorkflowFullTargetSet()
        {
            var executorParameters = new TopDownTargetedWorkflowExecutorParameters();

            executorParameters.CopyRawFileLocal = false;
            executorParameters.DeleteLocalDatasetAfterProcessing = false;
            executorParameters.TargetsFilePath        = @"\\protoapps\UserData\Fujimoto\TopDownTesting\Targets\fullTargetSet\Proteus_Peri_intact_ETD_MSAlign_ResultTable.Filtered05FDR.txt";
            executorParameters.TargetType             = Globals.TargetType.LcmsFeature;
            executorParameters.ExportChromatogramData = true;

            var workflowParameters = new TopDownTargetedWorkflowParameters();

            workflowParameters.AreaOfPeakToSumInDynamicSumming    = 2;
            workflowParameters.ChromatogramCorrelationIsPerformed = false;
            workflowParameters.ChromGeneratorMode             = Globals1.ChromatogramGeneratorMode.MOST_ABUNDANT_PEAK;
            workflowParameters.ChromGenSourceDataPeakBR       = 4;
            workflowParameters.ChromGenSourceDataSigNoise     = 3;
            workflowParameters.ChromNETTolerance              = 0.025;
            workflowParameters.ChromPeakDetectorPeakBR        = 0.1;
            workflowParameters.ChromPeakDetectorSigNoise      = 0.1;
            workflowParameters.ChromPeakSelectorMode          = Globals1.PeakSelectorMode.Smart;
            workflowParameters.ChromSmootherNumPointsInSmooth = 9;
            workflowParameters.MaxScansSummedInDynamicSumming = 100;
            workflowParameters.MSPeakDetectorPeakBR           = 1.3;
            workflowParameters.MSPeakDetectorSigNoise         = 2;
            workflowParameters.ChromGenTolerance              = 15;
            workflowParameters.MSToleranceInPPM = 25;
            workflowParameters.MultipleHighQualityMatchesAreAllowed = true;
            workflowParameters.NumChromPeaksAllowedDuringSelection  = 10;
            workflowParameters.NumMSScansToSum = 5;
            workflowParameters.ResultType      = Globals1.ResultType.TOPDOWN_TARGETED_RESULT;
            workflowParameters.SummingMode     = SummingModeEnum.SUMMINGMODE_STATIC;

            const string testDatasetPath =
                @"\\protoapps\UserData\Fujimoto\TopDownTesting\RawData\Proteus_Peri_intact_ETD.raw";


            string resultsFolderLocation = Path.Combine(executorParameters.OutputFolderBase, "Results");

            string testDatasetName = RunUtilities.GetDatasetName(testDatasetPath);

            string expectedResultsFilename = Path.Combine(resultsFolderLocation, testDatasetName + "_quant.txt");

            if (File.Exists(expectedResultsFilename))
            {
                File.Delete(expectedResultsFilename);
            }

            var executor = new TopDownTargetedWorkflowExecutor(executorParameters, workflowParameters, testDatasetPath);

            executor.Execute();

            Assert.IsNotNull(executor.TargetedWorkflow.Run);
            Assert.IsTrue(File.Exists(expectedResultsFilename), "Results file does not exist!");
        }
        public void findFeatureIn_dataset_with_bad_massCalibration_test1()
        {
            //mass error in this dataset is typically ~50ppm.

            var datasetFile = @"D:\Data\Orbitrap\Subissue01\QC_Shew_10_01-pt5-1_8Feb10_Doc_09-12-24.RAW";

            var massTagFile           = @"\\protoapps\UserData\Slysz\Data\QCShew_MassiveTargeted\MassTags\QCShew_Formic_MassTags_Bin10_first10.txt";
            var workflowParameterFile = @"\\protoapps\UserData\Slysz\Data\QCShew_MassiveTargeted\WorkflowParameterFiles\UnlabelledTargeted_WorkflowParameters_noSum.xml";


            var run = RunUtilities.CreateAndLoadPeaks(datasetFile, datasetFile.Replace(".RAW", "_peaks.txt"));

            RunUtilities.AlignRunUsingAlignmentInfoInFiles(run);

            Assert.IsTrue(run.MassIsAligned);
            Assert.IsTrue(run.NETIsAligned);


            var parameters = new BasicTargetedWorkflowParameters();

            parameters.LoadParameters(workflowParameterFile);
            var workflow = new BasicTargetedWorkflow(parameters);


            workflow.Run = run;

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

            mtc = mtimporter.Import();

            var mt1 = (from n in mtc.TargetList where n.ID == 24702 && n.ChargeState == 4 select n).First();

            run.CurrentMassTag = mt1;

            workflow.Execute();

            var repo = new TargetedResultRepository();

            repo.AddResult(workflow.Result);


            Console.WriteLine("theor mono mass = " + mt1.MonoIsotopicMass);
            Console.WriteLine("theorMZ = " + mt1.MZ);
            Console.WriteLine("theorNET = " + mt1.NormalizedElutionTime);
            Console.WriteLine("obsScan = " + repo.Results[0].ScanLC);
            Console.WriteLine("obsNET = " + repo.Results[0].NET);
            Console.WriteLine("NETError = " + repo.Results[0].NETError);
            Console.WriteLine("obsMZ = " + repo.Results[0].MonoMZ);
            Console.WriteLine("monoMass = " + repo.Results[0].MonoMass);
            Console.WriteLine("obsMonoMassCalibrated = " + repo.Results[0].MonoMassCalibrated);

            Console.WriteLine("MassErrorBeforeAlignment = " + (mt1.MZ - repo.Results[0].MonoMZ) / mt1.MZ * 1e6);
            Console.WriteLine("MassErrorAfterAlignment = " + repo.Results[0].MassErrorBeforeCalibration);
        }
Beispiel #23
0
 //note: does not actually create peaks. Only loads them. An exception is thrown if it's not there.
 private void CreatePeaksIfNeeded()
 {
     if (_run.ResultCollection.MSPeakResultList.Count == 0)
     {
         var expectedPeaksfile = Path.Combine(_run.DataSetPath, _run.DatasetName + "_peaks.txt");
         if (!File.Exists(expectedPeaksfile))
         {
             var ex = new Exception("No Peaks file found.");
             throw ex;
             //    CreatePeaksFile();
             //ExportPeaks_copied(expectedPeaksfile);
         }
         RunUtilities.GetPeaks(_run, expectedPeaksfile);
     }
 }
Beispiel #24
0
        public void IqWorkflowTest1()
        {
            //see  https://jira.pnnl.gov/jira/browse/OMCS-709

            var testFile      = DeconTools.UnitTesting2.FileRefs.RawDataMSFiles.OrbitrapStdFile1;
            var peaksTestFile = DeconTools.UnitTesting2.FileRefs.PeakDataFiles.OrbitrapPeakFile_scans5500_6500;
            var massTagFile   = @"\\protoapps\UserData\Slysz\Data\MassTags\QCShew_Formic_MassTags_Bin10_all.txt";

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

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

            mtc = mtimporter.Import();

            var testMassTagID  = 24800;
            var oldStyleTarget = (from n in mtc.TargetList where n.ID == testMassTagID && n.ChargeState == 2 select n).First();

            TargetedWorkflowParameters parameters = new BasicTargetedWorkflowParameters();

            parameters.ChromatogramCorrelationIsPerformed = true;
            parameters.ChromSmootherNumPointsInSmooth     = 9;
            parameters.ChromPeakDetectorPeakBR            = 1;
            parameters.ChromPeakDetectorSigNoise          = 1;

            IqWorkflow iqWorkflow = new BasicIqWorkflow(run, parameters);

            IqTarget target = new IqChargeStateTarget(iqWorkflow);

            target.ID               = oldStyleTarget.ID;
            target.MZTheor          = oldStyleTarget.MZ;
            target.ElutionTimeTheor = oldStyleTarget.NormalizedElutionTime;
            target.MonoMassTheor    = oldStyleTarget.MonoIsotopicMass;
            target.EmpiricalFormula = oldStyleTarget.EmpiricalFormula;
            target.ChargeState      = oldStyleTarget.ChargeState;

            Console.WriteLine(target.EmpiricalFormula + "\t" + target.ChargeState);


            target.DoWorkflow();
            var result = target.GetResult();

            Assert.IsNotNull(result, "result is null");

            var reportString = result.ToStringWithDetailedReport();

            Console.WriteLine(reportString);
        }
Beispiel #25
0
        public void ExecutorCreatingTargetsTest1()
        {
            var util          = new IqTargetUtilities();
            var testFile      = UnitTesting2.FileRefs.RawDataMSFiles.OrbitrapStdFile1;
            var peaksTestFile = @"\\protoapps\UserData\Slysz\DeconTools_TestFiles\QC_Shew_08_04-pt5-2_11Jan09_Sphinx_08-11-18_scans5500-6500_peaks.txt";

            var targetsFile = @"\\protoapps\UserData\Slysz\Data\MassTags\QCShew_Formic_MassTags_Bin10_all.txt";

            var resultsFolder = @"\\protoapps\UserData\Slysz\Standard_Testing\Targeted_FeatureFinding\Unlabelled\Results";

            var expectedResultsFilename = Path.Combine(resultsFolder, RunUtilities.GetDatasetName(testFile) + "_iqResults.txt");

            if (File.Exists(expectedResultsFilename))
            {
                File.Delete(expectedResultsFilename);
            }


            WorkflowExecutorBaseParameters executorBaseParameters = new BasicTargetedWorkflowExecutorParameters();

            executorBaseParameters.ChromGenSourceDataPeakBR   = 3;
            executorBaseParameters.ChromGenSourceDataSigNoise = 2;
            executorBaseParameters.TargetsFilePath            = targetsFile;


            //create no more than two charge state targets per peptide
            executorBaseParameters.MaxNumberOfChargeStateTargetsToCreate = 2;

            var run = new RunFactory().CreateRun(testFile);

            var executor = new IqExecutor(executorBaseParameters, run);

            executor.ChromSourceDataFilePath = peaksTestFile;

            executor.LoadAndInitializeTargets(targetsFile);
            executor.Targets = (from n in executor.Targets where n.ElutionTimeTheor > 0.305 && n.ElutionTimeTheor < 0.325 select n).Take(10).ToList();

            foreach (var iqTarget in executor.Targets)
            {
                var numChildTargets = iqTarget.GetChildCount();

                Assert.IsTrue(numChildTargets <= 2);    //MaxNumberOfChargeStateTargetsToCreate = 2;

                Console.WriteLine(iqTarget + "\t" + numChildTargets);
            }
        }
Beispiel #26
0
        private void LoadPeaks(string userProvidedOutputFolderPath = null)
        {
            string outputFolderPath;

            if (string.IsNullOrEmpty(userProvidedOutputFolderPath))
            {
                outputFolderPath = Run.DataSetPath;
            }
            else
            {
                outputFolderPath = userProvidedOutputFolderPath;
            }

            var expectedPeaksFile = Path.Combine(outputFolderPath, Run.DatasetName + "_peaks.txt");

            RunUtilities.GetPeaks(Run, expectedPeaksFile);
        }
Beispiel #27
0
        public void GetPeakChromatogram_usePPMTolerance_Test1()
        {
            var run = RunUtilities.CreateAndLoadPeaks(FileRefs.RawDataMSFiles.OrbitrapStdFile1,
                                                      FileRefs.PeakDataFiles.OrbitrapPeakFile_scans5500_6500);

            var targetMZ  = 759.4032;
            var startScan = 5500;
            var stopScan  = 6500;

            double toleranceInPPM = 20;

            var chromGen = new PeakChromatogramGenerator();
            var xydata   = chromGen.GenerateChromatogram(run, startScan, stopScan, targetMZ, toleranceInPPM, Globals.ToleranceUnit.PPM);

            Assert.IsNotNull(xydata);
            TestUtilities.DisplayXYValues(xydata);
        }
Beispiel #28
0
        public void Test1()
        {
            var rawdataFile   = @"D:\Data\Orbitrap\QC_Shew_09_05-pt5-6_4Jan10_Doc_09-11-08.RAW";
            var massTagFile   = @"\\protoapps\UserData\Slysz\Data\MassTags\QCShew_Formic_MassTags_Bin10_all.txt";
            var parameterFile = @"\\protoapps\UserData\Slysz\Data\QCShew_MassiveTargeted\WorkflowParameterFiles\UnlabelledTargeted_WorkflowParameters_noSum.xml";

            var mtimporter = new MassTagFromTextFileImporter(massTagFile);

            var mtc = new TargetCollection();

            mtc = mtimporter.Import();


            var run = new RunFactory().CreateRun(rawdataFile);
            //RunUtilities.AlignRunUsingAlignmentInfoInFiles(run);

            var expectedPeaksFilename = Path.Combine(run.DataSetPath, run.DatasetName + "_peaks.txt");

            var peakImporter = new DeconTools.Backend.Data.PeakImporterFromText(expectedPeaksFilename, null);

            peakImporter.ImportPeaks(run.ResultCollection.MSPeakResultList);


            var testMassTagID      = 3513677;
            var massTagChargeState = 2;

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

            var parameters = WorkflowParameters.CreateParameters(parameterFile);

            var workflow = TargetedWorkflow.CreateWorkflow(parameters);

            workflow.Run = run;

            workflow.Execute();



            workflow.Result.DisplayToConsole();


            RunUtilities.AlignRunUsingAlignmentInfoInFiles(run);
            workflow.Execute();
            workflow.Result.DisplayToConsole();
        }
Beispiel #29
0
        public void exporterTest1()
        {
            var testFile      = DeconTools.UnitTesting2.FileRefs.RawDataMSFiles.OrbitrapStdFile1;
            var peaksTestFile = DeconTools.UnitTesting2.FileRefs.PeakDataFiles.OrbitrapPeakFile_scans5500_6500;
            var massTagFile   = @"\\protoapps\UserData\Slysz\Data\MassTags\qcshew_standard_file_NETVals0.3-0.33.txt";

            var exportedResultFile = Path.Combine(FileRefs.OutputFolderPath, "UnlabelledTargetedResultsExporterOutput1.txt");

            if (File.Exists(exportedResultFile))
            {
                File.Delete(exportedResultFile);
            }


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


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

            mtc = mtimporter.Import();


            var selectedMassTags = mtc.TargetList.OrderBy(p => p.ID).Take(10).ToList();


            TargetedWorkflowParameters parameters = new BasicTargetedWorkflowParameters();
            var workflow = new BasicTargetedWorkflow(run, parameters);

            foreach (var mt in selectedMassTags)
            {
                run.CurrentMassTag = mt;
                workflow.Execute();
            }

            var repo = new TargetedResultRepository();

            repo.AddResults(run.ResultCollection.GetMassTagResults());



            var exporter = new UnlabelledTargetedResultToTextExporter(exportedResultFile);

            exporter.ExportResults(repo.Results);
        }
        public void findSingleMassTag_checkAlignmentData_test1()
        {
            var testFile      = DeconTools.UnitTesting2.FileRefs.RawDataMSFiles.OrbitrapStdFile1;
            var peaksTestFile = DeconTools.UnitTesting2.FileRefs.PeakDataFiles.OrbitrapPeakFile_scans5500_6500;
            var massTagFile   = @"\\protoapps\UserData\Slysz\Data\MassTags\QCShew_Formic_MassTags_Bin10_all.txt";

            var run        = RunUtilities.CreateAndLoadPeaks(testFile, peaksTestFile);
            var mtc        = new TargetCollection();
            var mtimporter = new MassTagFromTextFileImporter(massTagFile);

            mtc = mtimporter.Import();

            var testMassTagID = 24800;

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


            TargetedWorkflowParameters parameters = new BasicTargetedWorkflowParameters();
            var workflow = new BasicTargetedWorkflow(run, parameters);

            workflow.Execute();

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

            Assert.AreEqual(false, result.FailedResult);

            result.DisplayToConsole();

            Assert.IsNotNull(result.IsotopicProfile);
            Assert.IsNotNull(result.ScanSet);
            Assert.IsNotNull(result.ChromPeakSelected);
            Assert.AreEqual(2, result.IsotopicProfile.ChargeState);
            Assert.AreEqual(718.41m, (decimal)Math.Round(result.IsotopicProfile.GetMZ(), 2));
            Assert.AreEqual(5947m, (decimal)Math.Round(result.ChromPeakSelected.XValue));


            Assert.AreEqual(5.91, (decimal)(Math.Round(result.GetMassErrorAfterAlignmentInPPM(), 2)));
            Assert.AreEqual(0.0001585m, (decimal)(Math.Round(result.GetNETAlignmentError(), 7)));

            RunUtilities.AlignRunUsingAlignmentInfoInFiles(run);

            //these might change due to unit tests elsewhere. Need a better way of doing this
            //Assert.AreEqual(1.99290383722318m, (decimal)result.GetMassErrorAfterAlignmentInPPM());
            //Assert.AreEqual(0.00076708197593689m, (decimal)result.GetNETAlignmentError());
        }