public void JoshGenerateN15LabelledTheorProfileTest2() { var mt = TestDataCreationUtilities.CreateN14N15TestMassTagList().First(p => p.ID == 23085470); mt.EmpiricalFormula = mt.GetEmpiricalFormulaFromTargetCode(); Console.WriteLine("Total nitrogens = " + mt.GetAtomCountForElement("N")); var unlabelledTheorGenerator = new JoshTheorFeatureGenerator(); unlabelledTheorGenerator.GenerateTheorFeature(mt); TestUtilities.DisplayIsotopicProfileData(mt.IsotopicProfile); Console.WriteLine(); var n15theorGenerator = new JoshTheorFeatureGenerator(DeconTools.Backend.Globals.LabellingType.N15, 0.005); n15theorGenerator.GenerateTheorFeature(mt); unlabelledTheorGenerator.GenerateTheorFeature(mt); n15theorGenerator.GenerateTheorFeature(mt); unlabelledTheorGenerator.GenerateTheorFeature(mt); TestUtilities.DisplayIsotopicProfileData(mt.IsotopicProfile); Console.WriteLine(); TestUtilities.DisplayIsotopicProfileData(mt.IsotopicProfileLabelled); }
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 Test1() { double featureFinderTol = 15; var featureFinderRequiresMonoPeak = false; var n14n15Util = new N14N15TestingUtilities(); //get MS var massSpectrum = n14n15Util.GetSpectrumAMTTag23140708_Z3_Sum3(); //this is the diff b/w previous test and this one var mt23140708 = n14n15Util.CreateMT23140708_Z3(); var featureGen2 = new JoshTheorFeatureGenerator(); featureGen2.GenerateTheorFeature(mt23140708); //get ms peaks var peakDet = new DeconToolsPeakDetectorV2(1.3, 2, Globals.PeakFitType.QUADRATIC, false); var msPeakList = peakDet.FindPeaks(massSpectrum, 0, 0); var bff = new BasicTFF(featureFinderTol, featureFinderRequiresMonoPeak); var n14Profile = bff.FindMSFeature(msPeakList, mt23140708.IsotopicProfile); var theorXYData = mt23140708.IsotopicProfile.GetTheoreticalIsotopicProfileXYData(n14Profile.GetFWHM()); var theorMaxY = theorXYData.Yvalues.Max(); double obsMaxY = n14Profile.getMostIntensePeak().Height; for (var i = 0; i < theorXYData.Xvalues.Length; i++) { theorXYData.Yvalues[i] = theorXYData.Yvalues[i] * obsMaxY; } offsetDistribution(theorXYData, mt23140708.IsotopicProfile, n14Profile); var subtracted = XYDataUtilities.SubtractXYData(massSpectrum, theorXYData, n14Profile.MonoPeakMZ - 1, n14Profile.MonoPeakMZ + 3, 0.01); var outputFileMS = @"\\protoapps\UserData\Slysz\DeconTools_TestFiles\TextFile\massSpectrum1.txt"; var outputFileMSSubtracted = @"\\protoapps\UserData\Slysz\DeconTools_TestFiles\TextFile\massSpectrum1_withDataSubtracted.txt"; TestUtilities.WriteToFile(massSpectrum, outputFileMS); TestUtilities.WriteToFile(subtracted, outputFileMSSubtracted); // XYDataUtilities.NormalizeXYData() }
public void JoshGenerateTheorProfileTest1() { var mt = TestDataCreationUtilities.CreateN14N15TestMassTagList().First(p => p.ID == 23085473); var theorGenerator = new JoshTheorFeatureGenerator(); theorGenerator.GenerateTheorFeature(mt); TestUtilities.DisplayIsotopicProfileData(mt.IsotopicProfile); //TODO: add an Assert, with a manually confirmed number. }
public void ComparePeakFitterVsAreaFitter() { var massTagFile1 = Path.Combine(FileRefs.RawDataBasePath, "TargetedWorkflowStandards", "QCShew_peptidesWithObsCountGreaterThan1000.txt"); //load target var masstagImporter = new MassTagFromTextFileImporter(massTagFile1); var targets = masstagImporter.Import().TargetList; var run = new RunFactory().CreateRun(FileRefs.RawDataMSFiles.OrbitrapStdFile1); var msgen = MSGeneratorFactory.CreateMSGenerator(run.MSFileType); var peakDetector = new DeconToolsPeakDetectorV2(1.3, 2, Globals.PeakFitType.QUADRATIC, true); var scanSet = new ScanSet(9575); run.CurrentScanSet = scanSet; msgen.Execute(run.ResultCollection); peakDetector.Execute(run.ResultCollection); var selectedTarget = targets.First(p => p.ID == 635428 && p.ChargeState == 3); var theorFeatureGen = new JoshTheorFeatureGenerator(Backend.Globals.LabellingType.NONE, 0.005); theorFeatureGen.GenerateTheorFeature(selectedTarget); var peakForFWHM = run.PeakList.First(p => p.XValue > 768.38 && p.XValue < 768.39); var theorXYdata = TheorXYDataCalculationUtilities.GetTheoreticalIsotopicProfileXYData(selectedTarget.IsotopicProfile, peakForFWHM.Width); theorXYdata.NormalizeYData(); var areaFitter = new AreaFitter(); var areaFitScore = areaFitter.GetFit(theorXYdata, run.XYData, 0.1); var peakLeastSquaresFitter = new PeakLeastSquaresFitter(); var peakBasedFitScore = peakLeastSquaresFitter.GetFit(new List <Peak>(selectedTarget.IsotopicProfile.Peaklist), run.PeakList, 0.1, 25); Console.WriteLine("fit score based on XYData = " + areaFitScore); Console.WriteLine("fit score based on Peaks= " + peakBasedFitScore); Assert.IsTrue(peakBasedFitScore < 0.1); }
public void CorrelationTest2_UsingExecutorMethod() { var run = new RunFactory().CreateRun(FileRefs.RawDataMSFiles.OrbitrapStdFile1); var peakImporter = new PeakImporterFromText(FileRefs.PeakDataFiles.OrbitrapPeakFile_scans5500_6500); peakImporter.ImportPeaks(run.ResultCollection.MSPeakResultList); var mt = TestUtilities.GetMassTagStandard(1); run.CurrentMassTag = mt; var unlabelledTheorGenerator = new JoshTheorFeatureGenerator(); unlabelledTheorGenerator.GenerateTheorFeature(mt); double chromToleranceInPPM = 10; var startScan = 5460; var stopScan = 5755; var smoother = new SavitzkyGolaySmoother(3, 2); var peakChromGen = new PeakChromatogramGenerator(chromToleranceInPPM); run.XYData = peakChromGen.GenerateChromatogram(run, startScan, stopScan, mt.IsotopicProfile.Peaklist[0].XValue, chromToleranceInPPM); run.XYData = smoother.Smooth(run.XYData); var result = run.ResultCollection.GetTargetedResult(mt); ChromatogramCorrelatorBase correlator = new ChromatogramCorrelator(3); var corrData = correlator.CorrelatePeaksWithinIsotopicProfile(run, mt.IsotopicProfile, startScan, stopScan); Debug.Assert(corrData.CorrelationDataItems != null, "corrData.CorrelationDataItems != null"); Assert.AreEqual(0.98m, (decimal)Math.Round((double)corrData.CorrelationDataItems[1].CorrelationRSquaredVal, 2)); foreach (var item in corrData.CorrelationDataItems) { Console.WriteLine(item.CorrelationRSquaredVal); } }
public void CalculateLabelingDistributionTest2() { //mass_tag_id monoisotopic_mass NET obs mod_count mod_description pmt peptide peptideex //355176429 1538.8166126 0.42422 1 0 2.00000 LFLASACLYGAALAGV R.LFLASACLYGAALAGV.C //------------------------load theor data ------------------------------------ var peptideUtils = new PeptideUtils(); var peptide = new PeptideTarget(); peptide.Code = "LFLASACLYGAALAGV"; peptide.EmpiricalFormula = new PeptideUtils().GetEmpiricalFormulaForPeptideSequence(peptide.Code); var theorFeatureGenerator = new JoshTheorFeatureGenerator(); theorFeatureGenerator.GenerateTheorFeature(peptide); var theorProfile = peptide.IsotopicProfile; var theorIntensities = theorProfile.Peaklist.Select(p => (double)p.Height).ToList(); Console.WriteLine("Total carbons = " + peptideUtils.GetNumAtomsForElement("C", peptide.EmpiricalFormula)); var obsIntensities = new List <double>(new[] { 1, 0.8335001, 0.4029815, 0.1846439, 0.1116047, 0.09458135, 0.07157851, 0.04972008, 0.03036686, 0.01545749, 0.008299164, 0.004003931, 0.001711554, 0.000766305, 0.000484514 }); var relexCorrectedIntensities = new List <double>(new[] { 1, 0.84416, 0.4174013, 0.1843375, 0.1073706, 0.09557419, 0.07190877, 0.04823519, 0.02991197, 0.01456759, 0.008299164, 0.004003931, 0.001711554, 0.000766305, 0.000484514 }); /* * * Data for observed profile: * LCMSFeature 8517 from Yellow_C13_070_23Mar10_Griffin_10-01-28 * * * peak mz relIntens width sn * 0 770.418569278349 1 0.008119391 285.256 * 1 770.919748892834 0.8335001 0.008161238 884.9909 * 2 771.421020812818 0.4029815 0.008248929 566.6187 * 3 771.922575912402 0.1846439 0.008058954 703.6938 * 4 772.424544684666 0.1116047 0.007997629 358.0133 * 5 772.926348484216 0.09458135 0.008128829 677.3434 * 6 773.428080290323 0.07157851 0.008151106 100 * 7 773.929769365137 0.04972008 0.008104968 100 * 8 774.431542463583 0.03036686 0.007982519 100 * 9 774.933237566856 0.01545749 0.008024476 100 * 10 775.434950373045 0.008299164 0.008166174 740.9502 * 11 775.936532837365 0.004003931 0.007899459 100 * 12 776.438361528879 0.001711554 0.00877683 44.79652 * 13 776.940072709136 0.0007663054 0.007601836 17.12788 * 14 777.441663634739 0.0004845143 0.007320933 100 * */ var labelDistCalc = new LabelingDistributionCalculator(); double[] solvedXVals; double[] solvedYvals; var d = 0.1; labelDistCalc.CalculateLabelingDistribution(theorIntensities, obsIntensities, d, d, out solvedXVals, out solvedYvals); var xydata = new XYData(); xydata.Xvalues = solvedXVals; xydata.Yvalues = solvedYvals; Console.WriteLine(); Console.WriteLine("threshold= " + d); xydata.Display(); labelDistCalc.CalculateLabelingDistribution(theorIntensities, relexCorrectedIntensities, d, d, out solvedXVals, out solvedYvals); xydata.Xvalues = solvedXVals; xydata.Yvalues = solvedYvals; Console.WriteLine(); Console.WriteLine("Relex-corrected isotopic profile= " + d); xydata.Display(); double fractionUnlabelled, fractionLabelled, averageLabelsIncorporated; labelDistCalc.OutputLabelingInfo(solvedYvals.ToList(), out fractionUnlabelled, out fractionLabelled, out averageLabelsIncorporated); Console.WriteLine(); Console.WriteLine("fractionUnlabelled= " + fractionUnlabelled); Console.WriteLine("fractionLabelled= " + fractionLabelled); Console.WriteLine("averageAmountLabelIncorp= " + averageLabelsIncorporated); //for (double d = 0; d < 2.1; d+=0.1) //{ // labelDistCalc.CalculateLabelingDistribution(theorIntensities, obsIntensities, d, d, out solvedXVals, out solvedYvals); // XYData xydata = new XYData(); // xydata.Xvalues = solvedXVals; // xydata.Yvalues = solvedYvals; // Console.WriteLine(); // Console.WriteLine("threshold= " + d); // xydata.Display(); //} }
public void test01_mt230140708_z3() { double featureFinderTol = 15; var featureFinderRequiresMonoPeak = false; var numPeaksUsedInQuant = 3; var n14n15Util = new N14N15TestingUtilities(); //get MS var massSpectrum = n14n15Util.GetSpectrumAMTTag23140708_Z3_Sum3(); //this is the diff b/w previous test and this one var smoother = new DeconTools.Backend.ProcessingTasks.Smoothers.SavitzkyGolaySmoother(3, 2); massSpectrum = smoother.Smooth(massSpectrum); //get target MT var mt23140708 = n14n15Util.CreateMT23140708_Z3(); //get ms peaks var peakDet = new DeconToolsPeakDetectorV2(1.3, 2, Globals.PeakFitType.QUADRATIC, false); var msPeakList = peakDet.FindPeaks(massSpectrum, 0, 0); //TestUtilities.DisplayPeaks(msPeakList); var featureGen = new TomTheorFeatureGenerator(); featureGen.GenerateTheorFeature(mt23140708); TestUtilities.DisplayIsotopicProfileData(mt23140708.IsotopicProfile); var featureGen2 = new JoshTheorFeatureGenerator(); featureGen2.GenerateTheorFeature(mt23140708); Console.WriteLine(); TestUtilities.DisplayIsotopicProfileData(mt23140708.IsotopicProfile); var gen = new N15IsotopeProfileGenerator(); var theorN15Profile = gen.GetN15IsotopicProfile(mt23140708, 0.005); var bff = new BasicTFF(featureFinderTol, featureFinderRequiresMonoPeak); var n14Profile = bff.FindMSFeature(msPeakList, mt23140708.IsotopicProfile); var n15Profile = bff.FindMSFeature(msPeakList, theorN15Profile); Console.WriteLine(mt23140708.GetEmpiricalFormulaFromTargetCode()); TestUtilities.DisplayIsotopicProfileData(mt23140708.IsotopicProfile); Console.WriteLine(); TestUtilities.DisplayIsotopicProfileData(theorN15Profile); Console.WriteLine(); TestUtilities.DisplayIsotopicProfileData(n14Profile); Console.WriteLine(); TestUtilities.DisplayIsotopicProfileData(n15Profile); var quant = new BasicN14N15Quantifier(featureFinderTol); double ratioContribIso1; double ratioContribIso2; double ratio; quant.GetRatioBasedOnTopPeaks(n14Profile, n15Profile, mt23140708.IsotopicProfile, theorN15Profile, peakDet.BackgroundIntensity, numPeaksUsedInQuant, out ratio, out ratioContribIso1, out ratioContribIso2); Console.WriteLine("--------------------------------"); Console.WriteLine("Background intensity = " + peakDet.BackgroundIntensity); Console.WriteLine("--------------------------------"); Console.WriteLine("Ratio = " + ratio); Console.WriteLine("Ratio contrib Iso1 = " + ratioContribIso1); Console.WriteLine("Ratio contrib Iso2 = " + ratioContribIso2); Console.WriteLine("--------------------------------"); Assert.AreEqual(1.458267m, (decimal)Math.Round(ratio, 6)); //see 'N14N15Quantification_manualValidation_of_algorithm.xls' for manual validation }
public void CorrelationTest1() { //TODO: test something var run = new RunFactory().CreateRun(FileRefs.RawDataMSFiles.OrbitrapStdFile1); var peakImporter = new PeakImporterFromText(FileRefs.PeakDataFiles.OrbitrapPeakFile_scans5500_6500); peakImporter.ImportPeaks(run.ResultCollection.MSPeakResultList); var mt = TestUtilities.GetMassTagStandard(1); run.CurrentMassTag = mt; var unlabelledTheorGenerator = new JoshTheorFeatureGenerator(); unlabelledTheorGenerator.GenerateTheorFeature(mt); double chromToleranceInPPM = 10; var startScan = 5460; var stopScan = 5755; var smoother = new SavitzkyGolaySmoother(3, 2); var peakChromGen = new PeakChromatogramGenerator(chromToleranceInPPM); run.XYData = peakChromGen.GenerateChromatogram(run, startScan, stopScan, mt.IsotopicProfile.Peaklist[0].XValue, chromToleranceInPPM); run.XYData = smoother.Smooth(run.XYData); var chromdata1 = run.XYData.TrimData(startScan, stopScan); run.XYData = peakChromGen.GenerateChromatogram(run, startScan, stopScan, mt.IsotopicProfile.Peaklist[3].XValue, chromToleranceInPPM); run.XYData = smoother.Smooth(run.XYData); var chromdata2 = run.XYData.TrimData(startScan, stopScan); //chromdata1.Display(); //Console.WriteLine(); //chromdata2.Display(); ChromatogramCorrelatorBase correlator = new ChromatogramCorrelator(3); double slope = 0; double intercept = 0; double rsquaredVal = 0; correlator.GetElutionCorrelationData(chromdata1, chromdata2, out slope, out intercept, out rsquaredVal); Console.WriteLine(mt); Console.WriteLine("slope = \t" + slope); Console.WriteLine("intercept = \t" + intercept); Console.WriteLine("rsquared = \t" + rsquaredVal); for (var i = 0; i < chromdata1.Xvalues.Length; i++) { Console.WriteLine(chromdata1.Xvalues[i].ToString("0") + "\t" + chromdata1.Yvalues[i].ToString("0") + "\t" + chromdata2.Yvalues[i]); } }