/////////////// BclBaseCallsSource Implementation BclBaseCallsSource::BclBaseCallsSource( const flowcell::Layout &flowcell, const bool ignoreMissingBcls, const bool ignoreMissingFilters, common::ThreadVector &bclLoadThreads, const unsigned inputLoadersMax, const bool extractClusterXy): flowcell_(flowcell), tileSource_(flowcell_), bclLoadThreads_(bclLoadThreads), filterFilePath_(flowcell_.getLongestAttribute<flowcell::Layout::Bcl, flowcell::FiltersFilePathAttributeTag>()), positionsFilePath_(flowcell_.getLongestAttribute<flowcell::Layout::Bcl, flowcell::PositionsFilePathAttributeTag>()), threadReaders_(bclLoadThreads_.size(), rta::BclReader( flowcell_.getLongestAttribute<flowcell::Layout::Bcl, flowcell::BclFilePathAttributeTag>().string().size(), ignoreMissingBcls, tileSource_.getMaxTileClusters())), bclMapper_(flowcell::getTotalReadLength(flowcell_.getReadMetadataList()) + flowcell_.getBarcodeLength(), bclLoadThreads_, threadReaders_, inputLoadersMax, tileSource_.getMaxTileClusters()), filtersMapper_(ignoreMissingFilters), clocsMapper_(), locsMapper_(), barcodeLoader_(bclLoadThreads, inputLoadersMax, tileSource_.getMaxTileClusters(), threadReaders_) { ISAAC_TRACE_STAT("SelectMatchesTransition::SelectMatchesTransitions before filtersMapper_.reserveBuffer ") filtersMapper_.reserveBuffers(filterFilePath_.string().size(), tileSource_.getMaxTileClusters()); ISAAC_TRACE_STAT("SelectMatchesTransition::SelectMatchesTransitions after filtersMapper_.reserveBuffer ") if (extractClusterXy) { clocsMapper_.reserveBuffers(positionsFilePath_.string().size(), tileSource_.getMaxTileClusters()); locsMapper_.reserveBuffers(positionsFilePath_.string().size(), tileSource_.getMaxTileClusters()); ISAAC_TRACE_STAT("SelectMatchesTransition::SelectMatchesTransitions after filtersMapper_.reserveBuffer ") } }
void AlignWorkflow::selectMatches( alignment::matchSelector::FragmentStorage &fragmentStorage, std::vector<alignment::TemplateLengthStatistics> &barcodeTemplateLengthStatistics) const { ISAAC_TRACE_STAT("AlignWorkflow::selectMatches fragmentStorage ") workflow::alignWorkflow::SelectMatchesTransition transition( (bufferBins_ ? 3 : 2), fragmentStorage, foundMatchesMetadata_.matchDistribution_, sortedReferenceMetadataList_, tempDirectory_, coresMax_, foundMatchesMetadata_.tileMetadataList_, barcodeMetadataList_, flowcellLayoutList_, repeatThreshold_, mateDriftRange_, allowVariableFastqLength_, cleanupIntermediary_, ignoreMissingBcls_, ignoreMissingFilters_, inputLoadersMax_, tempLoadersMax_, tempSaversMax_, foundMatchesMetadata_.matchTally_, userTemplateLengthStatistics_, mapqThreshold_, perTileTls_, pfOnly_, baseQualityCutoff_, keepUnaligned_, clipSemialigned_, clipOverlapping_, scatterRepeats_, gappedMismatchesMax_, avoidSmithWaterman_, gapMatchScore_, gapMismatchScore_, gapOpenScore_, gapExtendScore_, minGapExtendScore_, semialignedGapLimit_, dodgyAlignmentScore_, qScoreBin_, fullBclQScoreTable_, optionalFeatures_ & BamZX); transition.selectMatches(memoryControl_, matchSelectorStatsXmlPath_, barcodeTemplateLengthStatistics); }