예제 #1
0
        public void TestMSGFFilter()
        {
            const string workDir     = @"F:\My Documents\Projects\JoshAldrich\AScore\AScore_DLL\TestCase";
            var          fht         = Path.Combine(workDir, "GmaxP_itraq_NiNTA_15_29Apr10_Hawk_03-10-09p_fht.txt");
            var          param       = Path.Combine(workDir, "AScore_CID_0.5Da_ETD_0.5Da_HCD_0.05Da_MSGF1E-12.xml");
            var          dta         = Path.Combine(workDir, "GmaxP_itraq_NiNTA_15_29Apr10_Hawk_03-10-09p_dta.txt");
            var          resultsFile = Path.Combine(workDir, "GmaxP_itraq_NiNTA_15_29Apr10_Hawk_03-10-09p_fht_ascore.txt");

            var peptideMassCalculator = GetDefaultPeptideMassCalculator();

            PsmResultsManager dfht = new SequestFHT(fht);
            var pfile = new ParameterFileManager(param);

            var spectraCache = new SpectraManagerCache(peptideMassCalculator);

            spectraCache.OpenFile(dta);

            var sw = System.Diagnostics.Stopwatch.StartNew();

            var ascoreEngine = new AScore_DLL.AScoreProcessor();

            ascoreEngine.RunAScoreOnSingleFile(spectraCache, dfht, pfile, resultsFile);

            sw.Stop();
            Console.WriteLine("Time elapsed: {0:F1} seconds", sw.Elapsed.TotalSeconds);
            Console.WriteLine("Results in " + resultsFile);
        }
예제 #2
0
        public void TestMSGFPlusResults()
        {
            const string workDir     = @"F:\My Documents\Projects\JoshAldrich\AScore\AScore_DLL\TestCase";
            var          fht         = Path.Combine(workDir, "CPTAC_CompREF_00_iTRAQ_NiNTA_01b_22Mar12_Lynx_12-02-29_msgfdb_fht.txt");
            var          param       = Path.Combine(workDir, "AScore_CID_0.5Da_ETD_0.5Da_HCD_0.05Da_MSGF1E-12.xml");
            var          dta         = Path.Combine(workDir, "CPTAC_CompREF_00_iTRAQ_NiNTA_01b_22Mar12_Lynx_12-02-29_dta.txt");
            var          resultsFile = Path.Combine(workDir, "CPTAC_CompREF_00_iTRAQ_NiNTA_01b_22Mar12_Lynx_12-02-29_msgfdb_fht_ascore.txt");

            var peptideMassCalculator = GetDefaultPeptideMassCalculator();

            PsmResultsManager dfht = new MsgfdbFHT(fht);
            var pfile = new ParameterFileManager(param);

            var spectraCache = new SpectraManagerCache(peptideMassCalculator);

            spectraCache.OpenFile(dta);

            var sw = System.Diagnostics.Stopwatch.StartNew();

            var ascoreEngine = new AScore_DLL.AScoreProcessor();

            ascoreEngine.RunAScoreOnSingleFile(spectraCache, dfht, pfile, resultsFile);

            sw.Stop();
            Console.WriteLine("Time elapsed: {0:F1} seconds", sw.Elapsed.TotalSeconds);
            Console.WriteLine("Results in " + resultsFile);
        }
예제 #3
0
        public void EcoliTest2()
        {
            var datasetname = new string[] {
                @"C:\Documents and Settings\aldr699\My Documents2011\SisiTopDown\E_coli_BW_70_bottom_up_23Sep11_Draco_11-07-12_fht.txt"
            };

            var dtaname = new string[] {
                @"C:\Documents and Settings\aldr699\My Documents2011\SisiTopDown\E_coli_BW_70_bottom_up_23Sep11_Draco_11-07-12_dta.txt"
            };

            var ascParam = new string[] {
                @"C:\Documents and Settings\aldr699\My Documents2011\SisiTopDown\parameterFileForMus.xml"
            };

            var peptideMassCalculator = GetDefaultPeptideMassCalculator();

            for (var i = 0; i < dtaname.Length; i++)
            {
                var outFile = datasetname[i].Substring(0, datasetname[i].Length - 8) + "_AScoreTry.txt";
                PsmResultsManager datasetMan = new SequestFHT(datasetname[i]);
                //DtaManager dtaManager = new DtaManager(dtaname[i]);
                var spectraCache = new SpectraManagerCache(peptideMassCalculator);
                spectraCache.OpenFile(dtaname[i]);
                var paramFile    = new ParameterFileManager(ascParam[i]);
                var ascoreEngine = new AScore_DLL.AScoreProcessor();
                //ascoreEngine.AlgorithmRun(dtaManager, datasetMan, paramFile, outFile);
                ascoreEngine.RunAScoreOnSingleFile(spectraCache, datasetMan, paramFile, outFile);
            }
        }
예제 #4
0
        public void FengTest2()
        {
            var datasetname = new string[] {
                @"C:\Documents and Settings\aldr699\My Documents2011\FengTest\ETD\B_Mus_con_15Oct10_Hawk_03-10-10p_fht.txt"
            };

            var dtaname = new string[] {
                @"C:\Documents and Settings\aldr699\My Documents2011\FengTest\ETD\B_Mus_con_15Oct10_Hawk_03-10-10p_dta.txt"
            };

            var ascParam = new string[] {
                @"C:\Documents and Settings\aldr699\My Documents2011\FengTest\parameterFileForMusETD2.xml"
            };

            var peptideMassCalculator = GetDefaultPeptideMassCalculator();

            for (var i = 0; i < dtaname.Length; i++)
            {
                var outFile = datasetname[i].Substring(0, datasetname[i].Length - 8) + "_AScoreTry.txt";
                PsmResultsManager datasetMan = new SequestFHT(datasetname[i]);
                //DtaManager dtaManager = new DtaManager(dtaname[i]);
                var spectraCache = new SpectraManagerCache(peptideMassCalculator);
                spectraCache.OpenFile(dtaname[i]);
                var paramFile    = new ParameterFileManager(ascParam[i]);
                var ascoreEngine = new AScore_DLL.AScoreProcessor();
                //ascoreEngine.AlgorithmRun(dtaManager, datasetMan, paramFile, outFile);
                ascoreEngine.RunAScoreOnSingleFile(spectraCache, datasetMan, paramFile, outFile);
            }
        }
