58 while (blockBuffer_.size() == 0) {
60 MafBlock* block = iterator_->nextBlock();
64 size_t size = windowSize_;
68 case (RAGGED_RIGHT) : { pos = bSize % windowSize_; windowStep_ = size;
break; }
69 case (CENTER) : { pos = (bSize % windowSize_) / 2; windowStep_ = size;
break; }
71 size_t x = bSize / windowSize_;
72 if (x > 0) size = bSize / x;
79 for(
size_t i = pos; i + size <= bSize; i += windowStep_) {
83 if (align_ == ADJUST) {
84 if (bSize - (i + size) > 0 && bSize - (i + size) < size) {
95 blockBuffer_.push_back(newBlock);
98 if (align_ == ADJUST && keepSmallBlocks_ && bSize < windowSize_) {
99 blockBuffer_.push_back(block);
105 MafBlock* nxtBlock = blockBuffer_.front();
106 blockBuffer_.pop_front();
A synteny block data structure, the basic unit of a MAF alignement file.
unsigned int getPass() const
void setScore(double score)
void setPass(unsigned int pass)
size_t getNumberOfSequences() const
size_t getNumberOfSites() const
const MafSequence & getSequence(const std::string &name) const
void addSequence(const MafSequence &sequence)
MafSequence * subSequence(size_t startAt, size_t length) const
Extract a sub-sequence.
static const short RAGGED_RIGHT
MafBlock * analyseCurrentBlock_()
static const short RAGGED_LEFT
static const short CENTER
static const short ADJUST