public void UIMFTest1()
        {
            var uimffile =
                @"\\protoapps\UserData\Slysz\DeconTools_TestFiles\UIMF\Sarc_P09_B06_0786_20Jul11_Cheetah_11-05-31.uimf";
            var rf = new RunFactory();

            var run = rf.CreateRun(uimffile);

            var expectedPeaksFile =
                @"\\protoapps\UserData\Slysz\DeconTools_TestFiles\UIMF\Sarc_P09_B06_0786_20Jul11_Cheetah_11-05-31_peaks.txt";

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

            var parameters = new PeakDetectAndExportWorkflowParameters();

            parameters.LCScanMin         = 500;
            parameters.LCScanMax         = 510;
            parameters.NumIMSScansSummed = -1;

            var workflow = new PeakDetectAndExportWorkflow(run, parameters);

            workflow.Execute();

            Assert.IsTrue(File.Exists(expectedPeaksFile));
        }
Пример #2
0
        public void testPeakGeneration()
        {
            var fileName =
                @"\\protoapps\UserData\Slysz\DeconTools_TestFiles\Orbitrap\QC_Shew_08_04-pt5-2_11Jan09_Sphinx_08-11-18.raw";
            var run = new RunFactory().CreateRun(fileName);

            var parameters = new PeakDetectAndExportWorkflowParameters();

            parameters.LCScanMin = 5000;
            parameters.LCScanMax = 7000;


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

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


            var workflow = new PeakDetectAndExportWorkflow(run, parameters);

            workflow.Execute();

            var fileinfo = new FileInfo(expectedPeaksFile);

            Assert.IsTrue(fileinfo.Exists);
            Assert.IsTrue(fileinfo.Length > 1000000);
        }
        public void peakexporterTest1()
        {
            var rf = new RunFactory();

            var run = rf.CreateRun(DeconTools.UnitTesting2.FileRefs.RawDataMSFiles.OrbitrapStdFile1);

            var parameters = new PeakDetectAndExportWorkflowParameters();

            parameters.LCScanMin = 5500;
            parameters.LCScanMax = 6500;

            parameters.OutputFolder = @"\\protoapps\UserData\Slysz\DeconTools_TestFiles\TempOutput";


            var expectedPeaksFile = Path.Combine(parameters.OutputFolder, run.DatasetName + "_peaks.txt");

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


            var workflow = new PeakDetectAndExportWorkflow(run, parameters);

            workflow.Execute();

            var fileinfo = new FileInfo(expectedPeaksFile);

            Assert.IsTrue(fileinfo.Exists);
            Assert.IsTrue(fileinfo.Length > 1000000);
        }
Пример #4
0
        public void createPeaksTest1()
        {
            var testFile =
                @"D:\Data\Orbitrap\BrianIQTesting\QC_Shew_11_02_pt5-b_6Jun11_Sphinx_11-03-27.RAW";
            var run = new RunFactory().CreateRun(testFile);

            var parameters = new PeakDetectAndExportWorkflowParameters();
            TargetedWorkflowParameters deconParam = new BasicTargetedWorkflowParameters();

            deconParam.ChromGenSourceDataPeakBR = 3;


            parameters.PeakBR            = deconParam.ChromGenSourceDataPeakBR;
            parameters.PeakFitType       = DeconTools.Backend.Globals.PeakFitType.QUADRATIC;
            parameters.SigNoiseThreshold = deconParam.ChromGenSourceDataSigNoise;
            var peakCreator = new PeakDetectAndExportWorkflow(run, parameters);

            peakCreator.Execute();
        }