예제 #5
0
        public void NewTest()
        {
            var ascore = new string[] { "SOSM_May_P1_R2_13Jun11_Hawk_11-04-02p_fht.txt" };
            //"SOSM_May_G2_R2_13Jun11_Hawk_11-04-02p_fht.txt",
            //"SOSM_May_M_R2_6Jun11_Hawk_11-04-02p_fht.txt",
            //"SOSM_May_P1_R1_6Jun11_Hawk_11-04-02p_fht.txt",
            //"SOSM_May_P1_R2_6Jun11_Hawk_11-04-02p_fht.txt"};

            const string fhtPath = @"C:\Documents and Settings\aldr699\My Documents2011\SOSM\CID\ForAScore";
            const string dtapath = @"C:\Documents and Settings\aldr699\My Documents2011\SOSM";
            const string parFile = @"C:\Documents and Settings\aldr699\My Documents2011\SOSM\parameterFile.xml";

            var peptideMassCalculator = GetDefaultPeptideMassCalculator();

            foreach (var a in ascore)
            {
                var myFht   = Path.Combine(fhtPath, a);
                var myDta   = Path.Combine(dtapath, a.Substring(0, a.Length - 8) + "_dta.txt");
                var outFile = Path.Combine(fhtPath, a.Substring(0, a.Length - 8) + "_AScore.txt");
                PsmResultsManager datasetMan = new SequestFHT(myFht);
                //DtaManager dtaManager = new DtaManager(myDta);
                var spectraCache = new SpectraManagerCache(peptideMassCalculator);
                spectraCache.OpenFile(myDta);
                var paramFile = new ParameterFileManager(parFile);

                var ascoreEngine = new AScore_DLL.AScoreProcessor();
                //ascoreEngine.AlgorithmRun(dtaManager, datasetMan, paramFile, outFile);
                ascoreEngine.RunAScoreOnSingleFile(spectraCache, datasetMan, paramFile, outFile);
            }
        }
예제 #6
0
        public void Sisi()
        {
            const string ascoreP = "parameterFile.xml";
            const string direct  = @"C:\Users\aldr699\Documents\2012\Sisi_ASCORE\Group2";

            var fhtFiles = new List <string> {
                "NMR_HetR_UG_01_20Jul11_Andromeda_11-06-19_fhtf.txt",
                "NMR_HetR_UG_02_20Jul11_Andromeda_11-06-29_fhtf.txt",
                "NMR_HetR_UG_03_20Jul11_Andromeda_11-06-19_fhtf.txt",
                "NMR_HetR_LG_01_20Jul11_Andromeda_11-06-29_fhtf.txt",
                "NMR_HetR_LG_02_20Jul11_Andromeda_11-06-29_fhtf.txt",
                "NMR_HetR_LG_03_20Jul11_Andromeda_11-06-19_fhtf.txt",
                "NMR_LaR80a_01_20Jul11_Andromeda_11-02-54_fhtf.txt",
                "NMR_LaR80a_02_20Jul11_Andromeda_11-02-56_fhtf.txt",
                "NMR_LaR80a_03_20Jul11_Andromeda_11-02-54_fhtf.txt"
            };

            var dtaFiles = new List <string> {
                "NMR_HetR_UG_01_20Jul11_Andromeda_11-06-19_dta.txt",
                "NMR_HetR_UG_02_20Jul11_Andromeda_11-06-29_dta.txt",
                "NMR_HetR_UG_03_20Jul11_Andromeda_11-06-19_dta.txt",
                "NMR_HetR_LG_01_20Jul11_Andromeda_11-06-29_dta.txt",
                "NMR_HetR_LG_02_20Jul11_Andromeda_11-06-29_dta.txt",
                "NMR_HetR_LG_03_20Jul11_Andromeda_11-06-19_dta.txt",
                "NMR_LaR80a_01_20Jul11_Andromeda_11-02-54_dta.txt",
                "NMR_LaR80a_02_20Jul11_Andromeda_11-02-56_dta.txt",
                "NMR_LaR80a_03_20Jul11_Andromeda_11-02-54_dta.txt"
            };

            var peptideMassCalculator = GetDefaultPeptideMassCalculator();

            for (var i = 0; i < fhtFiles.Count; i++)
            {
                var tempfht = Path.Combine(direct, fhtFiles[i]);
                var tempdta = Path.Combine(direct, dtaFiles[i]);
                var ascP    = Path.Combine(direct, ascoreP);
                var tempout = Path.Combine(direct, fhtFiles[i].Substring(0, fhtFiles[i].Length - 4) + "_AScore2.txt");

                PsmResultsManager dsman = new SequestFHT(tempfht);
                //DtaManager dtman = new DtaManager(tempdta);
                var spectraCache = new SpectraManagerCache(peptideMassCalculator);
                spectraCache.OpenFile(tempdta);
                var pman = new ParameterFileManager(ascP);

                var ascoreEngine = new AScore_DLL.AScoreProcessor();
                //ascoreEngine.AlgorithmRun(dtman, dsman, pman, tempout);
                ascoreEngine.RunAScoreOnSingleFile(spectraCache, dsman, pman, tempout);
            }
        }
