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; }
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); }