43 #include <Bpp/Seq/Container/VectorSiteContainer.h> 44 #include <Bpp/Seq/SiteTools.h> 56 MafBlock* block = iterator_->nextBlock();
60 VectorSiteContainer vsc(&AlphabetTools::DNA_ALPHABET);
61 for (
size_t i = 0; i < species_.size(); ++i) {
66 ApplicationTools::message->endLine();
67 ApplicationTools::displayTask(
"Cleaning block for gap sites",
true);
70 vector <size_t> start;
71 vector <unsigned int> count;
73 for (
size_t i = 0; i < n; ++i) {
74 const Site* site = &vsc.getSite(i);
75 if (SiteTools::isGapOnly(*site)) {
77 count[count.size() - 1]++;
88 size_t totalRemoved = 0;
89 for(
size_t i = start.size(); i > 0; --i) {
91 ApplicationTools::displayGauge(start.size() - i, start.size() - 1,
'=');
92 block->
getAlignment().deleteSites(start[i - 1], count[i - 1]);
93 totalRemoved += count[i - 1];
96 ApplicationTools::displayTaskDone();
99 if (totalRemoved > 0) {
102 if (!VectorTools::contains(species_, seq->
getSpecies())) {
108 (*logstream_ <<
"FULL GAP CLEANER: " << totalRemoved <<
" positions have been removed.").endLine();
const std::string & getSpecies() const
size_t getNumberOfSites() const
AlignedSequenceContainer & getAlignment()
A synteny block data structure, the basic unit of a MAF alignement file.
void removeCoordinatesFromSequence(size_t i)
MafBlock * analyseCurrentBlock_()
size_t getNumberOfSequences() const
const MafSequence & getSequence(const std::string &name) const
A sequence class which is used to store data from MAF files.