예제 #7
0
        public void SisiConfirm()
        {
            var dtaname = new string[] {
                @"C:\Users\aldr699\Documents\2012\Sisi_Work\PhosphohistidineConfirmation\09302010_MG1655_phospho_S_08_B_100930113735_dta.txt",
                @"C:\Users\aldr699\Documents\2012\Sisi_Work\PhosphohistidineConfirmation\10012010_MG1655_phospho_S_09_B_101001105913_dta.txt",
                @"C:\Users\aldr699\Documents\2012\Sisi_Work\PhosphohistidineConfirmation\10012010_MG1655_phospho_s06_101002094806_dta.txt",
                @"C:\Users\aldr699\Documents\2012\Sisi_Work\PhosphohistidineConfirmation\10012010_MG1655_phospho_s10_101001105913_dta.txt",
                @"C:\Users\aldr699\Documents\2012\Sisi_Work\PhosphohistidineConfirmation\10022010_MG1655_phospho_S11_rerun_101005165350_dta.txt",
                @"C:\Users\aldr699\Documents\2012\Sisi_Work\PhosphohistidineConfirmation\10022010_MG1655_phospho_s12_101002094806_dta.txt",
                @"C:\Users\aldr699\Documents\2012\Sisi_Work\PhosphohistidineConfirmation\10022010_MG1655_phospho_s7_101002094806_dta.txt"
            };
            var datasetname = new string[] {
                @"C:\Users\aldr699\Documents\2012\Sisi_Work\PhosphohistidineConfirmation\09302010_MG1655_phospho_S_08_B_100930113735_msgfdb_fht.txt",
                @"C:\Users\aldr699\Documents\2012\Sisi_Work\PhosphohistidineConfirmation\10012010_MG1655_phospho_S_09_B_101001105913_msgfdb_fht.txt",
                @"C:\Users\aldr699\Documents\2012\Sisi_Work\PhosphohistidineConfirmation\10012010_MG1655_phospho_s06_101002094806_msgfdb_fht.txt",
                @"C:\Users\aldr699\Documents\2012\Sisi_Work\PhosphohistidineConfirmation\10012010_MG1655_phospho_s10_101001105913_msgfdb_fht.txt",
                @"C:\Users\aldr699\Documents\2012\Sisi_Work\PhosphohistidineConfirmation\10022010_MG1655_phospho_S11_rerun_101005165350_msgfdb_fht.txt",
                @"C:\Users\aldr699\Documents\2012\Sisi_Work\PhosphohistidineConfirmation\10022010_MG1655_phospho_s12_101002094806_msgfdb_fht.txt",
                @"C:\Users\aldr699\Documents\2012\Sisi_Work\PhosphohistidineConfirmation\10022010_MG1655_phospho_s7_101002094806_msgfdb_fht.txt"
            };
            var ascParam = new string[] {
                @"C:\Users\aldr699\Documents\2012\Sisi_Work\PhosphohistidineConfirmation\HistPhos.xml",
                @"C:\Users\aldr699\Documents\2012\Sisi_Work\PhosphohistidineConfirmation\HistPhos.xml",
                @"C:\Users\aldr699\Documents\2012\Sisi_Work\PhosphohistidineConfirmation\HistPhos.xml",
                @"C:\Users\aldr699\Documents\2012\Sisi_Work\PhosphohistidineConfirmation\HistPhos.xml",
                @"C:\Users\aldr699\Documents\2012\Sisi_Work\PhosphohistidineConfirmation\HistPhos.xml",
                @"C:\Users\aldr699\Documents\2012\Sisi_Work\PhosphohistidineConfirmation\HistPhos.xml",
                @"C:\Users\aldr699\Documents\2012\Sisi_Work\PhosphohistidineConfirmation\HistPhos.xml"
            };

            var peptideMassCalculator = GetDefaultPeptideMassCalculator();

            for (var i = 0; i < dtaname.Length; i++)
            {
                var outFile = Path.Combine(
                    Path.GetDirectoryName(datasetname[i]),
                    Path.GetFileNameWithoutExtension(datasetname[i]) + "_AScore.txt");
                PsmResultsManager datasetMan = new MsgfdbFHT(datasetname[i]);
                //DtaManager dtaManager = new DtaManager(dtaname[i]);
                var spectraCache = new SpectraManagerCache(peptideMassCalculator);
                spectraCache.OpenFile(dtaname[i]);
                var paramFile    = new ParameterFileManager(ascParam[i]);
                var ascoreEngine = new AScore_DLL.AScoreProcessor();
                //ascoreEngine.AlgorithmRun(dtaManager, datasetMan, paramFile, outFile);
                ascoreEngine.RunAScoreOnSingleFile(spectraCache, datasetMan, paramFile, outFile);
            }
        }
예제 #8
0
        /// <summary>
        /// Configure and run the AScore algorithm, optionally can add protein mapping information
        /// </summary>
        /// <param name="spectraManager"></param>
        /// <param name="psmResultsManager"></param>
        /// <param name="ascoreParams"></param>
        /// <param name="outputFilePath">Name of the output file</param>
        /// <param name="fastaFilePath">Path to FASTA file. If this is empty/null, protein mapping will not occur</param>
        /// <param name="outputDescriptions">Whether to include protein description line in output or not.</param>
        public void RunAScoreOnSingleFile(
            SpectraManagerCache spectraManager,
            PsmResultsManager psmResultsManager,
            ParameterFileManager ascoreParams,
            string outputFilePath,
            string fastaFilePath    = "",
            bool outputDescriptions = false
            )
        {
            var ascoreOptions = new AScoreOptions
            {
                FastaFilePath             = fastaFilePath,
                OutputProteinDescriptions = outputDescriptions
            };

            ascoreOptions.SetAScoreResultsFilePath(outputFilePath);

            RunAScoreOnSingleFile(ascoreOptions, spectraManager, psmResultsManager, ascoreParams);
        }
예제 #9
0
        /// <summary>
        /// Configure and run the AScore algorithm, optionally can add protein mapping information
        /// </summary>
        /// <param name="ascoreOptions"></param>
        /// <param name="spectraManager"></param>
        /// <param name="psmResultsManager"></param>
        /// <param name="ascoreParams"></param>
        public void RunAScoreWithMappingFile(
            AScoreOptions ascoreOptions,
            SpectraManagerCache spectraManager,
            PsmResultsManager psmResultsManager,
            ParameterFileManager ascoreParams)
        {
            var requiredColumns = new List <string>
            {
                "Job",
                "Dataset"
            };

            OnStatusEvent("Reading Job to Dataset Map File: " + PathUtils.CompactPathString(ascoreOptions.JobToDatasetMapFile, 80));

            ReadJobToDatasetMapFile(ascoreOptions, requiredColumns, out var jobToDatasetNameMap);

            RunAScoreOnPreparedData(jobToDatasetNameMap, spectraManager, psmResultsManager, ascoreParams, ascoreOptions, false);

            ProteinMapperTestRun(ascoreOptions);
        }
