public GeminiApplicationOptions() { StitcherOptions = new StitcherOptions(); GeminiSampleOptions = new GeminiSampleOptions(); IndelFilteringOptions = new IndelFilteringOptions(); RealignmentAssessmentOptions = new RealignmentAssessmentOptions(); RealignmentOptions = new RealignmentOptions(); GeminiOptions = new GeminiOptions(); }
public DataflowReadEvaluator(GeminiOptions geminiOptions, IGeminiDataSourceFactory dataSourceFactory, GeminiSampleOptions geminiSampleOptions, IGeminiDataOutputFactory dataOutputFactory, IBlockFactorySource blockFactorySource) { _geminiOptions = geminiOptions; _dataSourceFactory = dataSourceFactory; _geminiSampleOptions = geminiSampleOptions; _dataOutputFactory = dataOutputFactory; _blockFactorySource = blockFactorySource; }
public static GeminiSampleOptions DeepCopy(this GeminiSampleOptions options) { return(new GeminiSampleOptions() { InputBam = options.InputBam, IntermediateDir = options.IntermediateDir, OutputBam = options.OutputBam, OutputFolder = options.OutputFolder, RefId = options.RefId }); }
private static string ProcessChromosome(Dictionary <string, int> chromRefIds, string outMultiPath, List <string> taskDirectories, string chrom, GeminiMultiOptions options) { // TODO either officially deprecate non-multiprocess-processing and remove this, or consolidate this with the Gemini calling code from Gemini/Program.cs var outdir = Path.Combine(outMultiPath, chrom); var refId = chromRefIds[chrom]; var intermediate = string.IsNullOrEmpty(options.GeminiSampleOptions.IntermediateDir) ? null : Path.Combine(options.GeminiSampleOptions.IntermediateDir, chrom); var geminiSampleOptions = new GeminiSampleOptions { InputBam = options.InputBam, OutputFolder = outdir, OutputBam = Path.Combine(outdir, "out.bam"), IntermediateDir = intermediate, RefId = refId }; // Gemini defaults different than stitcher defaults options.StitcherOptions.NifyUnstitchablePairs = false; // Set stitcher pair-filter-level duplicate filtering if skip and remove dups, to save time options.StitcherOptions.FilterDuplicates = options.GeminiOptions.SkipAndRemoveDups; var dataSourceFactory = new GeminiDataSourceFactory(options.StitcherOptions, options.GeminiOptions.GenomePath, options.GeminiOptions.SkipAndRemoveDups, refId, Path.Combine(outdir, "Regions.txt"), debug: options.GeminiOptions.Debug); var dataOutputFactory = new GeminiDataOutputFactory(options.StitcherOptions.NumThreads); var samtoolsWrapper = new SamtoolsWrapper(options.GeminiOptions.SamtoolsPath, options.GeminiOptions.IsWeirdSamtools); var geminiWorkflow = new GeminiWorkflow(dataSourceFactory, dataOutputFactory, options.GeminiOptions, geminiSampleOptions, options.RealignmentOptions, options.StitcherOptions, options.OutputDirectory, options.RealignmentAssessmentOptions, options.IndelFilteringOptions, samtoolsWrapper); Directory.CreateDirectory(outdir); geminiWorkflow.Execute(); //var logger = new Illumina.CG.Common.Logging.Logger(taskLogDir, $"GeminiTaskLog_{chrom}.txt"); //var task = _taskCreator.GetCliTask(cmdLineList.ToArray(), chrom, exePath, outdir, chromRefIds[chrom], logger, // string.IsNullOrEmpty(_options.GeminiSampleOptions.IntermediateDir) // ? null // : Path.Combine(_options.GeminiSampleOptions.IntermediateDir, chrom)); //tasks.Add(task); Console.WriteLine($"Completed Gemini Workflow for {chrom}"); var path = (Path.Combine(outdir, "merged.bam.sorted.bam")); taskDirectories.Add(outdir); //paths[refId] = path; return(path); }
public BlockFactorySource(StitcherOptions stitcherOptions, GeminiOptions geminiOptions, Dictionary <int, string> refIdMapping, BamRealignmentFactory bamRealignmentFactory, IGeminiDataSourceFactory dataSourceFactory, GeminiSampleOptions geminiSampleOptions, RealignmentOptions realignmentOptions, IGeminiFactory geminiFactory) { _stitcherOptions = stitcherOptions; _geminiOptions = geminiOptions; _refIdMapping = refIdMapping; _bamRealignmentFactory = bamRealignmentFactory; _dataSourceFactory = dataSourceFactory; _geminiSampleOptions = geminiSampleOptions; _realignmentOptions = realignmentOptions; _geminiFactory = geminiFactory; _maxDegreeOfParallelism = Math.Min(_stitcherOptions.NumThreads, Environment.ProcessorCount); }
public GeminiWorkflow(IGeminiDataSourceFactory dataSourceFactory, IGeminiDataOutputFactory dataOutputFactory, GeminiOptions geminiOptions, GeminiSampleOptions geminiSampleOptions, RealignmentOptions realignmentOptions, StitcherOptions stitcherOptions, string outputDirectory, RealignmentAssessmentOptions realignmentAssessmentOptions, IndelFilteringOptions indelFilteringOptions, ISamtoolsWrapper samtoolsWrapper) { _dataSourceFactory = dataSourceFactory; _dataOutputFactory = dataOutputFactory; _geminiOptions = geminiOptions; _geminiSampleOptions = geminiSampleOptions; _realignmentOptions = realignmentOptions; _samtoolsWrapper = samtoolsWrapper; _stitcherOptions = stitcherOptions ?? new StitcherOptions(); _geminiFactory = new GeminiFactory(geminiOptions, indelFilteringOptions); var bamRealignmentFactory = new BamRealignmentFactory(geminiOptions, realignmentAssessmentOptions, stitcherOptions, realignmentOptions, outputDirectory); _bamRealignmentFactory = bamRealignmentFactory; }
private static void Execute(List <BamAlignment> alignments, List <ReadPair> reads, GeminiOptions geminiOptions, StitcherOptions stitcherOptions, List <ReadPair> lonerpairs = null) { var mockOutcomesWriter = new Mock <IOutcomesWriter>(); var mockDataOutputFactory = DataflowMocks.MockDataOutputFactory(alignments); var mockTextWriter = new Mock <ITextWriter>(); mockDataOutputFactory.Setup(x => x.GetTextWriter(It.IsAny <string>())) .Returns(mockTextWriter.Object); var mockReader = DataflowMocks.MockReader(); var mockReadPairSource = DataflowMocks.MockDataSource(reads, lonerpairs); var mockDataSourceFactory = DataflowMocks.MockDataSourceFactory(mockReader, mockReadPairSource); var mockSamtoolsWrapper = new Mock <ISamtoolsWrapper>(); var geminiSampleOptions = new GeminiSampleOptions() { RefId = 1, OutputFolder = "OutFolder" }; var geminiWorkflow = new GeminiWorkflow(mockDataSourceFactory.Object, mockDataOutputFactory.Object, geminiOptions, geminiSampleOptions, new RealignmentOptions(), stitcherOptions, "outdir", new RealignmentAssessmentOptions(), new IndelFilteringOptions(), mockSamtoolsWrapper.Object); geminiWorkflow.Execute(); }
public BinEvidenceFactory(GeminiOptions geminiOptions, GeminiSampleOptions geminiSampleOptions) { _geminiOptions = geminiOptions; _geminiSampleOptions = geminiSampleOptions; }