private bool LoadParserConfig(CommandLineOptions options, out ParserConfig config) { config = new ParserConfig(); if (options.ParserConfig != null) { try { config = ParserConfig.LoadFromJSON(options.ParserConfig); if (config == null) { _logger.LogException(string.Format( "error reading parser configuration JSON object, " + "check if the given file '{0}' exists and is accessible.", options.ParserConfig)); return(false); } } catch (Exception e) { _logger.LogException("error reading parser configuration JSON object: " + e.Message); Environment.ExitCode = 1; return(false); } } return(true); }
public static void Main(string[] args) { string mspcCannotContinue = "\r\nMSPC cannot continue."; var cliOptions = new CommandLineOptions(); try { cliOptions.Parse(args, out bool helpIsDisplayed); if (helpIsDisplayed) { return; } } catch (Exception e) { Console.WriteLine(e.Message + mspcCannotContinue); return; } if (cliOptions.Input.Count < 2) { Console.WriteLine(string.Format( "At least two samples are required; {0} is given.{1}", cliOptions.Input.Count, mspcCannotContinue)); return; } foreach (var file in cliOptions.Input) { if (!File.Exists(file)) { Console.WriteLine(string.Format("Missing file: {0}{1}", file, mspcCannotContinue)); return; } } var orchestrator = new Orchestrator(cliOptions.Options); var parserConfig = new ParserConfig(); if (cliOptions.ParserConfig != null) { parserConfig = ParserConfig.LoadFromJSON(cliOptions.ParserConfig); } var et = new Stopwatch(); foreach (var file in cliOptions.Input) { Console.WriteLine(string.Format("Parsing sample: {0}", file)); et.Restart(); var parsedSample = orchestrator.LoadSample(file, parserConfig); et.Stop(); Console.WriteLine("Done... ET:\t{0}", et.Elapsed.ToString()); Console.WriteLine("Read peaks#:\t{0}", parsedSample.IntervalsCount.ToString("N0", CultureInfo.InvariantCulture)); Console.WriteLine("Min p-value:\t{0}", string.Format("{0:E3}", parsedSample.PValueMin.Value)); Console.WriteLine("Max p-value:\t{0}", string.Format("{0:E3}", parsedSample.PValueMax.Value)); Console.WriteLine(""); } Console.WriteLine("Analysis started ..."); et.Restart(); orchestrator.Run(); Console.WriteLine("\n\rSaving results ..."); orchestrator.Export(); et.Stop(); Console.WriteLine(" "); Console.WriteLine(string.Format("All processes successfully finished [Analysis ET: {0}]", et.Elapsed.ToString())); Console.WriteLine(" "); orchestrator.WriteSummaryStats(); }