예제 #10
0
        public void ForJohnJacobs()
        {
            const string myfht = @"C:\DMS_WorkDir\Step_1_ASCORE\U54_HPp1_LoBMI_NS_11_5Sep08_Draco_08-07-15_xt.txt";
            const string mydta = @"C:\DMS_WorkDir\Step_1_ASCORE\dtas\U54_HPp1_LoBMI_NS_11_5Sep08_Draco_08-07-15_dta.txt";
            const string mypar = @"C:\DMS_WorkDir\Step_1_ASCORE\DynMWPYOx_EmH20_QmNH3_cid.xml";

            var peptideMassCalculator = GetDefaultPeptideMassCalculator();

            PsmResultsManager dataman = new XTandemFHT(myfht);
            //DtaManager dta = new DtaManager(mydta);
            var spectraCache = new SpectraManagerCache(peptideMassCalculator);

            spectraCache.OpenFile(mydta);
            var          par          = new ParameterFileManager(mypar);
            const string fileOutput   = @"C:\DMS_WorkDir\Step_1_ASCORE\U54_HPp1_LoBMI_NS_11_5Sep08_Draco_08-07-15_xt_ascore.txt";
            var          ascoreEngine = new AScore_DLL.AScoreProcessor();

            //ascoreEngine.AlgorithmRun(dta, dataman, par, fileOutput);
            ascoreEngine.RunAScoreOnSingleFile(spectraCache, dataman, par, fileOutput);
        }
예제 #11
0
        /// <summary>
        /// Configure and run the AScore algorithm, optionally can add protein mapping information
        /// </summary>
        /// <param name="ascoreOptions"></param>
        /// <param name="spectraManager"></param>
        /// <param name="psmResultsManager"></param>
        /// <param name="ascoreParams"></param>
        public void RunAScoreOnSingleFile(
            AScoreOptions ascoreOptions,
            SpectraManagerCache spectraManager,
            PsmResultsManager psmResultsManager,
            ParameterFileManager ascoreParams)
        {
            var jobToDatasetNameMap = new Dictionary <string, DatasetFileInfo>
            {
                {
                    psmResultsManager.JobNum,
                    new DatasetFileInfo(spectraManager.SpectrumFilePath, spectraManager.ModSummaryFilePath)
                }
            };

            if (spectraManager == null || !spectraManager.Initialized)
            {
                throw new Exception(
                          "spectraManager must be instantiated and initialized before calling RunAScoreOnSingleFile for a single source file");
            }

            RunAScoreOnPreparedData(jobToDatasetNameMap, spectraManager, psmResultsManager, ascoreParams, ascoreOptions, true);

            ProteinMapperTestRun(ascoreOptions);
        }
예제 #12
0
        /// <summary>
        /// Configure and run the AScore algorithm
        /// </summary>
        /// <param name="ascoreOptions"></param>
        /// <returns></returns>
        public int RunAScore(AScoreOptions ascoreOptions)
        {
            var paramManager = new ParameterFileManager(ascoreOptions.AScoreParamFile);

            RegisterEvents(paramManager);

            Console.WriteLine();

            if (paramManager.DynamicMods.Count > 0 || paramManager.StaticMods.Count > 0)
            {
                OnStatusEvent("Loaded modifications from: " + ascoreOptions.AScoreParamFile);

                foreach (var mod in paramManager.StaticMods)
                {
                    OnStatusEvent(Utilities.GetModDescription("Static,   ", mod));
                }

                foreach (var mod in paramManager.DynamicMods)
                {
                    OnStatusEvent(Utilities.GetModDescription("Dynamic,  ", mod));
                }

                foreach (var mod in paramManager.TerminiMods)
                {
                    OnStatusEvent(Utilities.GetModDescription("Terminus, ", mod));
                }

                Console.WriteLine();
            }

            PsmResultsManager psmResultsManager;

            switch (ascoreOptions.SearchType)
            {
            case AScoreOptions.SearchMode.XTandem:
                OnStatusEvent("Caching data in " + PathUtils.CompactPathString(ascoreOptions.DbSearchResultsFile, 80));
                psmResultsManager = new XTandemFHT(ascoreOptions.DbSearchResultsFile);
                break;

            case AScoreOptions.SearchMode.Sequest:
                OnStatusEvent("Caching data in " + PathUtils.CompactPathString(ascoreOptions.DbSearchResultsFile, 80));
                psmResultsManager = new SequestFHT(ascoreOptions.DbSearchResultsFile);
                break;

            case AScoreOptions.SearchMode.Inspect:
                OnStatusEvent("Caching data in " + PathUtils.CompactPathString(ascoreOptions.DbSearchResultsFile, 80));
                psmResultsManager = new InspectFHT(ascoreOptions.DbSearchResultsFile);
                break;

            case AScoreOptions.SearchMode.Msgfdb:
            case AScoreOptions.SearchMode.Msgfplus:
                OnStatusEvent("Caching data in " + PathUtils.CompactPathString(ascoreOptions.DbSearchResultsFile, 80));
                if (ascoreOptions.SearchResultsType == AScoreOptions.DbSearchResultsType.Mzid)
                {
                    if (ascoreOptions.CreateUpdatedDbSearchResultsFile)
                    {
                        psmResultsManager = new MsgfMzidFull(ascoreOptions.DbSearchResultsFile);
                    }
                    else
                    {
                        psmResultsManager = new MsgfMzid(ascoreOptions.DbSearchResultsFile);
                    }
                }
                else
                {
                    psmResultsManager = new MsgfdbFHT(ascoreOptions.DbSearchResultsFile);
                }
                break;

            default:
                OnErrorEvent(string.Format(
                                 "Incorrect search type: {0} , supported values are {1}",
                                 ascoreOptions.SearchType,
                                 string.Join(", ", Enum.GetNames(typeof(AScoreOptions.SearchMode)))
                                 ));
                return(-13);
            }
            var peptideMassCalculator = new PeptideMassCalculator();

            var spectraManager = new SpectraManagerCache(peptideMassCalculator);

            RegisterEvents(spectraManager);

            OnStatusEvent("Output directory: " + ascoreOptions.OutputDirectoryInfo.FullName);

            var ascoreEngine = new AScoreAlgorithm();

            RegisterEvents(ascoreEngine);

            // Initialize the options
            FilterOnMSGFScore = ascoreOptions.FilterOnMSGFScore;

            // Run the algorithm
            if (ascoreOptions.MultiJobMode)
            {
                RunAScoreWithMappingFile(ascoreOptions, spectraManager, psmResultsManager, paramManager);
            }
            else
            {
                spectraManager.OpenFile(ascoreOptions.MassSpecFile, ascoreOptions.ModSummaryFile);

                RunAScoreOnSingleFile(ascoreOptions, spectraManager, psmResultsManager, paramManager);
            }

            OnStatusEvent("AScore Complete");

            if (ascoreOptions.CreateUpdatedDbSearchResultsFile)
            {
                if (ascoreOptions.SearchResultsType == AScoreOptions.DbSearchResultsType.Fht)
                {
                    CreateUpdatedFirstHitsFile(ascoreOptions);
                }
                else if (psmResultsManager is MsgfMzidFull mzidFull)
                {
                    mzidFull.WriteToMzidFile(ascoreOptions.UpdatedDbSearchResultsFileName);
                    OnStatusEvent("Results merged; new file: " + PathUtils.CompactPathString(ascoreOptions.UpdatedDbSearchResultsFileName, 80));
                }
            }

            return(0);
        }
