Esempio n. 1
0
        public static int Main(string[] args)
        {
            var errorCode = 0;

#if (!DEBUG)
            try
            {
#endif

            var handle = Process.GetCurrentProcess().MainWindowHandle;
            SetConsoleMode(handle, EnableExtendedFlags);

            if (args.Length == 0)
            {
                PrintUsageInfo();
                return -1;
            }

            if (args.Length % 2 != 0)
            {
                PrintUsageInfo("The number of arguments must be even");
                return -1;
            }

            // initialize parameters
            var paramDic = new Dictionary<string, string>
                {
                    {"-s", null},
                    {"-d", null},
                    {"-o", null},
                    {"-m", "1"},
                    {"-mod", null},
                    {"-t", "10"},
                    {"-f", "10"},
                    {"-tda", "0"},
                    {"-minLength", "21"},
                    {"-maxLength", "300"},
                    {"-minCharge", "2"},
                    {"-maxCharge", "60"},
                    {"-minFragCharge", "1"},
                    {"-maxFragCharge", "20"},
                    {"-minMass", "2000.0"},
                    {"-maxMass", "50000.0"},
                    {"-feature", null},
                    {"-threads", "0"},
                    {"-tagSearch", "1"},
                };


            for (var i = 0; i < args.Length / 2; i++)
            {
                var key = args[2 * i];
                var value = args[2 * i + 1];
                if (!paramDic.ContainsKey(key))
                {
                    PrintUsageInfo("Invalid parameter: " + key);
                    return -2;
                }
                paramDic[key] = value;
            }

            var parameters = new TopDownInputParameters();
            var message = parameters.Parse(paramDic);
            if (message != null)
            {
                PrintUsageInfo(message);
                return -3;
            }

            Console.WriteLine(Name + " " + Version);
            parameters.Display();
            parameters.Write();

            foreach (var specFilePath in parameters.SpecFilePaths)
            {
                
                var topDownLauncher = new IcTopDownLauncher(
                    specFilePath,
                    parameters.DatabaseFilePath,
                    parameters.OutputDir,
                    parameters.AminoAcidSet,
                    parameters.FeatureFilePath)
                {
                    MinSequenceLength = parameters.MinSequenceLength,
                    MaxSequenceLength = parameters.MaxSequenceLength,
                    MaxNumNTermCleavages = 1, // max number of N-term cleavages
                    MaxNumCTermCleavages = 0, // max number of C-term cleavages
                    MinPrecursorIonCharge = parameters.MinPrecursorIonCharge,
                    MaxPrecursorIonCharge = parameters.MaxPrecursorIonCharge,
                    MinProductIonCharge = parameters.MinProductIonCharge,
                    MaxProductIonCharge = parameters.MaxProductIonCharge,
                    MinSequenceMass = parameters.MinSequenceMass,
                    MaxSequenceMass = parameters.MaxSequenceMass,
                    PrecursorIonTolerancePpm = parameters.PrecursorIonTolerancePpm,
                    ProductIonTolerancePpm = parameters.ProductIonTolerancePpm,
                    //RunTargetDecoyAnalysisBool = parameters.TdaBool,
                    RunTargetDecoyAnalysis = parameters.Tda,
                    //SearchModeInt = parameters.SearchModeInt,
                    SearchMode = parameters.SearchMode,
                    MaxNumThreads = parameters.MaxNumThreads,
                    TagBasedSearch = parameters.TagBasedSearch
                };
                
                var success = topDownLauncher.RunSearch();

                if (success)
                {
                    continue;
                }

                // topDownLauncher returned false (not successful)

                // NOTE: The DMS Analysis Manager looks for this text; do not change it
                var errorMsg = "Error processing " + Path.GetFileName(specFilePath) + ": ";

                if (string.IsNullOrWhiteSpace(topDownLauncher.ErrorMessage))
                {
                    errorMsg += "unknown error";
                }
                else
                {
                    errorMsg += topDownLauncher.ErrorMessage;
                }

                Console.WriteLine(errorMsg);

                if (errorCode == 0)
                {
                    // This is the first error encountered; update the error code 
                    // (though we will continue processing the next file if there is one)
                    errorCode = -Math.Abs(errorMsg.GetHashCode());
                    if (errorCode == 0)
                        return -1;
                    else
                        return errorCode;
                }
            }

#if (!DEBUG)
            }
            catch (Exception ex)
            {
                // NOTE: The DMS Analysis Manager looks for this text; do not change it
                Console.WriteLine("Exception while processing: " + ex.Message);
                Console.WriteLine(ex.StackTrace);
                errorCode = -Math.Abs(ex.Message.GetHashCode());

                System.Threading.Thread.Sleep(1500);

                if (errorCode == 0)
                    return -1;
                else
                    return errorCode;

            }            
#endif

            return errorCode;

        }
