public ClassificationBlockProvider(GeminiOptions geminiOptions, string chrom, ConcurrentDictionary <string, int> progressTracker,
                                    ConcurrentDictionary <PairClassification, int> categoryLookup, PairResultActionBlockFactoryProvider actionBlockFactoryProvider,
                                    IAggregateRegionProcessor aggregateRegionProcessor, bool lightDebug, PairResultBatchBlockFactory batchBlockFactory, IBinEvidenceFactory binEvidenceFactory, List <PairClassification> categoriesForRealignment, int maxDegreeOfParallelism)
 {
     _geminiOptions              = geminiOptions;
     _chrom                      = chrom;
     _progressTracker            = progressTracker;
     _categoryLookup             = categoryLookup;
     _maxDegreeOfParallelism     = maxDegreeOfParallelism;
     _actionBlockFactoryProvider = actionBlockFactoryProvider;
     _aggregateRegionProcessor   = aggregateRegionProcessor;
     _lightDebug                 = lightDebug;
     _binEvidenceFactory         = binEvidenceFactory;
     _categoriesForRealignment   = categoriesForRealignment;
     _batchBlockFactory          = batchBlockFactory;
 }
示例#2
0
        public IClassificationBlockProvider GetBlockProvider(Dictionary <int, string> refIdMapping, string chrom,
                                                             IWriterSource writerSource, ConcurrentDictionary <string, int> progressTracker,
                                                             ConcurrentDictionary <PairClassification, int> categoryLookup, ConcurrentDictionary <string, IndelEvidence> masterIndelLookup,
                                                             ConcurrentDictionary <HashableIndel, int[]> masterOutcomesLookup,
                                                             ConcurrentDictionary <HashableIndel, int> masterFinalIndels, ChrReference chrReference)
        {
            var actionBlockFactoryProvider = new PairResultActionBlockFactoryProvider(writerSource, _geminiOptions.Debug,
                                                                                      _geminiOptions.LightDebug, chrom, _geminiSampleOptions.RefId.Value, _maxDegreeOfParallelism,
                                                                                      _stitcherOptions.FilterForProperPairs, _geminiOptions.MessySiteWidth, progressTracker, categoryLookup);
            var aggregateProcessor = new AggregateRegionProcessor(chrReference, refIdMapping,
                                                                  _bamRealignmentFactory, _geminiOptions, _geminiFactory, chrom, _dataSourceFactory, _realignmentOptions, masterIndelLookup, masterOutcomesLookup, masterFinalIndels, _realignmentOptions.CategoriesForRealignment, progressTracker);
            var batchBlockFactory = new PairResultBatchBlockFactory(_geminiOptions.ReadCacheSize / 5);

            return(new ClassificationBlockProvider(_geminiOptions, chrom, progressTracker, categoryLookup, actionBlockFactoryProvider, aggregateProcessor,
                                                   _geminiOptions.LightDebug, batchBlockFactory, new BinEvidenceFactory(_geminiOptions, _geminiSampleOptions), _realignmentOptions.CategoriesForRealignment, _maxDegreeOfParallelism));
        }