예제 #13
0
        /// <summary>
        /// Runs the all the tools necessary to perform an ascore run
        /// </summary>
        /// <param name="jobToDatasetNameMap">Keys are job numbers (stored as strings); values are Dataset Names or the path to the _dta.txt file</param>
        /// <param name="spectraManager">Manager for reading _dta.txt or .mzML files; must have already been initialized by the calling class</param>
        /// <param name="psmResultsManager"></param>
        /// <param name="ascoreParams"></param>
        /// <param name="ascoreOptions"></param>
        /// <param name="spectraFileOpened">Set to true if processing a single dataset, and spectraManager.OpenFile() has already been called</param>
        private void RunAScoreOnPreparedData(
            IReadOnlyDictionary <string, DatasetFileInfo> jobToDatasetNameMap,
            SpectraManagerCache spectraManager,
            PsmResultsManager psmResultsManager,
            ParameterFileManager ascoreParams,
            AScoreOptions ascoreOptions,
            bool spectraFileOpened)
        {
            var totalRows            = psmResultsManager.GetRowLength();
            var dctPeptidesProcessed = new Dictionary <string, int>();

            if (jobToDatasetNameMap == null || jobToDatasetNameMap.Count == 0)
            {
                const string errorMessage = "Error in AlgorithmRun: jobToDatasetNameMap cannot be null or empty";
                OnErrorEvent(errorMessage);
                throw new ArgumentException(errorMessage);
            }

            ISpectraManager spectraFile = null;
            string          spectraManagerCurrentJob = null; // Force open after first read from fht

            var modSummaryManager = new ModSummaryFileManager();

            RegisterEvents(modSummaryManager);

            var peptideMassCalculator = new PeptideMassCalculator();

            if (FilterOnMSGFScore)
            {
                OnStatusEvent("Filtering using MSGF_SpecProb <= " + ascoreParams.MSGFPreFilter.ToString("0.0E+00"));
            }
            Console.WriteLine();

            var statsByType     = new int[4];
            var ascoreAlgorithm = new AScoreAlgorithm();

            RegisterEvents(ascoreAlgorithm);

            while (psmResultsManager.CurrentRowNum < totalRows)
            {
                //  Console.Clear();

                if (psmResultsManager.CurrentRowNum % 100 == 0)
                {
                    Console.Write("\rPercent Completion " + Math.Round((double)psmResultsManager.CurrentRowNum / totalRows * 100) + "%");
                }

                int    scanNumber;
                int    scanCount;
                int    chargeState;
                string peptideSeq;
                double msgfScore;

                if (FilterOnMSGFScore)
                {
                    psmResultsManager.GetNextRow(out scanNumber, out scanCount, out chargeState, out peptideSeq, out msgfScore, ref ascoreParams);
                }
                else
                {
                    psmResultsManager.GetNextRow(out scanNumber, out scanCount, out chargeState, out peptideSeq, ref ascoreParams);
                    msgfScore = 1;
                }

                switch (ascoreParams.FragmentType)
                {
                case FragmentType.CID:
                    statsByType[(int)FragmentType.CID]++;
                    break;

                case FragmentType.ETD:
                    statsByType[(int)FragmentType.ETD]++;
                    break;

                case FragmentType.HCD:
                    statsByType[(int)FragmentType.HCD]++;
                    break;

                default:
                    statsByType[(int)FragmentType.Unspecified]++;
                    break;
                }

                if (string.IsNullOrEmpty(spectraManagerCurrentJob) || !string.Equals(spectraManagerCurrentJob, psmResultsManager.JobNum))
                {
                    // New dataset
                    // Get the correct spectrum file for the match
                    if (!jobToDatasetNameMap.TryGetValue(psmResultsManager.JobNum, out var datasetInfo))
                    {
                        var errorMessage = "Input file refers to job " + psmResultsManager.JobNum +
                                           " but jobToDatasetNameMap does not contain that job; unable to continue";
                        OnWarningEvent(errorMessage);

                        if (!psmResultsManager.JobColumnDefined)
                        {
                            OnWarningEvent(
                                "If the input file includes results from multiple jobs, the first column must be job number with Job as the column heading");
                        }

                        throw new Exception(errorMessage);
                    }

                    var datasetName = GetDatasetName(datasetInfo.SpectrumFilePath);
                    OnStatusEvent("Dataset name: " + datasetName);

                    if (!spectraFileOpened)
                    {
                        // This method was called from RunAScoreWithMappingFile
                        // Open the spectrum file for this dataset
                        spectraFile = spectraManager.GetSpectraManagerForFile(
                            psmResultsManager.PSMResultsFilePath,
                            datasetName,
                            datasetInfo.ModSummaryFilePath);
                    }
                    else
                    {
                        spectraFile = spectraManager.GetCurrentSpectrumManager();
                    }

                    spectraManagerCurrentJob = string.Copy(psmResultsManager.JobNum);
                    Console.Write("\r");

                    if (string.IsNullOrWhiteSpace(datasetInfo.ModSummaryFilePath) && !string.IsNullOrWhiteSpace(ascoreOptions.ModSummaryFile))
                    {
                        datasetInfo.ModSummaryFilePath = ascoreOptions.ModSummaryFile;
                    }

                    if (psmResultsManager is MsgfMzid mzid)
                    {
                        mzid.SetModifications(ascoreParams);
                    }
                    else if (psmResultsManager is MsgfMzidFull mzidFull)
                    {
                        mzidFull.SetModifications(ascoreParams);
                    }
                    else
                    {
                        if (string.IsNullOrEmpty(datasetInfo.ModSummaryFilePath))
                        {
                            modSummaryManager.ReadModSummary(spectraFile.DatasetName, psmResultsManager.PSMResultsFilePath, ascoreParams);
                        }
                        else
                        {
                            var modSummaryFile = new FileInfo(datasetInfo.ModSummaryFilePath);
                            modSummaryManager.ReadModSummary(modSummaryFile, ascoreParams);
                        }
                    }

                    Console.WriteLine();

                    Console.Write("\rPercent Completion " + Math.Round((double)psmResultsManager.CurrentRowNum / totalRows * 100) + "%");
                }

                // perform work on the match
                var    peptideParts = peptideSeq.Split('.');
                string sequenceWithoutSuffixOrPrefix;
                string front;
                string back;

                if (peptideParts.Length >= 3)
                {
                    front = peptideParts[0];
                    sequenceWithoutSuffixOrPrefix = peptideParts[1];
                    back = peptideParts[2];
                }
                else
                {
                    front = "?";
                    sequenceWithoutSuffixOrPrefix = string.Copy(peptideSeq);
                    back = "?";
                }

                var sequenceClean = GetCleanSequence(sequenceWithoutSuffixOrPrefix, ref ascoreParams);
                var skipPSM       = FilterOnMSGFScore && msgfScore > ascoreParams.MSGFPreFilter;

                var scanChargePeptide = scanNumber + "_" + chargeState + "_" + sequenceWithoutSuffixOrPrefix;
                if (dctPeptidesProcessed.ContainsKey(scanChargePeptide))
                {
                    // We have already processed this PSM
                    skipPSM = true;
                }
                else
                {
                    dctPeptidesProcessed.Add(scanChargePeptide, 0);
                }

                if (skipPSM)
                {
                    psmResultsManager.IncrementRow();
                    continue;
                }

                //Get experimental spectra
                if (spectraFile == null)
                {
                    const string errorMessage = "spectraFile is uninitialized in RunAScoreOnPreparedData; this indicates a programming bug";
                    OnErrorEvent(errorMessage);
                    throw new Exception(errorMessage);
                }

                var expSpec = spectraFile.GetExperimentalSpectra(scanNumber, scanCount, chargeState);

                if (expSpec == null)
                {
                    OnWarningEvent("Scan " + scanNumber + " not found in spectra file for peptide " + peptideSeq);
                    psmResultsManager.IncrementRow();
                    continue;
                }

                // Assume monoisotopic for both hi res and low res spectra
                MolecularWeights.MassType = MassType.Monoisotopic;

                // Compute precursor m/z value
                var precursorMZ = peptideMassCalculator.ConvoluteMass(expSpec.PrecursorMass, 1, chargeState);

                // Set the m/z range
                var mzMax = maxRange;
                var mzMin = precursorMZ * lowRangeMultiplier;

                if (ascoreParams.FragmentType != FragmentType.CID)
                {
                    mzMax = maxRange;
                    mzMin = minRange;
                }

                //Generate all combination mixtures
                var modMixture = new Combinatorics.ModMixtureCombo(ascoreParams.DynamicMods, sequenceClean);

                var myPositionsList = GetMyPositionList(sequenceClean, modMixture);

                //If I have more than 1 modifiable site proceed to calculation
                if (myPositionsList.Count > 1)
                {
                    ascoreAlgorithm.ComputeAScore(psmResultsManager, ascoreParams, scanNumber, chargeState,
                                                  peptideSeq, front, back, sequenceClean, expSpec,
                                                  mzMax, mzMin, myPositionsList);
                }
                else if (myPositionsList.Count == 1)
                {
                    // Either one or no modifiable sites
                    var uniqueID = myPositionsList[0].Max();
                    if (uniqueID == 0)
                    {
                        psmResultsManager.WriteToTable(peptideSeq, scanNumber, 0, myPositionsList[0], MOD_INFO_NO_MODIFIED_RESIDUES);
                    }
                    else
                    {
                        psmResultsManager.WriteToTable(peptideSeq, scanNumber, 0, myPositionsList[0], LookupModInfoByID(uniqueID, ascoreParams.DynamicMods));
                    }
                }
                else
                {
                    // No modifiable sites
                    psmResultsManager.WriteToTable(peptideSeq, scanNumber, 0, new int[0], MOD_INFO_NO_MODIFIED_RESIDUES);
                }
                psmResultsManager.IncrementRow();
            }

            Console.WriteLine();

            OnStatusEvent(string.Format("Writing {0:N0} rows to {1}", psmResultsManager.ResultsCount, PathUtils.CompactPathString(ascoreOptions.AScoreResultsFilePath, 80)));
            psmResultsManager.WriteToFile(ascoreOptions.AScoreResultsFilePath);

            Console.WriteLine();

            if (statsByType.Sum() == 0)
            {
                OnWarningEvent("Input file appeared empty");
            }
            else
            {
                OnStatusEvent("Stats by fragmentation ion type:");
                ReportStatsForFragType("  CID", statsByType, FragmentType.CID);
                ReportStatsForFragType("  ETD", statsByType, FragmentType.ETD);
                ReportStatsForFragType("  HCD", statsByType, FragmentType.HCD);
            }

            Console.WriteLine();
        }
