/// <summary> /// Parse user input arguments /// </summary> /// <param name="args"></param> /// <returns></returns> public MakeMonoOptions Parse(string[] args) { MakeMonoOptions output = new MakeMonoOptions(); Parser.Default.ParseArguments <MakeMonoOptions>(args) .WithParsed(opt => { output = opt; }) .WithNotParsed(HandleParseError); return(output); }
static void Main(string[] args) { var parser = new CliOptionsParser(); MakeMonoOptions options = parser.Parse(args); MonocleOptions monocleOptions = new MonocleOptions { AveragingVector = options.AveragingVector, Charge_Detection = options.ChargeDetection, Charge_Range = new ChargeRange(options.ChargeRange), MS_Level = options.MS_Level, Number_Of_Scans_To_Average = options.NumOfScans, WriteDebugString = options.WriteDebug, OutputFileType = options.OutputFileType, ConvertOnly = options.ConvertOnly, SkipMono = options.SkipMono, ChargeRangeUnknown = new ChargeRange(options.ChargeRangeUnknown), ForceCharges = options.ForceCharges, UseMostIntense = options.UseMostIntense }; SetupLogger(options.RunQuiet, options.WriteDebug); try { log.Info("Starting Processing."); string file = options.InputFilePath; IScanReader reader = ScanReaderFactory.GetReader(file); reader.Open(file); var header = reader.GetHeader(); header.FileName = Path.GetFileName(file); log.Info("Reading scans: " + file); List <Scan> Scans = new List <Scan>(); foreach (Scan scan in reader) { Scans.Add(scan); } if (!monocleOptions.ConvertOnly) { log.Info("Starting monoisotopic assignment."); Monocle.Monocle.Run(ref Scans, monocleOptions); } string outputFilePath = options.OutputFilePath.Trim(); if (outputFilePath.Length == 0) { outputFilePath = ScanWriterFactory.MakeTargetFileName(file, monocleOptions.OutputFileType); } log.Info("Writing output: " + outputFilePath); IScanWriter writer = ScanWriterFactory.GetWriter(monocleOptions.OutputFileType); writer.Open(outputFilePath); writer.WriteHeader(header); foreach (Scan scan in Scans) { writer.WriteScan(scan); } writer.Close(); log.Info("Done."); } catch (Exception e) { log.Error("An error occurred."); log.Debug(e.GetType().ToString()); log.Debug(e.Message); log.Debug(e.ToString()); } }