Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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"));

           
            }

      


        }