Example #1
0
        public void traditionalMSFeatureDataProcessingTest1()
        {
            var sourceIsosFile =
                @"\\protoapps\UserData\Slysz\Data\Redmine_Issues\Issue947_saturationTesting\Sarc_P09_B06_0786_20Jul11_Cheetah_11-05-31_mass860_noRepair_isos.csv";

            var copiedIsosFileName = @"\\protoapps\UserData\Slysz\Data\Redmine_Issues\Issue947_saturationTesting\Sarc_P09_B06_0786_20Jul11_Cheetah_11-05-31_isos.csv";

            File.Copy(sourceIsosFile, copiedIsosFileName, true);


            var testFile =
                @"\\protoapps\UserData\Slysz\Data\Redmine_Issues\Issue947_saturationTesting\FF_IMS4Filters_NoFlags_20ppm_Min3Pts_4MaxLCGap_NoDaCorr_ConfDtn_2011-05-16_issue947.ini";

            var iniReader = new IniReader(testFile);

            iniReader.UpdateSettings();

            var isosReader = new IsosReader(Settings.InputFileName, Settings.OutputDirectory);

            var controller = new LCIMSMSFeatureFinderController(isosReader);

            controller.Execute();

            Assert.AreEqual(2, controller.LcImsMsFeatures.Count());

            var testFeature1 = (from n in controller.LcImsMsFeatures where n.Charge == 2 select n).FirstOrDefault();

            Assert.IsNotNull(testFeature1);

            DisplayFeatureStats(testFeature1);
        }
Example #2
0
        public void nonSaturatedLowIntensityProcessingTest1()
        {
            var sourceIsosFile =
                @"\\protoapps\UserData\Slysz\Data\Redmine_Issues\Issue947_saturationTesting\Sarc_P09_B06_0786_20Jul11_Cheetah_11-05-31_lowIntensityCase860_repaired_isos.csv";

            var copiedIsosFileName = @"\\protoapps\UserData\Slysz\Data\Redmine_Issues\Issue947_saturationTesting\Sarc_P09_B06_0786_20Jul11_Cheetah_11-05-31_isos.csv";

            File.Copy(sourceIsosFile, copiedIsosFileName, true);


            var testFile =
                @"\\protoapps\UserData\Slysz\Data\Redmine_Issues\Issue947_saturationTesting\FF_IMS4Filters_NoFlags_20ppm_Min3Pts_4MaxLCGap_NoDaCorr_ConfDtn_2011-05-16_issue947.ini";

            var iniReader = new IniReader(testFile);

            iniReader.UpdateSettings();

            var isosReader = new IsosReader(Settings.InputFileName, Settings.OutputDirectory);

            var controller = new LCIMSMSFeatureFinderController(isosReader);

            controller.Execute();

            Assert.AreEqual(2, controller.LcImsMsFeatures.Count());

            var testFeature1 = controller.LcImsMsFeatures.ElementAt(1);

            Assert.IsNotNull(testFeature1);
            Assert.AreEqual(20, testFeature1.GetMemberCount());
            Assert.AreEqual(0, testFeature1.GetSaturatedMemberCount());

            DisplayFeatureStats(testFeature1);
        }
Example #3
0
        public void standardFile_conformationDetection_test1()
        {
            var testfile = @"\\protoapps\UserData\Slysz\Standard_Testing\LCMSFeatureFinder\UIMF\Parameter_Files\FF_IMS_UseHardCodedFilters_NoFlags_20ppm_Min3Pts_4MaxLCGap_NoDaCorr_ConfDtn_2011-03-21.ini";

            var iniReader = new IniReader(testfile);

            iniReader.CreateSettings();

            var isosReader = new IsosReader(Settings.InputFileName, Settings.OutputDirectory);

            var controller = new LCIMSMSFeatureFinderController(isosReader);

            controller.Execute();
        }
