コード例 #1
0
ファイル: BclDataSource.cpp プロジェクト: Illumina/Isaac3
/////////////// 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 ")
    }
}
コード例 #2
0
ファイル: AlignWorkflow.cpp プロジェクト: dkj/isaac_aligner
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);
}