public HornDeconvolutor(DeconToolsParameters deconParameters) { SetDefaults(); AbsoluteThresholdPeptideIntensity = deconParameters.ThrashParameters.AbsolutePeptideIntensity; AveragineFormula = deconParameters.ThrashParameters.AveragineFormula; ChargeCarrierMass = deconParameters.ThrashParameters.ChargeCarrierMass; CheckPatternsAgainstChargeOne = deconParameters.ThrashParameters.CheckAllPatternsAgainstChargeState1; DeleteIntensityThreshold = deconParameters.ThrashParameters.MinIntensityForDeletion; IsAbsolutePepIntensityUsed = deconParameters.ThrashParameters.UseAbsoluteIntensity; IsActualMonoMZUsed = false; IsCompleteFit = deconParameters.ThrashParameters.CompleteFit; IsMercuryCachingUsed = true; IsMSMSProcessed = deconParameters.ScanBasedWorkflowParameters.ProcessMS2; IsMZRangeUsed = deconParameters.MSGeneratorParameters.UseMZRange; IsO16O18Data = deconParameters.ThrashParameters.IsO16O18Data; IsotopicProfileFitType = deconParameters.ThrashParameters.IsotopicProfileFitType; IsThrashed = deconParameters.ThrashParameters.IsThrashUsed; LeftFitStringencyFactor = deconParameters.ThrashParameters.LeftFitStringencyFactor; MaxChargeAllowed = deconParameters.ThrashParameters.MaxCharge; MaxFitAllowed = deconParameters.ThrashParameters.MaxFit; MaxMWAllowed = deconParameters.ThrashParameters.MaxMass; MaxMZ = deconParameters.MSGeneratorParameters.MaxMZ; //TODO: review this later MinMZ = deconParameters.MSGeneratorParameters.MinMZ; //TODO: review this later MinIntensityForScore = deconParameters.ThrashParameters.MinIntensityForScore; MinPeptideBackgroundRatio = deconParameters.ThrashParameters.MinMSFeatureToBackgroundRatio; NumAllowedShoulderPeaks = deconParameters.ThrashParameters.NumPeaksForShoulder; RightFitStringencyFactor = deconParameters.ThrashParameters.RightFitStringencyFactor; TagFormula = deconParameters.ThrashParameters.TagFormula; NumPeaksUsedInAbundance = deconParameters.ThrashParameters.NumPeaksUsedInAbundance; MaxProcessingTimeMinutes = deconParameters.MiscMSProcessingParameters.MaxMinutesPerScan; SetIsotopeFitScorerOptions(); }
public void ProcessBruker15TSolarixFile1_sumAllScans() { var testFile = FileRefs.RawDataMSFiles.Bruker15TFile1; var dirInfo = new DirectoryInfo(testFile); var datasetName = dirInfo.Name; var expectedIsosOutput = Path.Combine(FileRefs.RawDataMSFiles.Bruker15TFile1, datasetName + "_isos.csv"); if (File.Exists(expectedIsosOutput)) { File.Delete(expectedIsosOutput); } var run = new RunFactory().CreateRun(testFile); var parameters = new DeconToolsParameters(); parameters.MSGeneratorParameters.SumAllSpectra = true; parameters.PeakDetectorParameters.PeakToBackgroundRatio = 15; var workflow = new TraditionalScanBasedWorkflow(parameters, run); workflow.Execute(); Assert.That(File.Exists(expectedIsosOutput)); }
public SaturationIMSScanBasedWorkflow(DeconToolsParameters parameters, Run run, string outputFolderPath = null, BackgroundWorker backgroundWorker = null) : base(parameters, run, outputFolderPath, backgroundWorker) { Check.Require(run is UIMFRun, "Cannot create workflow. Run is required to be a UIMFRun for this type of workflow"); PeakBRSaturatedPeakDetector = parameters.PeakDetectorParameters.PeakToBackgroundRatio * 0.75; _msGenerator = new UIMF_MSGenerator(); _peakDetector = new DeconToolsPeakDetectorV2(5, 3, Globals.PeakFitType.QUADRATIC, false); _zeroFiller = new DeconToolsZeroFiller(); //#if Disable_DeconToolsV2 // throw new NotImplementedException("Cannot use class SaturationIMSScanBasedWorkflow since support for C++ based DeconToolsV2 is disabled"); //#else _deconvolutor = new HornDeconvolutor(parameters) { MaxFitAllowed = 0.9, MinPeptideBackgroundRatio = _peakDetector.PeakToBackgroundRatio }; //#endif AdjustMonoIsotopicMasses = true; Run.PeakList = new List <Peak>(); }
public void scanBasedWorkflowTest1() { string testFile = @"D:\Data\UIMF\Problem_datasets\DsrC_Black_02_6Feb12_Cougar_11-10-11.raw"; string parameterFile = @"D:\Data\UIMF\Problem_datasets\LTQ_Orb_USTags_MS2_THRASH_WithPeaks_Relaxed.xml"; Run run = new RunFactory().CreateRun(testFile); var parameters = new DeconToolsParameters(); parameters.LoadFromOldDeconToolsParameterFile(parameterFile); var workflow = ScanBasedWorkflow.CreateWorkflow(run, parameters); workflow.NewDeconToolsParameters.MSGeneratorParameters.UseLCScanRange = true; workflow.NewDeconToolsParameters.MSGeneratorParameters.MinLCScan = 1; workflow.NewDeconToolsParameters.MSGeneratorParameters.MaxLCScan = 5; workflow.ExportData = true; workflow.Execute(); // foreach (var isosResult in run.ResultCollection.ResultList) // { // isosResult.Display(); // } }
public static ScanBasedWorkflow CreateWorkflow(Run run, DeconToolsParameters parameters, string outputFolderPath = null, BackgroundWorker backgroundWorker = null) { switch (parameters.ScanBasedWorkflowParameters.ScanBasedWorkflowName.ToLower()) { case "uimf_saturation_repair": return(new SaturationIMSScanBasedWorkflow(parameters, run, outputFolderPath, backgroundWorker)); case "uimf_standard": return(new StandardIMSScanBasedWorkflow(parameters, run, outputFolderPath, backgroundWorker)); case "standard": if (run is UIMFRun) { return(new StandardIMSScanBasedWorkflow(parameters, run, outputFolderPath, backgroundWorker)); } return(new TraditionalScanBasedWorkflow(parameters, run, outputFolderPath, backgroundWorker)); case "run_merging_with_peak_export": return(new RunMergingPeakExportingWorkflow(parameters, null, outputFolderPath, backgroundWorker)); case "deconmsn": return(new DeconMSnWorkflow(parameters, run, outputFolderPath, backgroundWorker)); default: throw new Exception("ScanBasedWorkflowName is unknown: " + parameters.ScanBasedWorkflowParameters.ScanBasedWorkflowName); } }
public void Test1() { Run run = new RunFactory().CreateRun( @"\\pnl\projects\MSSHARE\Webb_Ian\no cid.UIMF"); DeconToolsParameters parameters = new DeconToolsParameters(); parameters.LoadFromOldDeconToolsParameterFile( @"\\pnl\projects\MSSHARE\Webb_Ian\IMS_UIMF_PeakBR2_PeptideBR3_SN3_SumScans3_NoLCSum_Sat50000_2012-02-27.xml"); string expectedIsosFile = Path.Combine(run.DataSetPath, run.DatasetName + "_isos.csv"); string expectedScansFile = Path.Combine(run.DataSetPath, run.DatasetName + "_scans.csv"); string expectedPeaksFile = Path.Combine(run.DataSetPath, run.DatasetName + "_peaks.txt"); if (File.Exists(expectedIsosFile)) { File.Delete(expectedIsosFile); } if (File.Exists(expectedScansFile)) { File.Delete(expectedScansFile); } if (File.Exists(expectedPeaksFile)) { File.Delete(expectedPeaksFile); } var workflow = ScanBasedWorkflow.CreateWorkflow(run, parameters); workflow.Execute(); }
internal IMSScanBasedWorkflow(DeconToolsParameters parameters, Run run, string outputDirectoryPath = null, BackgroundWorker backgroundWorker = null) : base(parameters, run, outputDirectoryPath, backgroundWorker) { DeconTools.Utilities.Check.Require(run is UIMFRun, "Cannot create workflow. Run is required to be a UIMFRun for this type of workflow"); mCachedProgressMessage = string.Empty; mCachedUserState = new ScanBasedProgressInfo(Run, new ScanSet(), new IMSScanSet(0)); }
public void saturatedFixingTest2() { string uimfFile = @"D:\Data\UIMF\Sarc_Main_Study_Controls\Sarc_P08_A01_0673_21Nov11_Cheetah_11-09-03.uimf"; Run run = new RunFactory().CreateRun(uimfFile); var parameters = new DeconToolsParameters(); parameters.LoadFromOldDeconToolsParameterFile(@"\\gigasax\DMS_Parameter_Files\Decon2LS\IMS_UIMF_PeakBR4_PeptideBR4_SN3_SumScans3_NoLCSum_Sat50000_2012-01-30.xml"); parameters.MSGeneratorParameters.UseLCScanRange = true; parameters.MSGeneratorParameters.MinLCScan = 397; parameters.MSGeneratorParameters.MaxLCScan = 408; parameters.ScanBasedWorkflowParameters.ScanBasedWorkflowName = "uimf_saturation_repair"; var workflow = ScanBasedWorkflow.CreateWorkflow(run, parameters); workflow.ExportData = true; var sw = new Stopwatch(); sw.Start(); workflow.Execute(); return; sw.Stop(); var distinctItems = run.ResultCollection.ResultList.GroupBy(x => x.MSFeatureID).Select(y => y.First()).ToList(); int minFrame = parameters.MSGeneratorParameters.MinLCScan; int maxFrame = parameters.MSGeneratorParameters.MaxLCScan; int minScan = 102; int maxScan = 125; double targetMass = 1642.85958; int chargestate = 4; double tolerance = 0.3; var featureData = (from n in distinctItems where (Math.Abs(n.IsotopicProfile.MonoIsotopicMass - targetMass)) < tolerance && n.IsotopicProfile.ChargeState == chargestate select n).Select <IsosResult, UIMFIsosResult>(r => (UIMFIsosResult)r).ToList(); OutputFeatureIntensityData(featureData, minFrame, maxFrame, maxScan, minScan); MathUtils mathUtils = new MathUtils(); var monoMasses = (from n in featureData select n.IsotopicProfile.MonoIsotopicMass).ToList(); var massVariance = MathUtils.GetStDev(monoMasses); Console.WriteLine("Mass variance = " + massVariance); Console.WriteLine("Time taken = " + sw.ElapsedMilliseconds); }
public void WorkflowTesting2_SumLC5() { var localTestFile = @"C:\Users\d3x720\Documents\Data\QCShew\QC_Shew_08_04-pt5-2_11Jan09_Sphinx_08-11-18.RAW"; var parameters = new DeconToolsParameters(); parameters.MSGeneratorParameters.UseLCScanRange = true; parameters.MSGeneratorParameters.MinLCScan = 6012; parameters.MSGeneratorParameters.MaxLCScan = 6019; parameters.MSGeneratorParameters.SumSpectraAcrossLC = true; parameters.MSGeneratorParameters.NumLCScansToSum = 5; parameters.PeakDetectorParameters.PeakToBackgroundRatio = 1.3; parameters.PeakDetectorParameters.SignalToNoiseThreshold = 2; parameters.PeakDetectorParameters.IsDataThresholded = true; parameters.ThrashParameters.MinIntensityForScore = 1; parameters.ThrashParameters.MinMSFeatureToBackgroundRatio = 1; var run = new RunFactory().CreateRun(localTestFile); var workflow = new DeconMSnWorkflow(parameters, run); workflow.Execute(); }
public void TempSaturationFixingTestOnYehiaBSAData() { var uimfFile = @"\\protoapps\UserData\Slysz\DeconTools_TestFiles\UIMF\BSA_30N2_30ms_gate_10tof_Padjust_0000.UIMF"; var run = new RunFactory().CreateRun(uimfFile); var parameters = new DeconToolsParameters(); parameters.PeakDetectorParameters.PeakToBackgroundRatio = 4; parameters.PeakDetectorParameters.SignalToNoiseThreshold = 3; parameters.ThrashParameters.MaxFit = 0.6; parameters.MSGeneratorParameters.UseLCScanRange = true; parameters.MSGeneratorParameters.MinLCScan = 2; parameters.MSGeneratorParameters.MaxLCScan = 2; parameters.MSGeneratorParameters.UseMZRange = true; parameters.MSGeneratorParameters.MinMZ = 652; parameters.MSGeneratorParameters.MaxMZ = 657; parameters.MSGeneratorParameters.SumSpectraAcrossLC = true; parameters.MSGeneratorParameters.SumSpectraAcrossIms = true; parameters.MSGeneratorParameters.NumLCScansToSum = 1; parameters.MSGeneratorParameters.NumImsScansToSum = 7; parameters.MiscMSProcessingParameters.UseZeroFilling = true; parameters.ThrashParameters.MinIntensityForDeletion = 10; parameters.MiscMSProcessingParameters.SaturationThreshold = 6000; parameters.ScanBasedWorkflowParameters.ScanBasedWorkflowName = "uimf_saturation_repair"; var workflow = ScanBasedWorkflow.CreateWorkflow(run, parameters); //workflow.ExportData = false; workflow.Execute(); }
public void LowIntensityButGoodFeatureTest1() { var rawDataFile = @"D:\Data\DeconMSn_testing\QC_Shew_13_01_pt5_b_23Jan13_Cougar_12-02-27.raw"; var parameters = new DeconToolsParameters(); parameters.MSGeneratorParameters.UseLCScanRange = true; parameters.MSGeneratorParameters.MinLCScan = 20593; parameters.MSGeneratorParameters.MaxLCScan = 20598; parameters.PeakDetectorParameters.PeakToBackgroundRatio = 1.3; parameters.PeakDetectorParameters.SignalToNoiseThreshold = 2; parameters.PeakDetectorParameters.IsDataThresholded = true; parameters.ThrashParameters.MinIntensityForScore = 1; parameters.ThrashParameters.MinMSFeatureToBackgroundRatio = 1; var run = new RunFactory().CreateRun(rawDataFile); var workflow = new DeconMSnWorkflow(parameters, run); workflow.NumMaxAttemptsAtLowIntensitySpecies = 4; workflow.Execute(); }
public void saturatedFixingTest3() { var uimfFile = @"D:\Data\UIMF\Sarc_Main_Study_Controls\Sarc_P09_B06_0786_20Jul11_Cheetah_11-05-31.uimf"; var run = new RunFactory().CreateRun(uimfFile); var parameters = new DeconToolsParameters(); parameters.LoadFromOldDeconToolsParameterFile( @"\\protoapps\UserData\Slysz\DeconTools_TestFiles\ParameterFiles\IMS_UIMF_PeakBR2_PeptideBR3_SN3_SumScans3_NoLCSum_Sat50000_2012-02-27_frames_180_195.xml"); parameters.MSGeneratorParameters.UseLCScanRange = true; parameters.MSGeneratorParameters.MinLCScan = 394; parameters.MSGeneratorParameters.MaxLCScan = 404; var workflow = ScanBasedWorkflow.CreateWorkflow(run, parameters); workflow.ExportData = false; var sw = new Stopwatch(); sw.Start(); workflow.Execute(); //return; sw.Stop(); var distinctItems = run.ResultCollection.ResultList.GroupBy(x => x.MSFeatureID).Select(y => y.First()).ToList(); var minFrame = parameters.MSGeneratorParameters.MinLCScan; var maxFrame = parameters.MSGeneratorParameters.MaxLCScan; var minScan = 102; var maxScan = 127; var targetMass = 1059.55169; var chargestate = 2; var tolerance = 0.3; var featureData = (from n in distinctItems where (Math.Abs(n.IsotopicProfile.MonoIsotopicMass - targetMass)) < tolerance && n.IsotopicProfile.ChargeState == chargestate select n).Select <IsosResult, UIMFIsosResult>(r => (UIMFIsosResult)r).ToList(); OutputFeatureIntensityData(featureData, minFrame, maxFrame, maxScan, minScan); var mathUtils = new MathUtils(); var monoMasses = (from n in featureData select n.IsotopicProfile.MonoIsotopicMass).ToList(); var massVariance = MathUtils.GetStDev(monoMasses); Console.WriteLine("Mass variance = " + massVariance); Console.WriteLine("Time taken = " + sw.ElapsedMilliseconds); }
public void TraditionalWorkflowTestOrbitrapData_useThrashV1_test2() { var parameterFile = @"\\protoapps\UserData\Slysz\DeconTools_TestFiles\ParameterFiles\LTQ_Orb\LTQ_Orb_SN2_PeakBR1pt3_PeptideBR1_Thrash_scan6000_9000 - oldThrash.xml"; var run = new RunFactory().CreateRun(FileRefs.RawDataMSFiles.OrbitrapStdFile1); var expectedIsosFile = Path.Combine(run.DataSetPath, run.DatasetName + "_isos.csv"); var expectedScansFile = Path.Combine(run.DataSetPath, run.DatasetName + "_scans.csv"); var expectedPeaksFile = Path.Combine(run.DataSetPath, run.DatasetName + "_peaks.txt"); if (File.Exists(expectedIsosFile)) { File.Delete(expectedIsosFile); } if (File.Exists(expectedScansFile)) { File.Delete(expectedScansFile); } if (File.Exists(expectedPeaksFile)) { File.Delete(expectedPeaksFile); } var parameters = new DeconToolsParameters(); parameters.LoadFromOldDeconToolsParameterFile(parameterFile); //parameters.MSGeneratorParameters.MinLCScan = 6005; //parameters.MSGeneratorParameters.MaxLCScan = 6005; var workflow = ScanBasedWorkflow.CreateWorkflow(run, parameters); workflow.Execute(); Assert.IsTrue(File.Exists(expectedIsosFile), "Isos file was not created."); Assert.IsTrue(File.Exists(expectedScansFile), "Scans file was not created."); Assert.IsTrue(File.Exists(expectedPeaksFile), "Peaks file was not created."); var isosImporter = new IsosImporter(expectedIsosFile, run.MSFileType); var isos = isosImporter.Import(); Assert.AreEqual(186, isos.Count); var peakImporter = new PeakImporterFromText(expectedPeaksFile); var peaklist = new List <MSPeakResult>(); peakImporter.ImportPeaks(peaklist); Assert.AreEqual(809, peaklist.Count); var sumIntensities = isos.Select(p => p.IntensityAggregate).Sum(); //Assert.AreEqual(263499300d, Math.Round(sumIntensities)); var sumPeakIntensities = peaklist.Select(p => p.Height).Sum(); //Assert.AreEqual(605170496.0f, sumPeakIntensities); }
protected ScanBasedWorkflow(DeconToolsParameters parameters, Run run, string outputFolderPath = null, BackgroundWorker backgroundWorker = null) { NewDeconToolsParameters = parameters; Run = run; OutputFolderPath = outputFolderPath; //path is null unless specified BackgroundWorker = backgroundWorker; //null unless specified ExportData = true; }
public DeconMSnWorkflow(DeconToolsParameters parameters, Run run, string outputDirectoryPath = null, BackgroundWorker backgroundWorker = null) : base(parameters, run, outputDirectoryPath, backgroundWorker) { ToleranceInPPM = 30; NumMaxAttemptsAtLowIntensitySpecies = 4; parameters.ScanBasedWorkflowParameters.ProcessMS2 = true; DeconMSnResults = new List <DeconMSnResult>(); IsParentProfileDataExported = true; }
public void NegativeIonModeDeisotoping_useThrashV1() { var parameterFile = @"\\protoapps\UserData\Slysz\DeconTools_TestFiles\ParameterFiles\LTQ_Orb\LTQ_Orb_SN2_PeakBR2_PeptideBR1_NegIon_Thrash_Sum3.xml"; var testFile = @"\\protoapps\UserData\Slysz\DeconTools_TestFiles\Orbitrap\NegativeIonMode\AC2_Neg_highpH_14Apr13_Sauron_13-04-03.raw"; var run = new RunFactory().CreateRun(testFile); var expectedIsosFile = Path.Combine(run.DataSetPath, run.DatasetName + "_isos.csv"); var expectedScansFile = Path.Combine(run.DataSetPath, run.DatasetName + "_scans.csv"); var expectedPeaksFile = Path.Combine(run.DataSetPath, run.DatasetName + "_peaks.txt"); if (File.Exists(expectedIsosFile)) { File.Delete(expectedIsosFile); } if (File.Exists(expectedScansFile)) { File.Delete(expectedScansFile); } if (File.Exists(expectedPeaksFile)) { File.Delete(expectedPeaksFile); } var parameters = new DeconToolsParameters(); parameters.LoadFromOldDeconToolsParameterFile(parameterFile); parameters.ScanBasedWorkflowParameters.DeconvolutionType = Globals.DeconvolutionType.ThrashV1; parameters.MSGeneratorParameters.MinLCScan = 4100; parameters.MSGeneratorParameters.MaxLCScan = 4100; var workflow = ScanBasedWorkflow.CreateWorkflow(run, parameters); workflow.Execute(); Assert.IsTrue(File.Exists(expectedIsosFile), "Isos file was not created."); Assert.IsTrue(File.Exists(expectedScansFile), "Scans file was not created."); Assert.IsTrue(File.Exists(expectedPeaksFile), "Peaks file was not created."); var isosImporter = new IsosImporter(expectedIsosFile, run.MSFileType); var isos = isosImporter.Import(); var testIso = (from n in isos where n.IsotopicProfile.MonoPeakMZ > 744 && n.IsotopicProfile.MonoPeakMZ < 749 select n).FirstOrDefault(); Assert.IsNotNull(testIso, "Test iso not found."); Console.WriteLine("monomass= " + testIso.IsotopicProfile.MonoIsotopicMass); Assert.AreEqual(1491.32852m, (decimal)Math.Round(testIso.IsotopicProfile.MonoIsotopicMass, 5)); }
public void TraditionalWorkflowTestOrbitrapData_usingNewThrash() { var parameterFile = FileRefs.ParameterFiles.Orbitrap_Scans6000_6050ParamFile; var run = new RunFactory().CreateRun(FileRefs.RawDataMSFiles.OrbitrapStdFile1); var expectedIsosFile = Path.Combine(run.DataSetPath, run.DatasetName + "_isos.csv"); var expectedScansFile = Path.Combine(run.DataSetPath, run.DatasetName + "_scans.csv"); var expectedPeaksFile = Path.Combine(run.DataSetPath, run.DatasetName + "_peaks.txt"); if (File.Exists(expectedIsosFile)) { File.Delete(expectedIsosFile); } if (File.Exists(expectedScansFile)) { File.Delete(expectedScansFile); } if (File.Exists(expectedPeaksFile)) { File.Delete(expectedPeaksFile); } var allPeaksFilepath = @"\\protoapps\UserData\Slysz\DeconTools_TestFiles\Orbitrap\QC_Shew_08_04-pt5-2_11Jan09_Sphinx_08-11-18_peaksFULL.txt"; File.Copy(allPeaksFilepath, allPeaksFilepath.Replace("FULL", "")); var parameters = new DeconToolsParameters(); parameters.LoadFromOldDeconToolsParameterFile(parameterFile); parameters.ScanBasedWorkflowParameters.DeconvolutionType = Globals.DeconvolutionType.ThrashV2; parameters.MSGeneratorParameters.UseLCScanRange = true; parameters.MSGeneratorParameters.MinLCScan = 6000; // run.GetMinPossibleLCScanNum(); parameters.MSGeneratorParameters.MaxLCScan = 6050; // run.GetMaxPossibleLCScanNum(); var workflow = ScanBasedWorkflow.CreateWorkflow(run, parameters); workflow.Execute(); Assert.IsTrue(File.Exists(expectedIsosFile), "Isos file was not created."); Assert.IsTrue(File.Exists(expectedScansFile), "Scans file was not created."); Assert.IsTrue(File.Exists(expectedPeaksFile), "Peaks file was not created."); var isosImporter = new IsosImporter(expectedIsosFile, run.MSFileType); var isos = isosImporter.Import(); //Assert.AreEqual(186, isos.Count); //TODO: still report Console.WriteLine("Num MSfeatures = " + isos.Count); var sumIntensities = isos.Select(p => p.IntensityAggregate).Sum(); // Assert.AreEqual(266185816d, Math.Round(sumIntensities)); }
public void TraditionalWorkflowTestOrbitrapData_DetectPeaksOnly() { var parameterFile = FileRefs.ParameterFiles.Orbitrap_Scans6000_6050ParamFile; var run = new RunFactory().CreateRun(FileRefs.RawDataMSFiles.OrbitrapStdFile1); var expectedIsosFile = Path.Combine(run.DataSetPath, run.DatasetName + "_isos.csv"); var expectedScansFile = Path.Combine(run.DataSetPath, run.DatasetName + "_scans.csv"); var expectedPeaksFile = Path.Combine(run.DataSetPath, run.DatasetName + "_peaks.txt"); if (File.Exists(expectedIsosFile)) { File.Delete(expectedIsosFile); } if (File.Exists(expectedScansFile)) { File.Delete(expectedScansFile); } if (File.Exists(expectedPeaksFile)) { File.Delete(expectedPeaksFile); } var parameters = new DeconToolsParameters(); parameters.LoadFromOldDeconToolsParameterFile(parameterFile); parameters.ScanBasedWorkflowParameters.DeconvolutionType = Globals.DeconvolutionType.None; parameters.MSGeneratorParameters.MinLCScan = 6005; parameters.MSGeneratorParameters.MaxLCScan = 6005; var workflow = ScanBasedWorkflow.CreateWorkflow(run, parameters); workflow.Execute(); Assert.IsTrue(File.Exists(expectedIsosFile), "Isos file was not created."); Assert.IsTrue(File.Exists(expectedScansFile), "Scans file was not created."); Assert.IsTrue(File.Exists(expectedPeaksFile), "Peaks file was not created."); var peakImporter = new PeakImporterFromText(expectedPeaksFile); var peaklist = new List <MSPeakResult>(); peakImporter.ImportPeaks(peaklist); Assert.AreEqual(809, peaklist.Count); var isosImporter = new IsosImporter(expectedIsosFile, run.MSFileType); var isos = isosImporter.Import(); Assert.AreEqual(0, isos.Count); }
public void WorkflowTypeIsWrongTest1() { var uimfFile = @"D:\Data\UIMF\Sarc_Main_Study_Controls\Sarc_P09_B06_0786_20Jul11_Cheetah_11-05-31.uimf"; var run = new RunFactory().CreateRun(uimfFile); var parameters = new DeconToolsParameters(); parameters.ScanBasedWorkflowParameters.ScanBasedWorkflowName = "incorrectTextProblem"; var workflow = ScanBasedWorkflow.CreateWorkflow(run, parameters); }
public RunMergingPeakExportingWorkflow(DeconToolsParameters parameters, IEnumerable <string> datasetFileNameList, string outputDirectoryPath = null, BackgroundWorker backgroundWorker = null) : base(null, null) { NewDeconToolsParameters = parameters; NewDeconToolsParameters.ScanBasedWorkflowParameters.ExportPeakData = true; DatasetFileNameList = datasetFileNameList; OutputDirectoryPath = outputDirectoryPath; BackgroundWorker = backgroundWorker; }
public void fitterOnHornDataTest1() { Run run = new XCaliburRun2(xcaliburTestfile); var results = new ResultCollection(run); run.CurrentScanSet = new ScanSet(6067); var isTicRequested = false; Task msGen = new GenericMSGenerator(1154, 1158, isTicRequested); msGen.Execute(results); Task peakDetector = new DeconToolsPeakDetectorV2(0.5, 3, Globals.PeakFitType.QUADRATIC, false); peakDetector.Execute(results); var deconParameters = new DeconToolsParameters(); deconParameters.ThrashParameters.MinMSFeatureToBackgroundRatio = 2; // PeptideMinBackgroundRatio Task decon = new HornDeconvolutor(deconParameters); decon.Execute(results); var result1 = results.ResultList[0]; var distcreator = new MercuryDistributionCreator(); var resolution = result1.IsotopicProfile.GetMZofMostAbundantPeak() / result1.IsotopicProfile.GetFWHM(); distcreator.CreateDistribution(result1.IsotopicProfile.MonoIsotopicMass, result1.IsotopicProfile.ChargeState, resolution); distcreator.OffsetDistribution(result1.IsotopicProfile); var theorXYData = distcreator.Data; //StringBuilder sb = new StringBuilder(); //TestUtilities.GetXYValuesToStringBuilder(sb, theorXYData.Xvalues, theorXYData.Yvalues); //Console.WriteLine(sb.ToString()); var areafitter = new AreaFitter(); var fitval = areafitter.GetFit(theorXYData, run.XYData, 10); Console.WriteLine(result1.IsotopicProfile.Score + "\t" + fitval); Console.WriteLine((result1.IsotopicProfile.Score - fitval) / result1.IsotopicProfile.Score); Assert.AreEqual(0.0207350903681061m, (decimal)fitval); //TODO: fix this test... i'm getting 0.0207350903681061m }
public void Test1() { var parameters = new DeconToolsParameters(); var datasetList = new List <string>(); datasetList.Add(@"\\protoapps\UserData\Slysz\DeconTools_TestFiles\JuliaLaskinRunMergingWorkflow\b-LSOA_HPLC_ESIbox_pos_res60k_RT92-98.raw"); datasetList.Add(@"\\protoapps\UserData\Slysz\DeconTools_TestFiles\JuliaLaskinRunMergingWorkflow\b-LSOA_HPLC_ESIbox_pos_res60k_RT1255-1282.raw"); datasetList.Add(@"\\protoapps\UserData\Slysz\DeconTools_TestFiles\JuliaLaskinRunMergingWorkflow\b-LSOA_HPLC_ESIbox_pos_res60k_RT1400-1500.raw"); var workflow = new RunMergingPeakExportingWorkflow(parameters, datasetList); workflow.Execute(); }
public void TraditionalWorkflowTestOrbitrapData_InformedThrash() { var parameterFile = FileRefs.ParameterFiles.Orbitrap_Scans6000_6050ParamFile; var run = new RunFactory().CreateRun(FileRefs.RawDataMSFiles.OrbitrapStdFile1); var expectedIsosFile = Path.Combine(run.DataSetPath, run.DatasetName + "_isos.csv"); var expectedScansFile = Path.Combine(run.DataSetPath, run.DatasetName + "_scans.csv"); var expectedPeaksFile = Path.Combine(run.DataSetPath, run.DatasetName + "_peaks.txt"); if (File.Exists(expectedIsosFile)) { File.Delete(expectedIsosFile); } if (File.Exists(expectedScansFile)) { File.Delete(expectedScansFile); } //if (File.Exists(expectedPeaksFile)) File.Delete(expectedPeaksFile); var parameters = new DeconToolsParameters(); parameters.LoadFromOldDeconToolsParameterFile(parameterFile); parameters.ScanBasedWorkflowParameters.DeconvolutionType = Globals.DeconvolutionType.ThrashV2; parameters.MSGeneratorParameters.MinLCScan = 6005; parameters.MSGeneratorParameters.MaxLCScan = 6050; var workflow = ScanBasedWorkflow.CreateWorkflow(run, parameters); workflow.Execute(); Assert.IsTrue(File.Exists(expectedIsosFile), "Isos file was not created."); Assert.IsTrue(File.Exists(expectedScansFile), "Scans file was not created."); Assert.IsTrue(File.Exists(expectedPeaksFile), "Peaks file was not created."); var isosImporter = new IsosImporter(expectedIsosFile, run.MSFileType); var isos = isosImporter.Import(); Assert.AreEqual(1287, isos.Count); var sumIntensities = isos.Select(p => p.IntensityAggregate).Sum(); Assert.AreEqual(1974438598m, (decimal)Math.Round(sumIntensities)); // Expected: 1973657234m // But was: 1974438598m }
public DeconToolsParameters GetDeconToolsParameters() { var deconToolsParameters = new DeconToolsParameters(); deconToolsParameters.ThrashParameters.AbsolutePeptideIntensity = HornTransformParameters.AbsolutePeptideIntensity; deconToolsParameters.ThrashParameters.AveragineFormula = HornTransformParameters.AveragineFormula; deconToolsParameters.ThrashParameters.ChargeCarrierMass = HornTransformParameters.CCMass; deconToolsParameters.ThrashParameters.CheckAllPatternsAgainstChargeState1 = HornTransformParameters.CheckAllPatternsAgainstCharge1; deconToolsParameters.ThrashParameters.MinIntensityForDeletion = HornTransformParameters.DeleteIntensityThreshold; deconToolsParameters.ThrashParameters.UseAbsoluteIntensity = HornTransformParameters.UseAbsolutePeptideIntensity; deconToolsParameters.ThrashParameters.CompleteFit = HornTransformParameters.CompleteFit; deconToolsParameters.ScanBasedWorkflowParameters.ProcessMS2 = HornTransformParameters.ProcessMSMS; deconToolsParameters.MSGeneratorParameters.UseMZRange = HornTransformParameters.UseMZRange; deconToolsParameters.ThrashParameters.IsO16O18Data = HornTransformParameters.O16O18Media; switch (HornTransformParameters.IsotopeFitType) { case DeconToolsV2.enmIsotopeFitType.AREA: deconToolsParameters.ThrashParameters.IsotopicProfileFitType = Globals.IsotopicProfileFitType.AREA; break; case DeconToolsV2.enmIsotopeFitType.CHISQ: deconToolsParameters.ThrashParameters.IsotopicProfileFitType = Globals.IsotopicProfileFitType.CHISQ; break; case DeconToolsV2.enmIsotopeFitType.PEAK: deconToolsParameters.ThrashParameters.IsotopicProfileFitType = Globals.IsotopicProfileFitType.PEAK; break; default: deconToolsParameters.ThrashParameters.IsotopicProfileFitType = Globals.IsotopicProfileFitType.Undefined; break; } deconToolsParameters.ThrashParameters.IsThrashUsed = HornTransformParameters.ThrashOrNot; deconToolsParameters.ThrashParameters.LeftFitStringencyFactor = HornTransformParameters.LeftFitStringencyFactor; deconToolsParameters.ThrashParameters.MaxCharge = HornTransformParameters.MaxCharge; deconToolsParameters.ThrashParameters.MaxFit = HornTransformParameters.MaxFit; deconToolsParameters.ThrashParameters.MaxMass = HornTransformParameters.MaxMW; deconToolsParameters.MSGeneratorParameters.MaxMZ = HornTransformParameters.MaxMZ; //TODO: review this later deconToolsParameters.MSGeneratorParameters.MinMZ = HornTransformParameters.MinMZ; //TODO: review this later deconToolsParameters.ThrashParameters.MinIntensityForScore = HornTransformParameters.MinIntensityForScore; deconToolsParameters.ThrashParameters.MinMSFeatureToBackgroundRatio = HornTransformParameters.PeptideMinBackgroundRatio; deconToolsParameters.ThrashParameters.NumPeaksForShoulder = HornTransformParameters.NumPeaksForShoulder; deconToolsParameters.ThrashParameters.RightFitStringencyFactor = HornTransformParameters.RightFitStringencyFactor; deconToolsParameters.ThrashParameters.TagFormula = HornTransformParameters.TagFormula; deconToolsParameters.ThrashParameters.NumPeaksUsedInAbundance = HornTransformParameters.NumPeaksUsedInAbundance; return(deconToolsParameters); }
public void WorkflowTypeIsCorrectTest1() { var uimfFile = @"D:\Data\UIMF\Sarc_Main_Study_Controls\Sarc_P09_B06_0786_20Jul11_Cheetah_11-05-31.uimf"; var run = new RunFactory().CreateRun(uimfFile); var parameters = new DeconToolsParameters(); parameters.ScanBasedWorkflowParameters.ScanBasedWorkflowName = "standard"; var workflow = ScanBasedWorkflow.CreateWorkflow(run, parameters); Assert.IsTrue(workflow is IMSScanBasedWorkflow); parameters.ScanBasedWorkflowParameters.ScanBasedWorkflowName = "uimf_saturation_repair"; workflow = ScanBasedWorkflow.CreateWorkflow(run, parameters); Assert.IsTrue(workflow is SaturationIMSScanBasedWorkflow); }
public static Deconvolutor CreateDeconvolutor(DeconToolsParameters parameters) { Check.Require(parameters != null, "Factory cannot create Deconvolutor class. DeconToolsParameters are null."); if (parameters == null) { return(new NullDeconvolutor()); } Deconvolutor decon; switch (parameters.ScanBasedWorkflowParameters.DeconvolutionType) { case Globals.DeconvolutionType.None: return(new NullDeconvolutor()); case Globals.DeconvolutionType.ThrashV1: // 2016 Port of ThrashV1 in DeconEngineV2 to C#, .NET 4 // This is the preferred deconvoluter as of Fall 2017 decon = new HornDeconvolutor(parameters); return(decon); case Globals.DeconvolutionType.ThrashV2: // 2012 port of DeconEngine to C# // As of 2016, not used because results do not agree with ThrashV1, C++ #pragma warning disable 618 decon = new InformedThrashDeconvolutor(parameters.ThrashParameters); #pragma warning restore 618 return(decon); case Globals.DeconvolutionType.Rapid: // To include support for Rapid, you must add a reference to DeconEngine.dll, which was compiled with Visual Studio 2003 and uses MSVCP71.dll // Note that DeconEngine.dll also depends on xerces-c_2_7.dll while DeconEngineV2.dll depends on xerces-c_2_8.dll #if INCLUDE_RAPID return(new RapidDeconvolutor(parameters.ThrashParameters.MinMSFeatureToBackgroundRatio, Deconvolutor.DeconResultComboMode.simplyAddIt)); #else throw new NotSupportedException("Support for Rapid is not included in this version of the DLL"); #endif default: throw new ArgumentOutOfRangeException(nameof(parameters), "Trying to create the deconvolutor, but an incorrect Deconvolutor type was given. Good example: 'ThrashV1'"); } }
public void WorkflowTest1() { var parameters = new DeconToolsParameters(); parameters.MSGeneratorParameters.UseLCScanRange = true; parameters.MSGeneratorParameters.MinLCScan = 6005; parameters.MSGeneratorParameters.MaxLCScan = 6012; parameters.PeakDetectorParameters.PeakToBackgroundRatio = 1.3; parameters.PeakDetectorParameters.SignalToNoiseThreshold = 2; parameters.PeakDetectorParameters.IsDataThresholded = true; parameters.ThrashParameters.MinIntensityForScore = 1; parameters.ThrashParameters.MinMSFeatureToBackgroundRatio = 1; var run = new RunFactory().CreateRun(testFile1); var expectedResultsFile1 = Path.Combine(run.DataSetPath, run.DatasetName + ".mgf"); var expectedResultsFile2 = Path.Combine(run.DataSetPath, run.DatasetName + "_DeconMSn_log.txt"); var expectedResultsFile3 = Path.Combine(run.DataSetPath, run.DatasetName + "_profile.txt"); if (File.Exists(expectedResultsFile1)) { File.Delete(expectedResultsFile1); } if (File.Exists(expectedResultsFile2)) { File.Delete(expectedResultsFile2); } if (File.Exists(expectedResultsFile3)) { File.Delete(expectedResultsFile3); } var workflow = new DeconMSnWorkflow(parameters, run); workflow.Execute(); Assert.IsTrue(File.Exists(expectedResultsFile1)); Assert.IsTrue(File.Exists(expectedResultsFile2)); Assert.IsTrue(File.Exists(expectedResultsFile3)); }
public void processUIMFContainingMSMS() { var testFile = @"\\protoapps\UserData\Slysz\DeconTools_TestFiles\UIMF\MSMS_Testing\PepMix_MSMS_4msSA.UIMF"; var run = new RunFactory().CreateRun(testFile); var expectedIsosOutput = Path.Combine(Path.GetDirectoryName(testFile), Path.GetFileNameWithoutExtension(testFile) + "_isos.csv"); if (File.Exists(expectedIsosOutput)) { File.Delete(expectedIsosOutput); } var parameters = new DeconToolsParameters(); parameters.MSGeneratorParameters.NumLCScansToSum = 3; parameters.MSGeneratorParameters.NumImsScansToSum = 9; parameters.PeakDetectorParameters.PeakToBackgroundRatio = 4; parameters.MiscMSProcessingParameters.UseZeroFilling = true; parameters.ScanBasedWorkflowParameters.ProcessMS2 = true; parameters.MSGeneratorParameters.UseLCScanRange = true; parameters.MSGeneratorParameters.SumSpectraAcrossLC = true; parameters.MSGeneratorParameters.MinLCScan = 1; //min frame parameters.MSGeneratorParameters.MaxLCScan = 15; //max frame var workflow = ScanBasedWorkflow.CreateWorkflow(run, parameters); workflow.Execute(); var results = new List <IsosResult>(); Assert.That(File.Exists(expectedIsosOutput)); var importer = new IsosImporter(expectedIsosOutput, Globals.MSFileType.PNNL_UIMF); results = importer.Import(); //TestUtilities.DisplayMSFeatures(results); //Assert.AreEqual(36078, results.Count); //Assert.AreEqual(1224247916, (int)results.Sum(p => p.IntensityAggregate)); }
public void LoadParametersForIMSDataprocessingTest2() { var parameterFile = @"\\protoapps\UserData\Slysz\DeconTools_TestFiles\ParameterFiles\IMS\IMS_UIMF_PeakBR4_PeptideBR4_SN3_SumScans3_NoLCSum_Sat90000_newFormat.xml"; Assert.IsTrue(File.Exists(parameterFile)); var parameters = new DeconToolsParameters(); parameters.LoadFromOldDeconToolsParameterFile(parameterFile); Assert.IsNotNullOrEmpty(parameters.ThrashParameters.AveragineFormula); Assert.AreEqual("C4.9384 H7.7583 N1.3577 O1.4773 S0.0417", parameters.ThrashParameters.AveragineFormula); Assert.AreEqual("AREA", parameters.ThrashParameters.IsotopicProfileFitType.ToString()); Assert.AreEqual(1.00727649, parameters.ThrashParameters.ChargeCarrierMass); Assert.AreEqual(10, (decimal)parameters.ThrashParameters.MinIntensityForDeletion); Assert.AreEqual(0.4, parameters.ThrashParameters.MaxFit); Assert.AreEqual(10, parameters.ThrashParameters.MaxCharge); Assert.AreEqual(4, parameters.ThrashParameters.MinMSFeatureToBackgroundRatio); Assert.AreEqual(10000, parameters.ThrashParameters.MaxMass); Assert.AreEqual(false, parameters.ThrashParameters.IsO16O18Data); Assert.AreEqual(false, parameters.ThrashParameters.CheckAllPatternsAgainstChargeState1); Assert.AreEqual(true, parameters.ThrashParameters.IsThrashUsed); Assert.AreEqual("Text", parameters.ScanBasedWorkflowParameters.ExportFileType.ToString()); Assert.AreEqual("uimf_saturation_repair", parameters.ScanBasedWorkflowParameters.ScanBasedWorkflowName.ToLower()); Assert.AreEqual(false, parameters.ScanBasedWorkflowParameters.ExportPeakData); Assert.AreEqual(500, parameters.MSGeneratorParameters.MinLCScan); Assert.AreEqual(510, parameters.MSGeneratorParameters.MaxLCScan); Assert.AreEqual(false, parameters.MSGeneratorParameters.UseMZRange); Assert.AreEqual(100, parameters.MSGeneratorParameters.MinMZ); Assert.AreEqual(3000, parameters.MSGeneratorParameters.MaxMZ); Assert.AreEqual("quadratic", parameters.PeakDetectorParameters.PeakFitType.ToString().ToLower()); Assert.AreEqual(true, parameters.PeakDetectorParameters.IsDataThresholded); Assert.AreEqual(1, parameters.MSGeneratorParameters.NumLCScansToSum); Assert.AreEqual(7, parameters.MSGeneratorParameters.NumImsScansToSum); Assert.AreEqual(true, parameters.MSGeneratorParameters.SumSpectraAcrossIms); Assert.AreEqual(true, parameters.MSGeneratorParameters.SumSpectraAcrossLC); }
public void ParameterFileTest1() { //see https://jira.pnnl.gov/jira/browse/OMCS-460 var fiParameterFile = new FileInfo(@"..\..\..\TestFiles\SampleParameterFile.xml"); Assert.IsTrue(fiParameterFile.Exists); var parameters = new DeconToolsParameters(); parameters.LoadFromOldDeconToolsParameterFile(fiParameterFile.FullName); Assert.IsNotNullOrEmpty(parameters.ThrashParameters.AveragineFormula); Assert.AreEqual("C4.9384 H7.7583 N1.3577 O1.4773 S0.0417", parameters.ThrashParameters.AveragineFormula); Assert.AreEqual("AREA", parameters.ThrashParameters.IsotopicProfileFitType.ToString()); Assert.AreEqual(1.00727649, parameters.ThrashParameters.ChargeCarrierMass); Assert.AreEqual(1, parameters.ThrashParameters.MinIntensityForDeletion); Assert.AreEqual(0.3m, (decimal)Math.Round(parameters.ThrashParameters.MaxFit, 1)); Assert.AreEqual(10, parameters.ThrashParameters.MaxCharge); Assert.AreEqual(1, parameters.ThrashParameters.MinMSFeatureToBackgroundRatio); Assert.AreEqual(10000, parameters.ThrashParameters.MaxMass); Assert.AreEqual(false, parameters.ThrashParameters.IsO16O18Data); Assert.AreEqual(false, parameters.ThrashParameters.CheckAllPatternsAgainstChargeState1); Assert.AreEqual(true, parameters.ThrashParameters.IsThrashUsed); Assert.AreEqual("Text", parameters.ScanBasedWorkflowParameters.ExportFileType.ToString()); Assert.AreEqual("standard", parameters.ScanBasedWorkflowParameters.ScanBasedWorkflowName.ToLower()); Assert.AreEqual(false, parameters.ScanBasedWorkflowParameters.ExportPeakData); Assert.AreEqual("ThrashV1", parameters.ScanBasedWorkflowParameters.DeconvolutionType.ToString()); Assert.AreEqual(-2147483648, parameters.MSGeneratorParameters.MinLCScan); Assert.AreEqual(2147483647, parameters.MSGeneratorParameters.MaxLCScan); Assert.AreEqual(true, parameters.MSGeneratorParameters.UseMZRange); Assert.AreEqual(100, parameters.MSGeneratorParameters.MinMZ); Assert.AreEqual(3000, parameters.MSGeneratorParameters.MaxMZ); Assert.AreEqual(3, parameters.MSGeneratorParameters.NumLCScansToSum); Assert.AreEqual(true, parameters.MSGeneratorParameters.SumSpectraAcrossLC); Assert.AreEqual("quadratic", parameters.PeakDetectorParameters.PeakFitType.ToString().ToLower()); Assert.AreEqual(true, parameters.PeakDetectorParameters.IsDataThresholded); Assert.AreEqual(false, parameters.PeakDetectorParameters.PeaksAreStored); }