Example #4
0
 /// <summary>
 /// Runs the necessary steps for LC-IMS-MS Feature Finding.
 /// </summary>
 /// <param name="isosReader">The IsosReader object</param>
 private static bool RunLCIMSMSFeatureFinder(IsosReader isosReader)
 {
     try
     {
         var controller = new LCIMSMSFeatureFinderController(isosReader);
         controller.Execute();
         return(true);
     }
     catch (Exception ex)
     {
         Logger.LogError("Exception in RunLCIMSMSFeatureFinder", ex);
         return(false);
     }
 }
Example #5
0
 /// <summary>
 /// Runs the necessary steps for LC-IMS-MS Feature Finding.
 /// </summary>
 /// <param name="isosReader">The IsosReader object</param>
 private static bool RunLCIMSMSFeatureFinder(IsosReader isosReader)
 {
     try
     {
         var controller = new LCIMSMSFeatureFinderController(isosReader);
         controller.Execute();
         return(true);
     }
     catch (Exception e)
     {
         Logger.Log(e.Message);
         Logger.Log(e.StackTrace);
         return(false);
     }
 }
Example #6
0
        public void deconToolsfiltersAreBeingAppliedTest(string settingsFileName)
        {
            var methodName = MethodBase.GetCurrentMethod().Name;

            // FF_IMS4Filters_NoFlags_20ppm_Min3Pts_4MaxLCGap_NoDaCorr_ConfDtn_2011-05-16.ini references
            // Sarc_MS2_90_6Apr11_Cheetah_11-02-19_inverse_isos.csv and DeconToolsIsosFilters_IMS4_2011-04-28.txt in folder
            // \\proto-2\UnitTest_Files\DeconTools_TestFiles\LCMSFeatureFinder

            var iniFile = Test.GetTestFile(methodName, settingsFileName);

            if (!iniFile.Exists)
            {
                Assert.Ignore("Skipping test " + methodName + " since file not found: " + iniFile.FullName);
            }

            Console.WriteLine("Reading settings in " + iniFile.FullName);
            var iniReader = new IniReader(iniFile.FullName);

            iniReader.CreateSettings();

            if (string.IsNullOrWhiteSpace(Settings.InputDirectory) && iniFile.Directory != null)
            {
                Settings.InputDirectory = iniFile.Directory.FullName;
            }

            var isosFilePath = Path.Combine(Settings.InputDirectory, Settings.InputFileName);

            var isosFile = new FileInfo(isosFilePath);

            if (!isosFile.Exists)
            {
                Assert.Ignore("Skipping test " + methodName + " since file not found: " + isosFile.FullName);
            }

            var isosReader = new IsosReader(isosFilePath, Settings.OutputDirectory);

            var controller = new LCIMSMSFeatureFinderController(isosReader);

            controller.Execute();
        }