예제 #14
0
        public void Sisi_Kidneys()
        {
            const string ascoreP   = "HCDPhos.xml";
            const string directSeq = @"C:\Users\aldr699\Documents\2012\Sisi_Work\DarthVehDas\Sequest";
            const string directMsg = @"C:\Users\aldr699\Documents\2012\Sisi_Work\DarthVehDas\MSGFDB";

            var fhtFiles = new List <string> {
                "Kidney_ACHN_Das_1_pTyr_HCD_8May12_Lynx_12-02-29_fht.txt",
                "Kidney_ACHN_Veh_1_pTyr_HCD_10May12_Lynx_12-02-29_fht.txt",
                "Kidney_ACHN_Veh_2_IMAC_HCD_10May12_Lynx_12-02-31_fht.txt",
                "Kidney_ACHN_Das_2_IMAC_HCD_11May12_Lynx_12-02-31_fht.txt"
            };

            var msgfdbFile = new List <string> {
                "Kidney_ACHN_Das_1_pTyr_HCD_8May12_Lynx_12-02-29_msgfdb_fht.txt",
                "Kidney_ACHN_Veh_1_pTyr_HCD_10May12_Lynx_12-02-29_msgfdb_fht.txt",
                "Kidney_ACHN_Veh_2_IMAC_HCD_10May12_Lynx_12-02-31_msgfdb_fht.txt",
                "Kidney_ACHN_Das_2_IMAC_HCD_11May12_Lynx_12-02-31_msgfdb_fht.txt"
            };

            const string direct2 = @"C:\Users\aldr699\Documents\2012\Sisi_Work\DarthVehDas";

            var dtaFiles = new List <string> {
                "Kidney_ACHN_Das_1_pTyr_HCD_8May12_Lynx_12-02-29_dta.txt",
                "Kidney_ACHN_Veh_1_pTyr_HCD_10May12_Lynx_12-02-29_dta.txt",
                "Kidney_ACHN_Veh_2_IMAC_HCD_10May12_Lynx_12-02-31_dta.txt",
                "Kidney_ACHN_Das_2_IMAC_HCD_11May12_Lynx_12-02-31_dta.txt"
            };

            var peptideMassCalculator = GetDefaultPeptideMassCalculator();

            for (var j = 1; j < 2; j++)
            {
                for (var i = 0; i < 4; i++)
                {
                    string fht;
                    string direct;
                    if (j == 0)
                    {
                        direct = directSeq;
                        fht    = fhtFiles[i];
                    }
                    else
                    {
                        direct = directMsg;
                        fht    = msgfdbFile[i];
                    }

                    var tempfht = Path.Combine(direct, fht);
                    var tempdta = Path.Combine(direct2, dtaFiles[i]);
                    var ascP    = Path.Combine(direct2, ascoreP);
                    var tempout = Path.Combine(direct, fhtFiles[i].Substring(0, fhtFiles[i].Length - 4) + "_AScore.txt");
                    PsmResultsManager dsman;
                    if (j == 0)
                    {
                        dsman = new SequestFHT(tempfht);
                    }
                    else
                    {
                        dsman = new MsgfdbFHT(tempfht);
                    }
                    if (dsman == null)
                    {
                        Console.WriteLine("Failed to load fht");
                    }
                    //DtaManager dtman = new DtaManager(tempdta);
                    var spectraCache = new SpectraManagerCache(peptideMassCalculator);
                    spectraCache.OpenFile(tempdta);
                    var pman = new ParameterFileManager(ascP);

                    var ascoreEngine = new AScore_DLL.AScoreProcessor();
                    //ascoreEngine.AlgorithmRun(dtman, dsman, pman, tempout);
                    ascoreEngine.RunAScoreOnSingleFile(spectraCache, dsman, pman, tempout);
                }
            }
        }
