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(); }
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_); }