Esempio n. 2
0
        public static int Main(string[] args)
        {
            var errorCode = 0;

#if (!DEBUG)
            try
            {
#endif

            var handle = Process.GetCurrentProcess().MainWindowHandle;
            SetConsoleMode(handle, EnableExtendedFlags);

            if (args.Length == 0)
            {
                PrintUsageInfo();
                return(-1);
            }

            if (args.Length % 2 != 0)
            {
                PrintUsageInfo("The number of arguments must be even");
                return(-1);
            }

            // initialize parameters
            var paramDic = new Dictionary <string, string>
            {
                { "-s", null },
                { "-d", null },
                { "-o", null },
                { "-m", "1" },
                { "-mod", null },
                { "-t", "10" },
                { "-f", "10" },
                { "-tda", "0" },
                { "-minLength", "21" },
                { "-maxLength", "300" },
                { "-minCharge", "2" },
                { "-maxCharge", "60" },
                { "-minFragCharge", "1" },
                { "-maxFragCharge", "20" },
                { "-minMass", "2000.0" },
                { "-maxMass", "50000.0" },
                { "-feature", null },
                { "-threads", "0" },
                { "-tagSearch", "1" },
            };


            for (var i = 0; i < args.Length / 2; i++)
            {
                var key   = args[2 * i];
                var value = args[2 * i + 1];
                if (!paramDic.ContainsKey(key))
                {
                    PrintUsageInfo("Invalid parameter: " + key);
                    return(-2);
                }
                paramDic[key] = value;
            }

            var parameters = new TopDownInputParameters();
            var message    = parameters.Parse(paramDic);
            if (message != null)
            {
                PrintUsageInfo(message);
                return(-3);
            }

            Console.WriteLine(Name + " " + Version);
            parameters.Display();
            parameters.Write();

            foreach (var specFilePath in parameters.SpecFilePaths)
            {
                var topDownLauncher = new IcTopDownLauncher(
                    specFilePath,
                    parameters.DatabaseFilePath,
                    parameters.OutputDir,
                    parameters.AminoAcidSet,
                    parameters.FeatureFilePath)
                {
                    MinSequenceLength        = parameters.MinSequenceLength,
                    MaxSequenceLength        = parameters.MaxSequenceLength,
                    MaxNumNTermCleavages     = 1, // max number of N-term cleavages
                    MaxNumCTermCleavages     = 0, // max number of C-term cleavages
                    MinPrecursorIonCharge    = parameters.MinPrecursorIonCharge,
                    MaxPrecursorIonCharge    = parameters.MaxPrecursorIonCharge,
                    MinProductIonCharge      = parameters.MinProductIonCharge,
                    MaxProductIonCharge      = parameters.MaxProductIonCharge,
                    MinSequenceMass          = parameters.MinSequenceMass,
                    MaxSequenceMass          = parameters.MaxSequenceMass,
                    PrecursorIonTolerancePpm = parameters.PrecursorIonTolerancePpm,
                    ProductIonTolerancePpm   = parameters.ProductIonTolerancePpm,
                    //RunTargetDecoyAnalysisBool = parameters.TdaBool,
                    RunTargetDecoyAnalysis = parameters.Tda,
                    //SearchModeInt = parameters.SearchModeInt,
                    SearchMode     = parameters.SearchMode,
                    MaxNumThreads  = parameters.MaxNumThreads,
                    TagBasedSearch = parameters.TagBasedSearch
                };

                var success = topDownLauncher.RunSearch();

                if (success)
                {
                    continue;
                }

                // topDownLauncher returned false (not successful)

                // NOTE: The DMS Analysis Manager looks for this text; do not change it
                var errorMsg = "Error processing " + Path.GetFileName(specFilePath) + ": ";

                if (string.IsNullOrWhiteSpace(topDownLauncher.ErrorMessage))
                {
                    errorMsg += "unknown error";
                }
                else
                {
                    errorMsg += topDownLauncher.ErrorMessage;
                }

                Console.WriteLine(errorMsg);

                if (errorCode == 0)
                {
                    // This is the first error encountered; update the error code
                    // (though we will continue processing the next file if there is one)
                    errorCode = -Math.Abs(errorMsg.GetHashCode());
                    if (errorCode == 0)
                    {
                        return(-1);
                    }
                    else
                    {
                        return(errorCode);
                    }
                }
            }

#if (!DEBUG)
        }

        catch (Exception ex)
        {
            // NOTE: The DMS Analysis Manager looks for this text; do not change it
            Console.WriteLine("Exception while processing: " + ex.Message);
            Console.WriteLine(ex.StackTrace);
            errorCode = -Math.Abs(ex.Message.GetHashCode());

            System.Threading.Thread.Sleep(1500);

            if (errorCode == 0)
            {
                return(-1);
            }
            else
            {
                return(errorCode);
            }
        }
#endif

            return(errorCode);
        }