예제 #15
0
        public void OsmaniRedux()
        {
            const string ascorePETD = "ETDPhos.xml";
            const string ascorePCID = "CIDPhos.xml";
            const string directETD  = @"C:\Users\aldr699\Documents\2012\Osmani\ETD";
            const string directCID  = @"C:\Users\aldr699\Documents\2012\Osmani\CID";

            var fhtFiles = new List <string> {
                "SOSM_May_G2_RR1_26Jan12_Hawk_11-11-03p_fhtf.txt",
                "SOSM_May_M_RR1_27Jan12_Hawk_11-11-03p_fhtf.txt",
                "SOSM_May_G2_RR2_27Jan12_Hawk_11-11-03p_fhtf.txt",
                "SOSM_May_M_RR2_29Jan12_Hawk_11-11-03p_fhtf.txt",
                "SOSM_May_G_RR1_31Jan12_Hawk_11-11-03p_fhtf.txt",
                "SOSM_May_P1_RR1_31Jan12_Hawk_11-11-03p_fhtf.txt"
            };

            const string direct2 = @"C:\Users\aldr699\Documents\2012\Osmani";

            var dtaFiles = new List <string> {
                "SOSM_May_G2_RR1_26Jan12_Hawk_11-11-03p_dta.txt",
                "SOSM_May_M_RR1_27Jan12_Hawk_11-11-03p_dta.txt",
                "SOSM_May_G2_RR2_27Jan12_Hawk_11-11-03p_dta.txt",
                "SOSM_May_M_RR2_29Jan12_Hawk_11-11-03p_dta.txt",
                "SOSM_May_G_RR1_31Jan12_Hawk_11-11-03p_dta.txt",
                "SOSM_May_P1_RR1_31Jan12_Hawk_11-11-03p_dta.txt"
            };

            var peptideMassCalculator = GetDefaultPeptideMassCalculator();

            for (var j = 0; j < 2; j++)
            {
                for (var i = 0; i < fhtFiles.Count; i++)
                {
                    string direct;
                    string ascoreP;
                    if (j == 0)
                    {
                        direct  = directETD;
                        ascoreP = ascorePETD;
                    }
                    else
                    {
                        direct  = directCID;
                        ascoreP = ascorePCID;
                    }

                    var tempfht = Path.Combine(direct, fhtFiles[i]);
                    var tempdta = Path.Combine(direct2, dtaFiles[i]);
                    var ascP    = Path.Combine(direct, ascoreP);
                    var tempout = Path.Combine(direct, fhtFiles[i].Substring(0, fhtFiles[i].Length - 4) + "_AScore.txt");

                    PsmResultsManager dsman = new SequestFHT(tempfht);
                    //DtaManager dtman = new DtaManager(tempdta);
                    var spectraCache = new SpectraManagerCache(peptideMassCalculator);
                    spectraCache.OpenFile(tempdta);
                    var pman = new ParameterFileManager(ascP);

                    var ascoreEngine = new AScore_DLL.AScoreProcessor();
                    //ascoreEngine.AlgorithmRun(dtman, dsman, pman, tempout);
                    ascoreEngine.RunAScoreOnSingleFile(spectraCache, dsman, pman, tempout);
                }
            }
        }
