Esempio n. 1
0
inline unsigned getLaneNumber(const flowcell::TileMetadataList& tiles)
{
    ISAAC_ASSERT_MSG(
        tiles.end()
        == std::find_if(
            tiles.begin(),
            tiles.end(),
            boost::bind(&flowcell::TileMetadata::getLane, _1)
            != tiles.front().getLane()),
        "Expected all tiles to belong to the same lane");
    return tiles.front().getLane();
}
Esempio n. 2
0
void ParallelSeedLoader<ReaderT, KmerT>::loadSeeds(
    const flowcell::TileMetadataList &tiles,
    const matchFinder::TileClusterInfo &tileClusterBarcode,
    std::vector<Seed<KmerT> > &seeds,
    common::ScopedMallocBlock  &mallocBlock)
{

    // Start and execute the threads
    ISAAC_THREAD_CERR << "Loading data on " << inputLoadersMax_ << " threads" << std::endl;

    std::vector<flowcell::TileMetadata>::const_iterator nextTile = tiles.begin();
    BaseT::reset(tiles, seeds, tileClusterBarcode);

    threads_.execute(boost::bind(&ParallelSeedLoader::load, this,
                                 boost::ref(tileClusterBarcode),
                                 boost::ref(nextTile),
                                 tiles.end(), _1),
                                 inputLoadersMax_);

    BaseT::sortSeeds(seeds, mallocBlock, threads_, coresMax_);
}