/// <summary> /// Assemble function. /// </summary> /// <param name="args">Arguments to Assemble.</param> private static void Assemble(string[] args) { AssembleArguments options = new AssembleArguments(); CommandLineArguments parser = new CommandLineArguments(); AddAssembleParameters(parser); if (args.Length > 0) { try { parser.Parse(args, options); } catch (ArgumentParserException ex) { DisplayErrorMessage(ex.Message); DisplayErrorMessage(Resources.AssembleHelp); Environment.Exit(-1); } if (options.Help) { DisplayErrorMessage(Resources.AssembleHelp); } else { options.AssembleSequences(); } } else { DisplayErrorMessage(Resources.AssembleHelp); } }
/// <summary> /// Assemble function. /// </summary> /// <param name="args">Arguments to Assemble.</param> private static void Assemble(string[] args) { AssembleArguments options = new AssembleArguments(); CommandLineArguments parser = new CommandLineArguments(); AddAssembleParameters(parser); if (args.Length > 0) { try { parser.Parse(args, options); } catch (ArgumentParserException ex) { Output.WriteLine(OutputLevel.Error, ex.Message); Output.WriteLine(OutputLevel.Required, Resources.AssembleHelp); Environment.Exit(-1); } if (options.Help) { Output.WriteLine(OutputLevel.Required, Resources.AssembleHelp); } else { ValidateKmerLength(options.KmerLength, options.AllowKmerLengthEstimation); if (options.Verbose) { Output.TraceLevel = OutputLevel.Information | OutputLevel.Verbose; } else if (!options.Quiet) { Output.TraceLevel = OutputLevel.Information; } options.AssembleSequences(); } } else { Output.WriteLine(OutputLevel.Required, Resources.AssembleHelp); } }
/// <summary> /// Assemble function. /// </summary> /// <param name="args">Arguments to Assemble.</param> private static void Assemble(string[] args) { AssembleArguments options = new AssembleArguments(); if (args.Length > 0 && Parser.ParseArguments(args, options)) { if (options.Help) { DisplayErrorMessage(Resources.AssembleHelp); } else { options.AssembleSequences(); } } else { DisplayErrorMessage(Resources.AssembleHelp); } }
/// <summary> /// Generates the Scaffold. /// </summary> public void GenerateScaffold() { Output.WriteLine(OutputLevel.Information, Resources.ScaffoldStarting); if (this.FileNames.Length != 2) { Output.WriteLine(OutputLevel.Error, "\nError: A reference file and 1 query file are required."); Output.WriteLine(OutputLevel.Required, Resources.ScaffoldHelp); return; } if (!string.IsNullOrEmpty(this.CloneLibraryName)) { CloneLibrary.Instance.AddLibrary(this.CloneLibraryName, (float)this.MeanLengthOfInsert, (float)this.StandardDeviationOfInsert); } TimeSpan algorithmSpan = new TimeSpan(); Stopwatch runAlgorithm = new Stopwatch(); FileInfo refFileinfo = null; using (GraphScaffoldBuilder scaffoldBuilder = new GraphScaffoldBuilder()) { refFileinfo = new FileInfo(this.FileNames[0]); long refFileLength = refFileinfo.Length; runAlgorithm.Restart(); IEnumerable <ISequence> contigs = AssembleArguments.ParseFile(this.FileNames[0]); runAlgorithm.Stop(); algorithmSpan = algorithmSpan.Add(runAlgorithm.Elapsed); if (this.Verbose) { Output.WriteLine(OutputLevel.Verbose); Output.WriteLine(OutputLevel.Verbose, "Processed contigs file : {0}", Path.GetFullPath(this.FileNames[0])); Output.WriteLine(OutputLevel.Verbose, " Read/Processing time: {0}", runAlgorithm.Elapsed); Output.WriteLine(OutputLevel.Verbose, " File Size : {0}", refFileLength); Output.WriteLine(OutputLevel.Verbose, " k-mer Length : {0}", this.KmerLength); } refFileinfo = new FileInfo(this.FileNames[1]); refFileLength = refFileinfo.Length; runAlgorithm.Restart(); IEnumerable <ISequence> reads = AssembleArguments.ParseFile(this.FileNames[1]); runAlgorithm.Stop(); algorithmSpan = algorithmSpan.Add(runAlgorithm.Elapsed); if (this.Verbose) { Output.WriteLine(OutputLevel.Verbose); Output.WriteLine(OutputLevel.Verbose, "Processed reads file : {0}", Path.GetFullPath(this.FileNames[1])); Output.WriteLine(OutputLevel.Verbose, " Read/Processing time: {0}", runAlgorithm.Elapsed); Output.WriteLine(OutputLevel.Verbose, " File Size : {0}", refFileLength); } runAlgorithm.Restart(); ValidateAmbiguousReads(reads); runAlgorithm.Stop(); if (this.Verbose) { Output.WriteLine(OutputLevel.Verbose); Output.WriteLine(OutputLevel.Verbose, "Time taken for Validating reads: {0}", runAlgorithm.Elapsed); } runAlgorithm.Restart(); IList <ISequence> scaffolds = scaffoldBuilder.BuildScaffold(reads, contigs.ToList(), this.KmerLength, this.Depth, this.Redundancy); runAlgorithm.Stop(); algorithmSpan = algorithmSpan.Add(runAlgorithm.Elapsed); if (this.Verbose) { Output.WriteLine(OutputLevel.Verbose); Output.WriteLine(OutputLevel.Verbose, "Compute time: {0}", runAlgorithm.Elapsed); } runAlgorithm.Restart(); WriteContigs(scaffolds); runAlgorithm.Stop(); algorithmSpan = algorithmSpan.Add(runAlgorithm.Elapsed); if (this.Verbose) { Output.WriteLine(OutputLevel.Verbose); Output.WriteLine(OutputLevel.Verbose, "Write contigs time: {0}", runAlgorithm.Elapsed); Output.WriteLine(OutputLevel.Verbose, "Total runtime: {0}", algorithmSpan); } } }
/// <summary> /// Assemble function. /// </summary> /// <param name="args">Arguments to Assemble.</param> private static void Assemble(string[] args) { AssembleArguments options = new AssembleArguments(); CommandLineArguments parser = new CommandLineArguments(); AddAssembleParameters(parser); if (args.Length > 0) { try { parser.Parse(args, options); } catch (ArgumentParserException ex) { Output.WriteLine(OutputLevel.Error, ex.Message); Output.WriteLine(OutputLevel.Required, Resources.AssembleHelp); Environment.Exit(-1); } if (options.Help) { Output.WriteLine(OutputLevel.Required, Resources.AssembleHelp); } else { ValidateKmerLength(options.KmerLength, options.AllowKmerLengthEstimation); if (options.Verbose) Output.TraceLevel = OutputLevel.Information | OutputLevel.Verbose; else if (!options.Quiet) Output.TraceLevel = OutputLevel.Information; options.AssembleSequences(); } } else { Output.WriteLine(OutputLevel.Required, Resources.AssembleHelp); } }