Пример #5
0
        public void stolen_peakexporterTest1()
        {
            //RunFactory rf = new RunFactory();

            //Run run = rf.CreateRun(DeconTools.UnitTesting2.FileRefs.RawDataMSFiles.OrbitrapStdFile1);

            var fileName = @"\\protoapps\UserData\Slysz\DeconTools_TestFiles\Orbitrap\QC_Shew_08_04-pt5-2_11Jan09_Sphinx_08-11-18.RAW";

            //@"\\protoapps\UserData\Slysz\DeconTools_TestFiles\Orbitrap\QC_Shew_08_04-pt5-2_11Jan09_Sphinx_08-11-18.raw";
            //@"\\protoapps\UserData\Slysz\DeconTools_TestFiles\Orbitrap\Vorbi\Yellow_C12_099_18Mar10_Griffin_10-01-13.raw";

            //
            //Run run = RunUtilities.CreateAndLoadPeaks(fileName);
            var run = new RunFactory().CreateRun(fileName);


            var parameters = new PeakDetectAndExportWorkflowParameters();

            parameters.LCScanMin = 5500;
            parameters.LCScanMax = 6500;


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

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


            var workflow = new PeakDetectAndExportWorkflow(run, parameters);

            workflow.Execute();

            var fileinfo = new FileInfo(expectedPeaksFile);

            Assert.IsTrue(fileinfo.Exists);
            Assert.IsTrue(fileinfo.Length > 1000000);
        }
        public void exportPeaksFromMixedProfileAndCentroidMS2Data()
        {
            //TODO:  finish off this test

            var testFile = @"D:\Data\From_Matt\XGA121_lipid_pt5uM_1.raw";

            var rf = new RunFactory();

            var run = rf.CreateRun(testFile);

            var parameters = new PeakDetectAndExportWorkflowParameters();

            parameters.LCScanMin         = 1;
            parameters.LCScanMax         = 20;
            parameters.ProcessMSMS       = true;
            parameters.IsDataThresholded = true;

            parameters.MS2PeakDetectorDataIsThresholded = true;



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

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


            var workflow = new PeakDetectAndExportWorkflow(run, parameters);

            workflow.Execute();

            var fileinfo = new FileInfo(expectedPeaksFile);

            Assert.IsTrue(fileinfo.Exists);
        }
        private void LoadPeaks()
        {
            try
            {
                _peaksFilename = this.Run.DataSetPath + "\\" + this.Run.DatasetName + "_peaks.txt";

                if (!File.Exists(_peaksFilename))
                {
                    GeneralStatusMessage =
                        "Creating chromatogram data (_peaks.txt file); this is only done once. It takes 1 - 5 min .......";
                    var deconParam = (TargetedWorkflowParameters)Workflow.WorkflowParameters;

                    var peakCreationParameters = new PeakDetectAndExportWorkflowParameters();
                    peakCreationParameters.PeakBR = deconParam.ChromGenSourceDataPeakBR;
                    peakCreationParameters.PeakFitType = Globals.PeakFitType.QUADRATIC;
                    peakCreationParameters.SigNoiseThreshold = deconParam.ChromGenSourceDataSigNoise;

                    var peakCreator = new PeakDetectAndExportWorkflow(Run, peakCreationParameters, _backgroundWorker);
                    peakCreator.Execute();
                }
            }
            catch (Exception ex)
            {
                GeneralStatusMessage = ex.Message;
                return;
            }

            GeneralStatusMessage = "Loading chromatogram data (_peaks.txt file) .......";
            try
            {
                PeakImporterFromText peakImporter = new PeakImporterFromText(_peaksFilename, _backgroundWorker);
                peakImporter.ImportPeaks(this.Run.ResultCollection.MSPeakResultList);
            }
            catch (Exception ex)
            {
                GeneralStatusMessage = ex.Message;
                return;
                //throw new ApplicationException("Peaks failed to load. Maybe the details below will help... \n\n" + ex.Message + "\nStacktrace: " + ex.StackTrace, ex);
            }

            if (Run.ResultCollection.MSPeakResultList != null && Run.ResultCollection.MSPeakResultList.Count > 0)
            {
                int numPeaksLoaded = Run.ResultCollection.MSPeakResultList.Count;
                GeneralStatusMessage = "Chromatogram data LOADED. (# peaks= " + numPeaksLoaded + ")";
            }
            else
            {
                GeneralStatusMessage = "No Chromatogram data!!! Check your _peaks.txt file for correct format.";
            }
        }
        private void CreatePeaksForChromSourceData()
        {
            PeakDetectAndExportWorkflowParameters parameters = new PeakDetectAndExportWorkflowParameters();
            TargetedWorkflowParameters deconParam = (TargetedWorkflowParameters)this._workflowParameters;

            parameters.PeakBR = deconParam.ChromGenSourceDataPeakBR;
            parameters.PeakFitType = DeconTools.Backend.Globals.PeakFitType.QUADRATIC;
            parameters.SigNoiseThreshold = deconParam.ChromGenSourceDataSigNoise;
            PeakDetectAndExportWorkflow peakCreator = new PeakDetectAndExportWorkflow(this.Run, parameters, _backgroundWorker);
            peakCreator.Execute();
        }
        public void ChromAnalysisForAllSelectedPrecursors()
        {
            var isDataSmoothed = true;

            var numPointsInSmoothing = 9;
            var smoother             = new DeconTools.Backend.ProcessingTasks.Smoothers.SavitzkyGolaySmoother(numPointsInSmoothing, 2);

            var graphGenerator = new BasicGraphControl();

            var thermoFile1 = @"\\protoapps\UserData\Slysz\DeconTools_TestFiles\Orbitrap\QC_Shew_08_04-pt5-2_11Jan09_Sphinx_08-11-18.RAW";
            var run         = new RunFactory().CreateRun(thermoFile1);

            var outputFolderForChromGraphs = @"\\protoapps\DataPkgs\Public\2012\684_DeconMSn_research1\ChromatogramImages";

            if (!Directory.Exists(outputFolderForChromGraphs))
            {
                Directory.CreateDirectory(outputFolderForChromGraphs);
            }

            var scanSetCollection = new ScanSetCollection();
            var scanStart         = run.MinLCScan;
            var scanStop          = run.MaxLCScan;

            scanSetCollection.Create(run, scanStart, scanStop, 1, 1, true);
            var sb = new StringBuilder();

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

            if (!File.Exists(expectedPeaksFile))
            {
                var peakCreatorParams = new PeakDetectAndExportWorkflowParameters();
                peakCreatorParams.PeakBR = 1.75;

                var peakCreator = new PeakDetectAndExportWorkflow(run, peakCreatorParams);
                peakCreator.Execute();
            }

            var peakImporter = new PeakImporterFromText(expectedPeaksFile);

            peakImporter.ImportPeaks(run.ResultCollection.MSPeakResultList);

            double ppmTol = 50;
            var    peakChromatogramGenerator = new PeakChromatogramGenerator(ppmTol, Globals.ChromatogramGeneratorMode.MZ_BASED);
            var    scansetList = scanSetCollection.ScanSetList;

            var scanCounter = 0;
            var currentBin  = 0;

            foreach (var scanSet in scansetList)
            {
                run.CurrentScanSet = scanSet;

                var currentScanLevel = run.GetMSLevel(scanSet.PrimaryScanNumber);


                if (currentScanLevel > 1)
                {
                    scanCounter++;
                    var precursorInfo = run.GetPrecursorInfo(scanSet.PrimaryScanNumber);

                    var scanInfo = run.GetScanInfo(scanSet.PrimaryScanNumber);

                    var scanWindowSize = 400;
                    var startScan      = scanSet.PrimaryScanNumber - scanWindowSize / 2;
                    var stopScan       = scanSet.PrimaryScanNumber + scanWindowSize / 2;

                    run.XYData = peakChromatogramGenerator.GenerateChromatogram(run, startScan, stopScan, precursorInfo.PrecursorMZ, ppmTol);

                    if (run.XYData == null)
                    {
                        run.XYData         = new XYData();
                        run.XYData.Xvalues = new double[] { 0, 1, 2 };
                        run.XYData.Yvalues = new double[] { 0, 1, 2 };

                        Console.WriteLine(scanSet.PrimaryScanNumber + "\t" + precursorInfo.MSLevel + "\t" + precursorInfo.PrecursorMZ +
                                          "\t" + precursorInfo.PrecursorScan + "--------- NO XYData!!! -------------");
                    }
                    else
                    {
                        if (isDataSmoothed)
                        {
                            run.XYData = smoother.Smooth(run.XYData);
                        }
                    }

                    Console.WriteLine(scanSet.PrimaryScanNumber + "\t" + precursorInfo.MSLevel + "\t" + precursorInfo.PrecursorMZ +
                                      "\t" + precursorInfo.PrecursorScan);

                    graphGenerator.GenerateGraph(run.XYData.Xvalues, run.XYData.Yvalues);

                    var line = graphGenerator.GraphPane.CurveList[0] as LineItem;
                    line.Line.IsVisible = true;
                    line.Symbol.Size    = 2;
                    line.Symbol.Type    = SymbolType.Circle;

                    graphGenerator.GraphPane.XAxis.Title.Text          = "scan";
                    graphGenerator.GraphPane.YAxis.Title.Text          = "intensity";
                    graphGenerator.GraphPane.XAxis.Scale.MinAuto       = true;
                    graphGenerator.GraphPane.YAxis.Scale.MinAuto       = false;
                    graphGenerator.GraphPane.YAxis.Scale.Min           = 0;
                    graphGenerator.GraphPane.XAxis.Scale.FontSpec.Size = 12;
                    graphGenerator.AddVerticalLineToGraph(scanSet.PrimaryScanNumber, 3);
                    graphGenerator.AddAnnotationRelativeAxis(scanInfo, 0.3, 0.1);

                    if (scanCounter > 500)
                    {
                        currentBin++;
                        scanCounter = 0;
                    }
                    var currentOutputFolder = Path.Combine(outputFolderForChromGraphs, "bin" + currentBin);
                    if (!Directory.Exists(currentOutputFolder))
                    {
                        Directory.CreateDirectory(currentOutputFolder);
                    }


                    var baseFilename = Path.Combine(currentOutputFolder,
                                                    scanSet.PrimaryScanNumber.ToString().PadLeft(5, '0') + "_mz" + precursorInfo.PrecursorMZ);

                    string outputGraphFilename;

                    string outputXYData;

                    if (isDataSmoothed)
                    {
                        outputGraphFilename = baseFilename + "_smoothed_chrom.png";
                        outputXYData        = baseFilename + "_smoothed_xydata.txt";
                    }
                    else
                    {
                        outputXYData        = baseFilename + "_xydata.txt";
                        outputGraphFilename = baseFilename + "_chrom.png";
                    }


                    graphGenerator.SaveGraph(outputGraphFilename);
                    TestUtilities.WriteToFile(run.XYData, outputXYData);
                }
            }

            Console.WriteLine(sb.ToString());
        }
        private void LoadPeaks()
        {
            try
            {
                _peaksFilename = Path.Combine(this.Run.DataSetPath, this.Run.DatasetName + "_peaks.txt");
                var fiPeaksFile = new FileInfo(_peaksFilename);
                if (!fiPeaksFile.Exists)
                {
                    var alternatePeaksFilePath = Path.Combine(System.IO.Path.GetTempPath(), this.Run.DatasetName + "_peaks.txt");
                    if (File.Exists(alternatePeaksFilePath))
                    {
                        _peaksFilename = alternatePeaksFilePath;
                        fiPeaksFile = new FileInfo(_peaksFilename);
                    }
                }

                if (_recreatePeaksFile || !fiPeaksFile.Exists)
                {
                    _recreatePeaksFile = false;

                    // Make sure we have write access to the folder with the dataset file
                    try
                    {
                        using (var swPeaksfile = new StreamWriter(new FileStream(fiPeaksFile.FullName, FileMode.Create, FileAccess.Write)))
                        {
                            swPeaksfile.WriteLine("Test");
                        }
                    }
                    catch (UnauthorizedAccessException)
                    {
                        // Create the _peaks.txt file in the user's temprorary folder
                        _peaksFilename = Path.Combine(System.IO.Path.GetTempPath(), this.Run.DatasetName + "_peaks.txt");
                        fiPeaksFile = new FileInfo(_peaksFilename);
                    }

                    fiPeaksFile.Refresh();
                    if (fiPeaksFile.Exists)
                        fiPeaksFile.Delete();

                    GeneralStatusMessage =
                        "Creating chromatogram data (_peaks.txt file); this is only done once. It takes 1 - 5 min .......";

                    var peakCreationParameters = new PeakDetectAndExportWorkflowParameters();
                    peakCreationParameters.PeakBR = ChromSourcePeakDetectorPeakBr;
                    peakCreationParameters.PeakFitType = Globals.PeakFitType.QUADRATIC;
                    peakCreationParameters.SigNoiseThreshold = ChromSourcePeakDetectorSigNoise;
                    peakCreationParameters.OutputFolder = fiPeaksFile.Directory.FullName;

                    var peakCreator = new PeakDetectAndExportWorkflow(Run, peakCreationParameters, _backgroundWorker);
                    peakCreator.Execute();
                }
            }
            catch (Exception ex)
            {
                GeneralStatusMessage = ex.Message;
                return;
            }

            GeneralStatusMessage = "Loading chromatogram data (_peaks.txt file) .......";
            try
            {
                PeakImporterFromText peakImporter = new PeakImporterFromText(_peaksFilename, _backgroundWorker);
                peakImporter.ImportPeaks(this.Run.ResultCollection.MSPeakResultList);
            }
            catch (Exception ex)
            {
                GeneralStatusMessage = ex.Message;
                return;
                //throw new ApplicationException("Peaks failed to load. Maybe the details below will help... \n\n" + ex.Message + "\nStacktrace: " + ex.StackTrace, ex);
            }

            if (Run.ResultCollection.MSPeakResultList != null && Run.ResultCollection.MSPeakResultList.Count > 0)
            {
                int numPeaksLoaded = Run.ResultCollection.MSPeakResultList.Count;
                GeneralStatusMessage = "Chromatogram data LOADED. (# peaks= " + numPeaksLoaded + ")";
            }
            else
            {
                GeneralStatusMessage = "No Chromatogram data!!! Check your _peaks.txt file for correct format.";
            }
        }