public void doAlignmentTest1() { RunFactory rf = new RunFactory(); Run run = rf.CreateRun(FileRefs.RawDataMSFiles.OrbitrapStdFile1); string deconToolsResultFile = @"D:\Temp\output7\targetedFeatures.txt"; UnlabelledTargetedResultFromTextImporter importer = new UnlabelledTargetedResultFromTextImporter(deconToolsResultFile); TargetedResultRepository repo = importer.Import(); string massTagFile = @"\\protoapps\UserData\Slysz\Data\MassTags\qcshew_standard_file_allMassTags.txt"; MassTagCollection mtc = new MassTagCollection(); MassTagFromTextFileImporter mtimporter = new MassTagFromTextFileImporter(massTagFile); mtc = mtimporter.Import(); NETAndMassAligner aligner = new NETAndMassAligner(); aligner.SetFeaturesToBeAligned(repo.Results); aligner.SetReferenceMassTags(mtc.MassTagList); aligner.Execute(run); Assert.IsNotNull(run.AlignmentInfo); Assert.IsNotNull(run.AlignmentInfo.marrNETFncTimeInput); Assert.AreEqual(2273.0f, run.AlignmentInfo.marrNETFncTimeInput[0]); float testScan = 6005; float testNET1 = run.AlignmentInfo.GetNETFromTime(testScan); Assert.AreEqual(0.3253423m, (decimal)testNET1); }
public void ExportNET_andMass_AlignmentDataTest1() { string exportNETFilename = Path.Combine(FileRefs.OutputFolderPath, "exportedNETAlignmentInfo1.txt"); string exportMassFilename = Path.Combine(FileRefs.OutputFolderPath, "exportedMassAlignmentInfo1.txt"); RunFactory rf = new RunFactory(); Run run = rf.CreateRun(FileRefs.RawDataMSFiles.OrbitrapStdFile1); string deconToolsResultFile = @"D:\Temp\output7\targetedFeatures.txt"; UnlabelledTargetedResultFromTextImporter importer = new UnlabelledTargetedResultFromTextImporter(deconToolsResultFile); TargetedResultRepository repo = importer.Import(); string massTagFile = @"\\protoapps\UserData\Slysz\Data\MassTags\qcshew_standard_file_allMassTags.txt"; MassTagCollection mtc = new MassTagCollection(); MassTagFromTextFileImporter mtimporter = new MassTagFromTextFileImporter(massTagFile); mtc = mtimporter.Import(); NETAndMassAligner aligner = new NETAndMassAligner(); aligner.SetFeaturesToBeAligned(repo.Results); aligner.SetReferenceMassTags(mtc.MassTagList); aligner.Execute(run); NETAlignmentInfoToTextExporter exporter = new NETAlignmentInfoToTextExporter(exportNETFilename); exporter.ExportAlignmentInfo(run.AlignmentInfo); MassAlignmentInfoToTextExporter massInfoexporter = new MassAlignmentInfoToTextExporter(exportMassFilename); massInfoexporter.ExportAlignmentInfo(run.AlignmentInfo); }
public void ExportNET_andMass_AlignmentDataTest1() { var exportNETFilename = Path.Combine(FileRefs.OutputFolderPath, "exportedNETAlignmentInfo1.txt"); var exportMassFilename = Path.Combine(FileRefs.OutputFolderPath, "exportedMassAlignmentInfo1.txt"); var rf = new RunFactory(); var run = rf.CreateRun(DeconTools.UnitTesting2.FileRefs.RawDataMSFiles.OrbitrapStdFile1); var deconToolsResultFile = Path.Combine(FileRefs.ImportedData, "QC_Shew_08_04-pt5-2_11Jan09_Sphinx_08-11-18_targetedFeatures.txt"); var importer = new UnlabelledTargetedResultFromTextImporter(deconToolsResultFile); var repo = importer.Import(); var massTagFile = @"\\protoapps\UserData\Slysz\Data\MassTags\qcshew_standard_file_allMassTags.txt"; var mtc = new TargetCollection(); var mtimporter = new MassTagFromTextFileImporter(massTagFile); mtc = mtimporter.Import(); var aligner = new NETAndMassAligner(); aligner.SetFeaturesToBeAligned(repo.Results); aligner.SetReferenceMassTags(mtc.TargetList); aligner.Execute(run); var exporter = new NETAlignmentInfoToTextExporter(exportNETFilename); exporter.ExportAlignmentInfo(run.AlignmentInfo); var massInfoexporter = new MassAlignmentInfoToTextExporter(exportMassFilename); massInfoexporter.ExportAlignmentInfo(run.AlignmentInfo); }
public void doAlignmentTest1() { var rf = new RunFactory(); var run = rf.CreateRun(DeconTools.UnitTesting2.FileRefs.RawDataMSFiles.OrbitrapStdFile1); var deconToolsResultFile = Path.Combine(FileRefs.ImportedData, "QC_Shew_08_04-pt5-2_11Jan09_Sphinx_08-11-18_targetedFeatures.txt"); var importer = new UnlabelledTargetedResultFromTextImporter(deconToolsResultFile); var repo = importer.Import(); var massTagFile = @"\\protoapps\UserData\Slysz\Data\MassTags\qcshew_standard_file_allMassTags.txt"; var mtc = new TargetCollection(); var mtimporter = new MassTagFromTextFileImporter(massTagFile); mtc = mtimporter.Import(); var aligner = new NETAndMassAligner(); aligner.SetFeaturesToBeAligned(repo.Results); aligner.SetReferenceMassTags(mtc.TargetList); aligner.Execute(run); float testScan = 6005; var testNET1 = run.NetAlignmentInfo.GetNETValueForScan((int)testScan); //note - this is Multialign's Assert.AreEqual(0.3253423m, (decimal)testNET1); }
public void ensureAlignment_was_executed() { var run = new RunFactory().CreateRun(DeconTools.UnitTesting2.FileRefs.RawDataMSFiles.OrbitrapStdFile1); var alignmentFeaturesFile = @"\\protoapps\UserData\Slysz\Standard_Testing\Targeted_FeatureFinding\AlignmentInfo\QC_Shew_08_04-pt5-2_11Jan09_Sphinx_08-11-18_READONLY_alignedFeatures.txt"; var importer = new UnlabelledTargetedResultFromTextImporter(alignmentFeaturesFile); var repo = importer.Import(); var massTagFile = @"\\protoapps\UserData\Slysz\Standard_Testing\Targeted_FeatureFinding\Unlabelled\Targets\QCShew_Formic_MassTags_Bin10_all.txt"; var mtc = new TargetCollection(); var mtimporter = new MassTagFromTextFileImporter(massTagFile); mtc = mtimporter.Import(); var parameters = new NETAndMassAlignerParameters(); var aligner = new NETAndMassAligner(); aligner.SetFeaturesToBeAligned(repo.Results); aligner.SetReferenceMassTags(mtc.TargetList); var scan = 7835; var theorMZ = 780.08485; //massTagID = 24701 (+3) var obsMZ = 780.0824; var netBeforeAlignment = run.NetAlignmentInfo.GetNETValueForScan(scan); var mzBeforeAlignment = run.GetAlignedMZ(obsMZ); aligner.Execute(run); var netAfterAlignment = run.NetAlignmentInfo.GetNETValueForScan(scan); var mzAfterAlignment = run.GetAlignedMZ(obsMZ); Console.WriteLine("NET before alignment = " + netBeforeAlignment); Console.WriteLine("NET after alignment = " + netAfterAlignment); Console.WriteLine("Theor MZ = " + theorMZ); Console.WriteLine("MZ before alignment = " + mzBeforeAlignment); Console.WriteLine("MZ after alignment = " + mzAfterAlignment); Console.WriteLine("PPMDiff before alignment = " + (theorMZ - mzBeforeAlignment) / theorMZ * 1e6); Console.WriteLine("PPMDiff after alignment = " + (theorMZ - mzAfterAlignment) / theorMZ * 1e6); }
public void AlignmentParameterTesting2() { var run = new RunFactory().CreateRun(@"D:\Data\Orbitrap\Subissue01\QC_Shew_10_01-pt5-1_8Feb10_Doc_09-12-24.RAW"); var alignmentFeaturesFile = @"\\protoapps\UserData\Slysz\Data\QCShew_MassiveTargeted\AlignmentInfo\QC_Shew_10_01-pt5-1_8Feb10_Doc_09-12-24_alignedFeatures.txt"; var importer = new UnlabelledTargetedResultFromTextImporter(alignmentFeaturesFile); var repo = importer.Import(); var massTagFile = @"\\protoapps\UserData\Slysz\Standard_Testing\Targeted_FeatureFinding\Unlabelled\Targets\QCShew_Formic_MassTags_Bin10_all.txt"; var mtc = new TargetCollection(); var mtimporter = new MassTagFromTextFileImporter(massTagFile); mtc = mtimporter.Import(); var parameters = new NETAndMassAlignerParameters(); var aligner = new NETAndMassAligner(); aligner.SetFeaturesToBeAligned(repo.Results); aligner.SetReferenceMassTags(mtc.TargetList); var sb = new StringBuilder(); sb.Append("mtid\tscanLC\ttheorMZ\tobsMZ\talignedMZ\tppmErrorBefore\tppmErrorAfter\n"); parameters.MassCalibrationWindow = 20; parameters.MassCalibrationNumMassDeltaBins = 100; // int[] massCalXSliceValues = { 3, 6, 9, 12, 15 }; int[] massCalXSliceValues = { 15 }; foreach (var xsliceVal in massCalXSliceValues) { var ppmErrorsBefore = new List<double>(); var ppmErrorsAfter = new List<double>(); parameters.MassCalibrationNumXSlices = (short)xsliceVal; aligner.AlignerParameters = parameters; aligner.Execute(run); foreach (var result in repo.Results) { var mt = mtc.TargetList.Where(p => p.ID == result.TargetID).Where(p => p.ChargeState == result.ChargeState).First(); var theorMZ = mt.MZ; var obsMZ = result.MonoMZ; double scan = result.ScanLC; var alignedMZ = run.GetAlignedMZ(obsMZ, scan); var ppmErrorBefore = (theorMZ - obsMZ) / theorMZ * 1e6; var ppmErrorAfter = (theorMZ - alignedMZ) / theorMZ * 1e6; sb.Append(result.TargetID + "\t" + result.ScanLC + "\t" + theorMZ.ToString("0.00000") + "\t" + obsMZ.ToString("0.00000") + "\t" + alignedMZ.ToString("0.00000") + "\t" + ppmErrorBefore.ToString("0.0") + "\t" + ppmErrorAfter.ToString("0.0")); sb.Append(Environment.NewLine); ppmErrorsAfter.Add(ppmErrorAfter); ppmErrorsBefore.Add(ppmErrorBefore); } Console.WriteLine(sb.ToString()); Console.WriteLine(); Console.WriteLine(); Console.WriteLine("Average ppm error before alignment = " + ppmErrorsBefore.Average().ToString("0.00")); Console.WriteLine("Average ppm error after alignment = " + ppmErrorsAfter.Average().ToString("0.00")); Console.WriteLine(); Console.WriteLine(); Console.WriteLine(xsliceVal + "\t" + ppmErrorsBefore.Average().ToString("0.00") + "\t" + ppmErrorsAfter.Average().ToString("0.00")); } }
public void Issue0725_AlignmentProblemsTest1() { var run = new RunFactory().CreateRun(@"D:\Data\Orbitrap\Issue0725_badAlignment\QC_Shew_10_03-2_100min_06May10_Tiger_10-04-08.RAW"); var alignmentFeaturesFile = run.Filename.Replace(".RAW", "_alignedFeatures.txt"); var importer = new UnlabelledTargetedResultFromTextImporter(alignmentFeaturesFile); var repo = importer.Import(); var massTagFile = @"\\protoapps\UserData\Slysz\Data\QCShew_MassiveTargeted\MassTags\QCShew_Formic_MassTags_for_alignment.txt"; var mtc = new TargetCollection(); var mtimporter = new MassTagFromTextFileImporter(massTagFile); mtc = mtimporter.Import(); var parameters = new NETAndMassAlignerParameters(); var aligner = new NETAndMassAligner(); aligner.SetFeaturesToBeAligned(repo.Results); aligner.SetReferenceMassTags(mtc.TargetList); var sb = new StringBuilder(); sb.Append("mtid\tscanLC\ttheorMZ\tobsMZ\talignedMZ\tppmErrorBefore\tppmErrorAfter\n"); parameters.MassCalibrationWindow = 50; parameters.MassCalibrationNumMassDeltaBins = 100; int[] massCalXSliceValues = { 3, 6, 9, 10, 12, 15,18,20 }; //int[] massCalXSliceValues = { 6 }; foreach (var xsliceVal in massCalXSliceValues) { var ppmErrorsBefore = new List<double>(); var ppmErrorsAfter = new List<double>(); parameters.MassCalibrationNumXSlices = (short)xsliceVal; aligner.AlignerParameters = parameters; aligner.Execute(run); foreach (var result in repo.Results) { var mt = mtc.TargetList.Where(p => p.ID == result.TargetID).Where(p => p.ChargeState == result.ChargeState).First(); var theorMZ = mt.MZ; var obsMZ = result.MonoMZ; double scan = result.ScanLC; var alignedMZ = run.GetAlignedMZ(obsMZ, scan); var ppmErrorBefore = (theorMZ - obsMZ) / theorMZ * 1e6; var ppmErrorAfter = (theorMZ - alignedMZ) / theorMZ * 1e6; double theorNET = mt.NormalizedElutionTime; double obsNET = result.NET; var alignedNET = run.NetAlignmentInfo.GetNETValueForScan((int) scan); sb.Append(result.TargetID + "\t" + result.ScanLC + "\t" + theorMZ.ToString("0.00000") + "\t" + obsMZ.ToString("0.00000") + "\t" + alignedMZ.ToString("0.00000") + "\t" + ppmErrorBefore.ToString("0.0") + "\t" + ppmErrorAfter.ToString("0.0") + "\t" + theorNET.ToString("0.0000") + "\t" + obsNET.ToString("0.0000") + "\t" + alignedNET.ToString("0.0000")); //sb.Append(result.MassTagID + "\t" + result.ScanLC + "\t" + theo sb.Append(Environment.NewLine); ppmErrorsAfter.Add(ppmErrorAfter); ppmErrorsBefore.Add(ppmErrorBefore); } // Console.WriteLine(sb.ToString()); //Console.WriteLine(); //Console.WriteLine(); //Console.WriteLine("Average ppm error before alignment = " + filterWithGrubbsApplied(ppmErrorsBefore).Average().ToString("0.00")); //Console.WriteLine("Average ppm error after alignment = " + filterWithGrubbsApplied(ppmErrorsAfter).Average().ToString("0.00")); //Console.WriteLine(); //Console.WriteLine(); Console.WriteLine(xsliceVal + "\t" + filterWithGrubbsApplied(ppmErrorsBefore).Average().ToString("0.00") + "\t" + filterWithGrubbsApplied(ppmErrorsAfter).Average().ToString("0.00")); } }
public void AlignmentParameterTesting1() { var run = new RunFactory().CreateRun(DeconTools.UnitTesting2.FileRefs.RawDataMSFiles.OrbitrapStdFile1); var alignmentFeaturesFile = @"\\protoapps\UserData\Slysz\Standard_Testing\Targeted_FeatureFinding\QC_Shew_08_04-pt5-2_11Jan09_Sphinx_08-11-18_READONLY_alignedFeatures.txt"; var importer = new UnlabelledTargetedResultFromTextImporter(alignmentFeaturesFile); var repo = importer.Import(); var massTagFile = @"\\protoapps\UserData\Slysz\Standard_Testing\Targeted_FeatureFinding\Unlabelled\Targets\QCShew_Formic_MassTags_Bin10_all.txt"; var mtc = new TargetCollection(); var mtimporter = new MassTagFromTextFileImporter(massTagFile); mtc = mtimporter.Import(); var parameters = new NETAndMassAlignerParameters(); var aligner = new NETAndMassAligner(); aligner.SetFeaturesToBeAligned(repo.Results); aligner.SetReferenceMassTags(mtc.TargetList); var sb = new StringBuilder(); sb.Append("theorMZ\tobsMZ\talignedMZ\tppmErrorBefore\tppmErrorAfter\n"); parameters.MassCalibrationWindow = 50; parameters.MassCalibrationNumMassDeltaBins = 100; int[]massCalXSliceValues = {3,6,9,12,15,20,30,50}; foreach (var xsliceVal in massCalXSliceValues) { var ppmErrorsBefore = new List<double>(); var ppmErrorsAfter = new List<double>(); parameters.MassCalibrationNumXSlices =(short)xsliceVal; aligner.AlignerParameters = parameters; aligner.Execute(run); foreach (var result in repo.Results) { var mt = mtc.TargetList.Where(p => p.ID == result.TargetID).Where(p => p.ChargeState == result.ChargeState).First(); var theorMZ = mt.MZ; var obsMZ = result.MonoMZ; double scan = result.ScanLC; var alignedMZ = run.GetAlignedMZ(obsMZ, scan); var ppmErrorBefore = (theorMZ - obsMZ) / theorMZ * 1e6; var ppmErrorAfter = (theorMZ - alignedMZ) / theorMZ * 1e6; sb.Append(result.TargetID + "\t" + result.ScanLC + "\t" + theorMZ.ToString("0.00000") + "\t" + obsMZ.ToString("0.00000") + "\t" + alignedMZ.ToString("0.00000") + "\t" + ppmErrorBefore.ToString("0.0") + "\t" + ppmErrorAfter.ToString("0.0")); sb.Append(Environment.NewLine); ppmErrorsAfter.Add(ppmErrorAfter); ppmErrorsBefore.Add(ppmErrorBefore); } Console.WriteLine(xsliceVal + "\t" + ppmErrorsBefore.Average().ToString("0.00") + "\t"+ ppmErrorsAfter.Average().ToString("0.00")); //Console.WriteLine(sb.ToString()); //Console.WriteLine(); //Console.WriteLine(); //Console.WriteLine("Average ppm error before alignment = " + ppmErrorsBefore.Average().ToString("0.00")); //Console.WriteLine("Average ppm error after alignment = " + ppmErrorsAfter.Average().ToString("0.00")); } }