Beispiel #1
0
 public GeminiApplicationOptions()
 {
     StitcherOptions              = new StitcherOptions();
     GeminiSampleOptions          = new GeminiSampleOptions();
     IndelFilteringOptions        = new IndelFilteringOptions();
     RealignmentAssessmentOptions = new RealignmentAssessmentOptions();
     RealignmentOptions           = new RealignmentOptions();
     GeminiOptions = new GeminiOptions();
 }
Beispiel #2
0
 public DataflowReadEvaluator(GeminiOptions geminiOptions,
                              IGeminiDataSourceFactory dataSourceFactory, GeminiSampleOptions geminiSampleOptions, IGeminiDataOutputFactory dataOutputFactory, IBlockFactorySource blockFactorySource)
 {
     _geminiOptions       = geminiOptions;
     _dataSourceFactory   = dataSourceFactory;
     _geminiSampleOptions = geminiSampleOptions;
     _dataOutputFactory   = dataOutputFactory;
     _blockFactorySource  = blockFactorySource;
 }
Beispiel #3
0
 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);
        }
Beispiel #5
0
 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);
 }
Beispiel #6
0
        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;
        }
Beispiel #7
0
        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;
 }