예제 #16
0
        public void QuYi()
        {
            const string direct = @"C:\Documents and Settings\aldr699\My Documents2011\EColiPhos";

            const string ascoreP = "parameterFile.xml";

            var fhtFiles = new List <string> {
                "775945_10012010_MG1655_phospho_s05_101002094806_msgfdb_fht.txt",
                "775946_10012010_MG1655_phospho_s11_101002094806_msgfdb_fht.txt",
                "775947_10022010_MG1655_phospho_s7_101002094806_msgfdb_fht.txt",
                "775948_10012010_MG1655_phospho_s10_101001105913_msgfdb_fht.txt",
                "775949_10012010_MG1655_phospho_s06_101002094806_msgfdb_fht.txt",
                "775950_10022010_MG1655_phospho_s12_101002094806_msgfdb_fht.txt",
                "775951_10022010_MG1655_phospho_S8FT_101005165350_msgfdb_fht.txt",
                "775944_10012010_MG1655_phospho_S_09_B_101001105913_msgfdb_fht.txt",
                "775942_09302010_MG1655_phospho_S_08_B_100930113735_msgfdb_fht.txt",
                "775952_10022010_MG1655_phospho_S11_rerun_101005165350_msgfdb_fht.txt",
                "775955_MG1655_phospho_S-01FT_5Nov10_Hawk_10-11-02p_msgfdb_fht.txt",
                "775956_MG1655_phospho_S-02FT_5Nov10_Hawk_10-11-02p_msgfdb_fht.txt",
                "775957_MG1655_phospho_S-03FT_8Nov10_Hawk_10-11-02p_msgfdb_fht.txt",
                "775958_MG1655_phospho_S-06FT_8Nov10_Hawk_10-11-02p_msgfdb_fht.txt",
                "775959_MG1655_phospho_S-09FT_12Nov10_Hawk_10-11-02p_msgfdb_fht.txt",
                "775960_MG1655_phospho_S-10FT_12Nov10_Hawk_10-11-02p_msgfdb_fht.txt",
                "775961_MG1655_phospho_S-12FT_15Nov10_Hawk_10-11-02p_msgfdb_fht.txt",
                "775962_MG1655_phospho_S-01_15Nov10_Hawk_10-11-02p_msgfdb_fht.txt",
                "775963_MG1655_phospho_S-02_17Nov10_Hawk_10-11-02p_msgfdb_fht.txt",
                "775964_MG1655_phospho_S-03_17Nov10_Hawk_10-11-02p_msgfdb_fht.txt",
                "775965_MG1655_phospho_S-04_17Nov10_Hawk_10-11-02p_msgfdb_fht.txt",
                "775966_MG1655_phospho_S-07_17Nov10_Hawk_10-11-02p_msgfdb_fht.txt",
                "775967_MG1655_phospho_S-12_19Nov10_Hawk_10-11-02p_msgfdb_fht.txt",
                "775968_MG1655_phospho_S-10_19Nov10_Hawk_10-11-02p_msgfdb_fht.txt",
                "775969_MG1655_phospho_S-09_19Nov10_Hawk_10-11-02p_msgfdb_fht.txt",
                "775953_10022010_MG1655_phospho_S05_rerun_101005165350_msgfdb_fht.txt",
                "775943_09302010_MG1655_phospho_S_04_B_100930113735_msgfdb_fht.txt",
                "775954_10022010_MG1655_phospho_S06_rerun_101005165350_msgfdb_fht.txt"
            };

            var dtaFiles = new List <string> {
                "10012010_MG1655_phospho_s05_101002094806_dta.txt",
                "10012010_MG1655_phospho_s11_101002094806_dta.txt",
                "10022010_MG1655_phospho_s7_101002094806_dta.txt",
                "10012010_MG1655_phospho_s10_101001105913_dta.txt",
                "10012010_MG1655_phospho_s06_101002094806_dta.txt",
                "10022010_MG1655_phospho_s12_101002094806_dta.txt",
                "10022010_MG1655_phospho_S8FT_101005165350_dta.txt",
                "10012010_MG1655_phospho_S_09_B_101001105913_dta.txt",
                "09302010_MG1655_phospho_S_08_B_100930113735_dta.txt",
                "10022010_MG1655_phospho_S11_rerun_101005165350_dta.txt",
                "MG1655_phospho_S-01FT_5Nov10_Hawk_10-11-02p_dta.txt",
                "MG1655_phospho_S-02FT_5Nov10_Hawk_10-11-02p_dta.txt",
                "MG1655_phospho_S-03FT_8Nov10_Hawk_10-11-02p_dta.txt",
                "MG1655_phospho_S-06FT_8Nov10_Hawk_10-11-02p_dta.txt",
                "MG1655_phospho_S-09FT_12Nov10_Hawk_10-11-02p_dta.txt",
                "MG1655_phospho_S-10FT_12Nov10_Hawk_10-11-02p_dta.txt",
                "MG1655_phospho_S-12FT_15Nov10_Hawk_10-11-02p_dta.txt",
                "MG1655_phospho_S-01_15Nov10_Hawk_10-11-02p_dta.txt",
                "MG1655_phospho_S-02_17Nov10_Hawk_10-11-02p_dta.txt",
                "MG1655_phospho_S-03_17Nov10_Hawk_10-11-02p_dta.txt",
                "MG1655_phospho_S-04_17Nov10_Hawk_10-11-02p_dta.txt",
                "MG1655_phospho_S-07_17Nov10_Hawk_10-11-02p_dta.txt",
                "MG1655_phospho_S-12_19Nov10_Hawk_10-11-02p_dta.txt",
                "MG1655_phospho_S-10_19Nov10_Hawk_10-11-02p_dta.txt",
                "MG1655_phospho_S-09_19Nov10_Hawk_10-11-02p_dta.txt",
                "10022010_MG1655_phospho_S05_rerun_101005165350_dta.txt",
                "09302010_MG1655_phospho_S_04_B_100930113735_dta.txt",
                "10022010_MG1655_phospho_S06_rerun_101005165350_dta.txt"
            };

            var peptideMassCalculator = GetDefaultPeptideMassCalculator();

            for (var i = 0; i < fhtFiles.Count; i++)
            {
                var tempfht = Path.Combine(direct, fhtFiles[i]);
                var tempdta = Path.Combine(direct, dtaFiles[i]);
                var ascP    = Path.Combine(direct, ascoreP);
                var tempout = Path.Combine(direct, fhtFiles[i].Substring(0, fhtFiles[i].Length - 4) + "_AScore.txt");

                PsmResultsManager dsman = new MsgfdbFHT(tempfht);
                //DtaManager dtman = new DtaManager(tempdta);
                var spectraCache = new SpectraManagerCache(peptideMassCalculator);
                spectraCache.OpenFile(tempdta);
                var pman = new ParameterFileManager(ascP);

                var ascoreEngine = new AScore_DLL.AScoreProcessor();
                //ascoreEngine.AlgorithmRun(dtman, dsman, pman, tempout);
                ascoreEngine.RunAScoreOnSingleFile(spectraCache, dsman, pman, tempout);
            }
        }