/** ** Copyright (c) Solexa 2005, 2006 ** Copyright (c) 2007-2010 Illumina, Inc. ** ** This software is covered by the "Illumina Genome Analyzer Software ** License Agreement" and the "Illumina Source Code License Agreement", ** and certain third party copyright/licenses, and any user of this ** source file is bound by the terms therein (see accompanying files ** Illumina_Genome_Analyzer_Software_License_Agreement.pdf and ** Illumina_Source_Code_License_Agreement.pdf and third party ** copyright/license notices). ** ** This file is part of the Consensus Assessment of Sequence And VAriation ** (CASAVA) software package. ** ** \file include/common/Tiling.h ** ** \brief Tiling structure and runfolder names for a data analysis run ** ** Set the tiling structure and runfolder names for a data analysis run. ** This object is used to generate suitable filenames for output files, ** according to the run-folder specification. Internally, the image ** analysis does not need to know about these conventions; tiles (positions ** on the chip) are simply numbered sequentially. ** ** \author Klaus Maisinger **/ #ifndef _TILING_H_ #define _TILING_H_ #include #include class RunFolderFileName { std::string path; int *channelidx, *channelcount, nchannel, tileoffset; public: typedef enum { POSITION_FILE, INDEX_FILE, INTENSITY_FILE, NOISE_FILE, HEADER_FILE, OFFSET_FILE, CLUSTER_FILE, QC_FILE, SIGNAL_FILE, Q_SEQUENCE_FILE, SEQUENCE_FILE, PROBABILITY_FILE, SIGNAL2_FILE, SCORE_FILE, RESCORE_FILE } filename_type; private: std::map typestring; public: RunFolderFileName(const char prefix[]); ~RunFolderFileName(); void setLanes(const int *laneIndex, const int *laneNumTiles, const int numLanes); void setLane(const int lane, const int tileIndex, const int numTiles = 1); std::string getIndexFilename(const filename_type type, const int idx = 0, const int cycle = -1, const int channel = -1) const; std::string getTileFilename(const filename_type type, const int lane, const int tile, const int cycle = -1, const int channel = -1) const; // Possibly temporary method pending file distinction by subdirectory. std::string getQualifiedTileFilename(const filename_type type, const std::string& qualifier_str, const int lane, const int tile) const; int getLane(const int idx) const; int getTile(const int idx) const; int getIndex(const int lane, const int tile) const; std::string getFilePrefix() const; }; #endif // _TILING_H_