// Arguments: chromosome, NormalVCFPath, TumorBamPath, OutputPath static int Main(string[] arguments) { CanvasCommon.Utilities.LogCommandLine(arguments); if (arguments.Length < 4) { Console.WriteLine("Usage: Chromosome NormalVCFPath TumorBAMPath OutputPath"); return 1; } string chromosome = arguments[0]; string vcfPath = arguments[1]; string bamPath = arguments[2]; string outputPath = arguments[3]; // Handle some special cases, if the "chromosome" is a special string: switch (chromosome.ToLowerInvariant()) { case "histogram": return BuildEmpiricalHistograms(vcfPath, bamPath, outputPath); case "regionhistogram": return BuildRegionHistograms(vcfPath, bamPath, outputPath); default: // Ordinary chromosome name. break; } // Standard logic: Process one chromosome, write output to the specified file path: SNVReviewer processor = new SNVReviewer(); processor.Chromosome = chromosome; return processor.Main(vcfPath, bamPath, outputPath); }