Example #7
0
        public void RunFeatureFinder(string settingsFileName)
        {
            var methodName = MethodBase.GetCurrentMethod().Name;

            // This Ini file references file Sarc_MS2_90_6Apr11_Cheetah_11-02-19_Excerpt_isos.csv

            var iniFile = GetTestFile(methodName, settingsFileName);

            if (!iniFile.Exists)
            {
                Assert.Ignore("Skipping test " + methodName + " since file not found: " + iniFile.FullName);
            }

            Console.WriteLine("Reading settings in " + iniFile.FullName);
            var iniReader = new IniReader(iniFile.FullName);

            iniReader.UpdateSettings();

            if (string.IsNullOrWhiteSpace(Settings.InputDirectory) && iniFile.Directory != null)
            {
                Settings.InputDirectory = iniFile.Directory.FullName;
            }

            if (!string.IsNullOrWhiteSpace(Settings.DeconToolsFilterFileName) && !File.Exists(Settings.DeconToolsFilterFileName) && iniFile.Directory != null)
            {
                var updatedPath = Path.Combine(iniFile.Directory.FullName, Path.GetFileName(Settings.DeconToolsFilterFileName));
                Settings.DeconToolsFilterFileName = updatedPath;
            }

            var isosFilePath = Path.Combine(Settings.InputDirectory, Settings.InputFileName);

            var isosFile = new FileInfo(isosFilePath);

            if (!isosFile.Exists)
            {
                Assert.Ignore("Skipping test " + methodName + " since file not found: " + isosFile.FullName);
            }

            if (isosFile.Directory == null)
            {
                Assert.Ignore("Skipping test " + methodName + " since cannot determine the parent directory of: " + isosFile.FullName);
            }

            Console.WriteLine("Processing " + isosFile.FullName);

            if (string.IsNullOrWhiteSpace(Settings.OutputDirectory))
            {
                Settings.OutputDirectory = isosFile.Directory.FullName;
            }

            Console.WriteLine("Writing results to " + Settings.OutputDirectory);

            var isosReader = new IsosReader(isosFile.FullName, Settings.OutputDirectory);

            var featuresFilePath     = Path.Combine(Settings.OutputDirectory, isosFile.Name.Replace("_isos.csv", "_LCMSFeatures.txt"));
            var filteredIsosFilePath = Path.Combine(Settings.OutputDirectory, isosFile.Name.Replace("_isos.csv", "_Filtered_isos.csv"));

            var featuresFile = new FileInfo(featuresFilePath);
            var filteredIsos = new FileInfo(filteredIsosFilePath);

            if (!featuresFile.Exists)
            {
                featuresFile.Delete();
            }

            if (!filteredIsos.Exists)
            {
                filteredIsos.Delete();
            }

            var controller = new LCIMSMSFeatureFinderController(isosReader);

            controller.Execute();

            featuresFile.Refresh();
            filteredIsos.Refresh();

            if (!featuresFile.Exists)
            {
                Assert.Fail("LCMSFeatures file not found at " + featuresFile.FullName);
            }

            if (!filteredIsos.Exists)
            {
                Assert.Fail("_Filtered_isos.csv file not found at " + filteredIsos.FullName);
            }

            var lcmsFeatureCount  = 0;
            var filteredIsosCount = 0;

            var lcmsFeaturesHeaderLine = string.Empty;
            var filteredIsosHeaderLine = string.Empty;

            using (var featuresFileReader = new StreamReader(new FileStream(featuresFile.FullName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)))
            {
                if (!featuresFileReader.EndOfStream)
                {
                    lcmsFeaturesHeaderLine = featuresFileReader.ReadLine();
                }

                while (!featuresFileReader.EndOfStream)
                {
                    var dataLine = featuresFileReader.ReadLine();
                    if (string.IsNullOrWhiteSpace(dataLine))
                    {
                        continue;
                    }

                    lcmsFeatureCount++;
                }

                Console.WriteLine("{0} data lines in {1}", lcmsFeatureCount, featuresFile.Name);
            }

            using (var filteredIsosReader = new StreamReader(new FileStream(filteredIsos.FullName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)))
            {
                if (!filteredIsosReader.EndOfStream)
                {
                    filteredIsosHeaderLine = filteredIsosReader.ReadLine();
                }

                while (!filteredIsosReader.EndOfStream)
                {
                    var dataLine = filteredIsosReader.ReadLine();

                    if (string.IsNullOrWhiteSpace(dataLine))
                    {
                        continue;
                    }

                    filteredIsosCount++;
                }

                Console.WriteLine("{0} data lines in {1}", filteredIsosCount, filteredIsos.Name);
            }


            Assert.AreEqual(lcmsFeatureCount, filteredIsosCount, "Mismatch between number of LC-IMS-MS features and Filtered_Isos data points");

            // Old value: 2046
            // Value in March 2020: 2204
            Assert.AreEqual(2204, lcmsFeatureCount, "Unexpected number of LC-IMS-features");

            if (lcmsFeaturesHeaderLine == null || !lcmsFeaturesHeaderLine.StartsWith("Feature_Index"))
            {
                Assert.Fail("LCMSFeatures file header line does not start with Feature_Index");
            }

            if (filteredIsosHeaderLine == null || !filteredIsosHeaderLine.StartsWith("msfeature_id"))
            {
                Assert.Fail("LCMSFeatures file header line does not start with msfeature_id");
            }
        }