[med-svn] [libbpp-seq-omics] 03/10: Imported Upstream version 2.2.0

Andreas Tille tille at debian.org
Wed Apr 13 14:56:40 UTC 2016


This is an automated email from the git hooks/post-receive script.

tille pushed a commit to branch master
in repository libbpp-seq-omics.

commit e1f3f065bd09a02ebf0133dc9339a4fcdf57d8d9
Author: Andreas Tille <tille at debian.org>
Date:   Wed Apr 13 16:41:20 2016 +0200

    Imported Upstream version 2.2.0
---
 BppSeqOmics.tag                                    | 4984 ++++++++++++++++++++
 CMakeLists.txt                                     |    5 +-
 ChangeLog                                          |    8 +
 Doxyfile                                           |    2 +-
 bpp-seq-omics.spec                                 |    5 +-
 debian/changelog                                   |    7 +
 debian/control                                     |    6 +-
 debian/copyright                                   |    6 +-
 genIncludes.sh                                     |   35 +
 src/Bpp/Seq/Feature/SequenceFeatureTools.cpp       |   11 +-
 src/Bpp/Seq/Feature/SequenceFeatureTools.h         |    6 +-
 src/Bpp/Seq/Io/Maf/BlockMergerMafIterator.cpp      |    4 +-
 ...stener.cpp => CoordinatesOutputMafIterator.cpp} |   55 +-
 ...afIterator.h => CoordinatesOutputMafIterator.h} |   58 +-
 src/Bpp/Seq/Io/Maf/EntropyFilterMafIterator.cpp    |    4 +-
 src/Bpp/Seq/Io/Maf/FeatureExtractorMafIterator.cpp |   24 +-
 src/Bpp/Seq/Io/Maf/FeatureFilterMafIterator.cpp    |   24 +-
 src/Bpp/Seq/Io/Maf/IterationListener.cpp           |    6 +-
 src/Bpp/Seq/Io/Maf/MafParser.cpp                   |    3 +-
 src/Bpp/Seq/Io/Maf/MafSequence.h                   |   17 +-
 src/Bpp/Seq/Io/Maf/MafStatistics.cpp               |  309 +-
 src/Bpp/Seq/Io/Maf/MafStatistics.h                 |  269 +-
 .../Seq/Io/Maf/OrphanSequenceFilterMafIterator.h   |    9 +-
 src/Bpp/Seq/Io/Maf/OutputAlignmentMafIterator.cpp  |    7 +-
 src/Bpp/Seq/Io/Maf/OutputAlignmentMafIterator.h    |    4 +-
 .../Seq/Io/Maf/SequenceStatisticsMafIterator.cpp   |    4 +-
 src/Bpp/Seq/Io/Maf/SequenceStatisticsMafIterator.h |    6 +-
 src/Bpp/Seq/Io/Maf/VcfOutputMafIterator.cpp        |   51 +-
 src/Bpp/Seq/Io/Maf/VcfOutputMafIterator.h          |   25 +-
 src/Bpp/Seq/Io/Maf/WindowSplitMafIterator.h        |    2 +-
 src/CMakeLists.txt                                 |    2 +
 31 files changed, 5794 insertions(+), 164 deletions(-)

diff --git a/BppSeqOmics.tag b/BppSeqOmics.tag
new file mode 100644
index 0000000..131b933
--- /dev/null
+++ b/BppSeqOmics.tag
@@ -0,0 +1,4984 @@
+<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
+<tagfile>
+  <compound kind="file">
+    <name>FeatureReader.h</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Feature/</path>
+    <filename>FeatureReader_8h</filename>
+    <includes id="SequenceFeature_8h" name="SequenceFeature.h" local="yes" imported="no">SequenceFeature.h</includes>
+    <class kind="class">bpp::FeatureReader</class>
+  </compound>
+  <compound kind="file">
+    <name>GffFeatureReader.cpp</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Feature/Gff/</path>
+    <filename>GffFeatureReader_8cpp</filename>
+    <includes id="GffFeatureReader_8h" name="GffFeatureReader.h" local="yes" imported="no">GffFeatureReader.h</includes>
+  </compound>
+  <compound kind="file">
+    <name>GffFeatureReader.h</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Feature/Gff/</path>
+    <filename>GffFeatureReader_8h</filename>
+    <includes id="SequenceFeature_8h" name="SequenceFeature.h" local="yes" imported="no">../SequenceFeature.h</includes>
+    <includes id="FeatureReader_8h" name="FeatureReader.h" local="yes" imported="no">../FeatureReader.h</includes>
+    <class kind="class">bpp::GffFeatureReader</class>
+  </compound>
+  <compound kind="file">
+    <name>GtfFeatureReader.cpp</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Feature/Gtf/</path>
+    <filename>GtfFeatureReader_8cpp</filename>
+    <includes id="GtfFeatureReader_8h" name="GtfFeatureReader.h" local="yes" imported="no">GtfFeatureReader.h</includes>
+  </compound>
+  <compound kind="file">
+    <name>GtfFeatureReader.h</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Feature/Gtf/</path>
+    <filename>GtfFeatureReader_8h</filename>
+    <includes id="SequenceFeature_8h" name="SequenceFeature.h" local="yes" imported="no">../SequenceFeature.h</includes>
+    <includes id="FeatureReader_8h" name="FeatureReader.h" local="yes" imported="no">../FeatureReader.h</includes>
+    <class kind="class">bpp::GtfFeatureReader</class>
+  </compound>
+  <compound kind="file">
+    <name>SequenceFeature.cpp</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Feature/</path>
+    <filename>SequenceFeature_8cpp</filename>
+    <includes id="SequenceFeature_8h" name="SequenceFeature.h" local="yes" imported="no">SequenceFeature.h</includes>
+  </compound>
+  <compound kind="file">
+    <name>SequenceFeature.h</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Feature/</path>
+    <filename>SequenceFeature_8h</filename>
+    <class kind="class">bpp::SeqRange</class>
+    <class kind="class">bpp::SequenceFeature</class>
+    <class kind="class">bpp::BasicSequenceFeature</class>
+    <class kind="class">bpp::SequenceFeatureSet</class>
+  </compound>
+  <compound kind="file">
+    <name>SequenceFeatureTools.cpp</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Feature/</path>
+    <filename>SequenceFeatureTools_8cpp</filename>
+    <includes id="SequenceFeatureTools_8h" name="SequenceFeatureTools.h" local="yes" imported="no">SequenceFeatureTools.h</includes>
+  </compound>
+  <compound kind="file">
+    <name>SequenceFeatureTools.h</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Feature/</path>
+    <filename>SequenceFeatureTools_8h</filename>
+    <includes id="SequenceFeature_8h" name="SequenceFeature.h" local="yes" imported="no">SequenceFeature.h</includes>
+    <class kind="class">bpp::SequenceFeatureTools</class>
+  </compound>
+  <compound kind="file">
+    <name>Fastq.cpp</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/</path>
+    <filename>Fastq_8cpp</filename>
+    <includes id="Fastq_8h" name="Fastq.h" local="yes" imported="no">Fastq.h</includes>
+  </compound>
+  <compound kind="file">
+    <name>Fastq.h</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/</path>
+    <filename>Fastq_8h</filename>
+    <class kind="class">bpp::Fastq</class>
+  </compound>
+  <compound kind="file">
+    <name>AlignmentFilterMafIterator.cpp</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>AlignmentFilterMafIterator_8cpp</filename>
+    <includes id="AlignmentFilterMafIterator_8h" name="AlignmentFilterMafIterator.h" local="yes" imported="no">AlignmentFilterMafIterator.h</includes>
+  </compound>
+  <compound kind="file">
+    <name>AlignmentFilterMafIterator.h</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>AlignmentFilterMafIterator_8h</filename>
+    <includes id="MafIterator_8h" name="MafIterator.h" local="yes" imported="no">MafIterator.h</includes>
+    <class kind="class">bpp::AlignmentFilterMafIterator</class>
+    <class kind="class">bpp::AlignmentFilter2MafIterator</class>
+  </compound>
+  <compound kind="file">
+    <name>BlockLengthMafIterator.h</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>BlockLengthMafIterator_8h</filename>
+    <includes id="MafIterator_8h" name="MafIterator.h" local="yes" imported="no">MafIterator.h</includes>
+    <class kind="class">bpp::BlockLengthMafIterator</class>
+  </compound>
+  <compound kind="file">
+    <name>BlockMergerMafIterator.cpp</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>BlockMergerMafIterator_8cpp</filename>
+    <includes id="BlockMergerMafIterator_8h" name="BlockMergerMafIterator.h" local="yes" imported="no">BlockMergerMafIterator.h</includes>
+  </compound>
+  <compound kind="file">
+    <name>BlockMergerMafIterator.h</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>BlockMergerMafIterator_8h</filename>
+    <includes id="MafIterator_8h" name="MafIterator.h" local="yes" imported="no">MafIterator.h</includes>
+    <class kind="class">bpp::BlockMergerMafIterator</class>
+  </compound>
+  <compound kind="file">
+    <name>BlockSizeMafIterator.h</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>BlockSizeMafIterator_8h</filename>
+    <includes id="MafIterator_8h" name="MafIterator.h" local="yes" imported="no">MafIterator.h</includes>
+    <class kind="class">bpp::BlockSizeMafIterator</class>
+  </compound>
+  <compound kind="file">
+    <name>ChromosomeMafIterator.cpp</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>ChromosomeMafIterator_8cpp</filename>
+    <includes id="ChromosomeMafIterator_8h" name="ChromosomeMafIterator.h" local="yes" imported="no">ChromosomeMafIterator.h</includes>
+  </compound>
+  <compound kind="file">
+    <name>ChromosomeMafIterator.h</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>ChromosomeMafIterator_8h</filename>
+    <includes id="MafIterator_8h" name="MafIterator.h" local="yes" imported="no">MafIterator.h</includes>
+    <class kind="class">bpp::ChromosomeMafIterator</class>
+  </compound>
+  <compound kind="file">
+    <name>ConcatenateMafIterator.cpp</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>ConcatenateMafIterator_8cpp</filename>
+    <includes id="ConcatenateMafIterator_8h" name="ConcatenateMafIterator.h" local="yes" imported="no">ConcatenateMafIterator.h</includes>
+  </compound>
+  <compound kind="file">
+    <name>ConcatenateMafIterator.h</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>ConcatenateMafIterator_8h</filename>
+    <includes id="MafIterator_8h" name="MafIterator.h" local="yes" imported="no">MafIterator.h</includes>
+    <class kind="class">bpp::ConcatenateMafIterator</class>
+  </compound>
+  <compound kind="file">
+    <name>CoordinatesOutputMafIterator.cpp</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>CoordinatesOutputMafIterator_8cpp</filename>
+    <includes id="CoordinatesOutputMafIterator_8h" name="CoordinatesOutputMafIterator.h" local="yes" imported="no">CoordinatesOutputMafIterator.h</includes>
+  </compound>
+  <compound kind="file">
+    <name>CoordinatesOutputMafIterator.h</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>CoordinatesOutputMafIterator_8h</filename>
+    <includes id="MafIterator_8h" name="MafIterator.h" local="yes" imported="no">MafIterator.h</includes>
+    <class kind="class">bpp::CoordinatesOutputMafIterator</class>
+  </compound>
+  <compound kind="file">
+    <name>DuplicateFilterMafIterator.cpp</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>DuplicateFilterMafIterator_8cpp</filename>
+    <includes id="DuplicateFilterMafIterator_8h" name="DuplicateFilterMafIterator.h" local="yes" imported="no">DuplicateFilterMafIterator.h</includes>
+  </compound>
+  <compound kind="file">
+    <name>DuplicateFilterMafIterator.h</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>DuplicateFilterMafIterator_8h</filename>
+    <includes id="MafIterator_8h" name="MafIterator.h" local="yes" imported="no">MafIterator.h</includes>
+    <class kind="class">bpp::DuplicateFilterMafIterator</class>
+  </compound>
+  <compound kind="file">
+    <name>EntropyFilterMafIterator.cpp</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>EntropyFilterMafIterator_8cpp</filename>
+    <includes id="EntropyFilterMafIterator_8h" name="EntropyFilterMafIterator.h" local="yes" imported="no">EntropyFilterMafIterator.h</includes>
+  </compound>
+  <compound kind="file">
+    <name>EntropyFilterMafIterator.h</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>EntropyFilterMafIterator_8h</filename>
+    <includes id="MafIterator_8h" name="MafIterator.h" local="yes" imported="no">MafIterator.h</includes>
+    <class kind="class">bpp::EntropyFilterMafIterator</class>
+  </compound>
+  <compound kind="file">
+    <name>FeatureExtractorMafIterator.cpp</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>FeatureExtractorMafIterator_8cpp</filename>
+    <includes id="FeatureExtractorMafIterator_8h" name="FeatureExtractorMafIterator.h" local="yes" imported="no">FeatureExtractorMafIterator.h</includes>
+  </compound>
+  <compound kind="file">
+    <name>FeatureExtractorMafIterator.h</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>FeatureExtractorMafIterator_8h</filename>
+    <includes id="MafIterator_8h" name="MafIterator.h" local="yes" imported="no">MafIterator.h</includes>
+    <class kind="class">bpp::FeatureExtractor</class>
+  </compound>
+  <compound kind="file">
+    <name>FeatureFilterMafIterator.cpp</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>FeatureFilterMafIterator_8cpp</filename>
+    <includes id="FeatureFilterMafIterator_8h" name="FeatureFilterMafIterator.h" local="yes" imported="no">FeatureFilterMafIterator.h</includes>
+  </compound>
+  <compound kind="file">
+    <name>FeatureFilterMafIterator.h</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>FeatureFilterMafIterator_8h</filename>
+    <includes id="MafIterator_8h" name="MafIterator.h" local="yes" imported="no">MafIterator.h</includes>
+    <class kind="class">bpp::FeatureFilterMafIterator</class>
+  </compound>
+  <compound kind="file">
+    <name>FullGapFilterMafIterator.cpp</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>FullGapFilterMafIterator_8cpp</filename>
+    <includes id="FullGapFilterMafIterator_8h" name="FullGapFilterMafIterator.h" local="yes" imported="no">FullGapFilterMafIterator.h</includes>
+  </compound>
+  <compound kind="file">
+    <name>FullGapFilterMafIterator.h</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>FullGapFilterMafIterator_8h</filename>
+    <includes id="MafIterator_8h" name="MafIterator.h" local="yes" imported="no">MafIterator.h</includes>
+    <class kind="class">bpp::FullGapFilterMafIterator</class>
+  </compound>
+  <compound kind="file">
+    <name>IterationListener.cpp</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>IterationListener_8cpp</filename>
+    <includes id="IterationListener_8h" name="IterationListener.h" local="yes" imported="no">IterationListener.h</includes>
+  </compound>
+  <compound kind="file">
+    <name>IterationListener.h</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>IterationListener_8h</filename>
+    <includes id="MafIterator_8h" name="MafIterator.h" local="yes" imported="no">MafIterator.h</includes>
+    <includes id="SequenceStatisticsMafIterator_8h" name="SequenceStatisticsMafIterator.h" local="yes" imported="no">SequenceStatisticsMafIterator.h</includes>
+    <class kind="class">bpp::IterationListener</class>
+    <class kind="class">bpp::AbstractStatisticsOutputIterationListener</class>
+    <class kind="class">bpp::CsvStatisticsOutputIterationListener</class>
+  </compound>
+  <compound kind="file">
+    <name>MafBlock.h</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>MafBlock_8h</filename>
+    <includes id="MafSequence_8h" name="MafSequence.h" local="yes" imported="no">MafSequence.h</includes>
+    <class kind="class">bpp::MafBlock</class>
+  </compound>
+  <compound kind="file">
+    <name>MafIterator.cpp</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>MafIterator_8cpp</filename>
+    <includes id="MafIterator_8h" name="MafIterator.h" local="yes" imported="no">MafIterator.h</includes>
+    <includes id="IterationListener_8h" name="IterationListener.h" local="yes" imported="no">IterationListener.h</includes>
+  </compound>
+  <compound kind="file">
+    <name>MafIterator.h</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>MafIterator_8h</filename>
+    <includes id="MafBlock_8h" name="MafBlock.h" local="yes" imported="no">MafBlock.h</includes>
+    <class kind="class">bpp::MafIterator</class>
+    <class kind="class">bpp::AbstractMafIterator</class>
+    <class kind="class">bpp::MafTrashIterator</class>
+    <class kind="class">bpp::AbstractFilterMafIterator</class>
+    <class kind="class">bpp::TrashIteratorAdapter</class>
+    <class kind="class">bpp::MafIteratorSynchronizer</class>
+  </compound>
+  <compound kind="file">
+    <name>MafParser.cpp</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>MafParser_8cpp</filename>
+    <includes id="MafParser_8h" name="MafParser.h" local="yes" imported="no">MafParser.h</includes>
+  </compound>
+  <compound kind="file">
+    <name>MafParser.h</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>MafParser_8h</filename>
+    <includes id="MafIterator_8h" name="MafIterator.h" local="yes" imported="no">MafIterator.h</includes>
+    <class kind="class">bpp::MafParser</class>
+  </compound>
+  <compound kind="file">
+    <name>MafSequence.cpp</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>MafSequence_8cpp</filename>
+    <includes id="MafSequence_8h" name="MafSequence.h" local="yes" imported="no">MafSequence.h</includes>
+  </compound>
+  <compound kind="file">
+    <name>MafSequence.h</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>MafSequence_8h</filename>
+    <includes id="SequenceFeature_8h" name="SequenceFeature.h" local="yes" imported="no">../../Feature/SequenceFeature.h</includes>
+    <class kind="class">bpp::MafSequence</class>
+  </compound>
+  <compound kind="file">
+    <name>MafStatistics.cpp</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>MafStatistics_8cpp</filename>
+    <includes id="MafStatistics_8h" name="MafStatistics.h" local="yes" imported="no">MafStatistics.h</includes>
+  </compound>
+  <compound kind="file">
+    <name>MafStatistics.h</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>MafStatistics_8h</filename>
+    <includes id="MafBlock_8h" name="MafBlock.h" local="yes" imported="no">MafBlock.h</includes>
+    <class kind="class">bpp::MafStatisticsResult</class>
+    <class kind="class">bpp::SimpleMafStatisticsResult</class>
+    <class kind="class">bpp::MafStatistics</class>
+    <class kind="class">bpp::AbstractMafStatistics</class>
+    <class kind="class">bpp::AbstractMafStatisticsSimple</class>
+    <class kind="class">bpp::PairwiseDivergenceMafStatistics</class>
+    <class kind="class">bpp::BlockSizeMafStatistics</class>
+    <class kind="class">bpp::BlockLengthMafStatistics</class>
+    <class kind="class">bpp::SequenceLengthMafStatistics</class>
+    <class kind="class">bpp::AlignmentScoreMafStatistics</class>
+    <class kind="class">bpp::CharacterCountsMafStatistics</class>
+    <class kind="class">bpp::AbstractSpeciesSelectionMafStatistics</class>
+    <class kind="class">bpp::AbstractSpeciesMultipleSelectionMafStatistics</class>
+    <class kind="class">bpp::SiteFrequencySpectrumMafStatistics</class>
+    <class kind="class">bpp::SiteFrequencySpectrumMafStatistics::Categorizer</class>
+    <class kind="class">bpp::FourSpeciesPatternCountsMafStatistics</class>
+    <class kind="class">bpp::SiteMafStatistics</class>
+    <class kind="class">bpp::PolymorphismMafStatistics</class>
+    <class kind="class">bpp::SequenceDiversityMafStatistics</class>
+  </compound>
+  <compound kind="file">
+    <name>MaskFilterMafIterator.cpp</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>MaskFilterMafIterator_8cpp</filename>
+    <includes id="MaskFilterMafIterator_8h" name="MaskFilterMafIterator.h" local="yes" imported="no">MaskFilterMafIterator.h</includes>
+  </compound>
+  <compound kind="file">
+    <name>MaskFilterMafIterator.h</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>MaskFilterMafIterator_8h</filename>
+    <includes id="MafIterator_8h" name="MafIterator.h" local="yes" imported="no">MafIterator.h</includes>
+    <class kind="class">bpp::MaskFilterMafIterator</class>
+  </compound>
+  <compound kind="file">
+    <name>OrphanSequenceFilterMafIterator.cpp</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>OrphanSequenceFilterMafIterator_8cpp</filename>
+    <includes id="OrphanSequenceFilterMafIterator_8h" name="OrphanSequenceFilterMafIterator.h" local="yes" imported="no">OrphanSequenceFilterMafIterator.h</includes>
+  </compound>
+  <compound kind="file">
+    <name>OrphanSequenceFilterMafIterator.h</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>OrphanSequenceFilterMafIterator_8h</filename>
+    <includes id="MafIterator_8h" name="MafIterator.h" local="yes" imported="no">MafIterator.h</includes>
+    <class kind="class">bpp::OrphanSequenceFilterMafIterator</class>
+  </compound>
+  <compound kind="file">
+    <name>OutputAlignmentMafIterator.cpp</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>OutputAlignmentMafIterator_8cpp</filename>
+    <includes id="OutputAlignmentMafIterator_8h" name="OutputAlignmentMafIterator.h" local="yes" imported="no">OutputAlignmentMafIterator.h</includes>
+  </compound>
+  <compound kind="file">
+    <name>OutputAlignmentMafIterator.h</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>OutputAlignmentMafIterator_8h</filename>
+    <includes id="MafIterator_8h" name="MafIterator.h" local="yes" imported="no">MafIterator.h</includes>
+    <class kind="class">bpp::OutputAlignmentMafIterator</class>
+  </compound>
+  <compound kind="file">
+    <name>OutputMafIterator.cpp</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>OutputMafIterator_8cpp</filename>
+    <includes id="OutputMafIterator_8h" name="OutputMafIterator.h" local="yes" imported="no">OutputMafIterator.h</includes>
+  </compound>
+  <compound kind="file">
+    <name>OutputMafIterator.h</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>OutputMafIterator_8h</filename>
+    <includes id="MafIterator_8h" name="MafIterator.h" local="yes" imported="no">MafIterator.h</includes>
+    <class kind="class">bpp::OutputMafIterator</class>
+  </compound>
+  <compound kind="file">
+    <name>QualityFilterMafIterator.cpp</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>QualityFilterMafIterator_8cpp</filename>
+    <includes id="QualityFilterMafIterator_8h" name="QualityFilterMafIterator.h" local="yes" imported="no">QualityFilterMafIterator.h</includes>
+  </compound>
+  <compound kind="file">
+    <name>QualityFilterMafIterator.h</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>QualityFilterMafIterator_8h</filename>
+    <includes id="MafIterator_8h" name="MafIterator.h" local="yes" imported="no">MafIterator.h</includes>
+    <class kind="class">bpp::QualityFilterMafIterator</class>
+  </compound>
+  <compound kind="file">
+    <name>SequenceFilterMafIterator.cpp</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>SequenceFilterMafIterator_8cpp</filename>
+    <includes id="SequenceFilterMafIterator_8h" name="SequenceFilterMafIterator.h" local="yes" imported="no">SequenceFilterMafIterator.h</includes>
+  </compound>
+  <compound kind="file">
+    <name>SequenceFilterMafIterator.h</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>SequenceFilterMafIterator_8h</filename>
+    <includes id="MafIterator_8h" name="MafIterator.h" local="yes" imported="no">MafIterator.h</includes>
+    <class kind="class">bpp::SequenceFilterMafIterator</class>
+  </compound>
+  <compound kind="file">
+    <name>SequenceStatisticsMafIterator.cpp</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>SequenceStatisticsMafIterator_8cpp</filename>
+    <includes id="SequenceStatisticsMafIterator_8h" name="SequenceStatisticsMafIterator.h" local="yes" imported="no">SequenceStatisticsMafIterator.h</includes>
+  </compound>
+  <compound kind="file">
+    <name>SequenceStatisticsMafIterator.h</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>SequenceStatisticsMafIterator_8h</filename>
+    <includes id="MafIterator_8h" name="MafIterator.h" local="yes" imported="no">MafIterator.h</includes>
+    <includes id="MafStatistics_8h" name="MafStatistics.h" local="yes" imported="no">MafStatistics.h</includes>
+    <class kind="class">bpp::SequenceStatisticsMafIterator</class>
+  </compound>
+  <compound kind="file">
+    <name>SequenceStreamToMafIterator.cpp</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>SequenceStreamToMafIterator_8cpp</filename>
+    <includes id="SequenceStreamToMafIterator_8h" name="SequenceStreamToMafIterator.h" local="yes" imported="no">SequenceStreamToMafIterator.h</includes>
+  </compound>
+  <compound kind="file">
+    <name>SequenceStreamToMafIterator.h</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>SequenceStreamToMafIterator_8h</filename>
+    <includes id="MafIterator_8h" name="MafIterator.h" local="yes" imported="no">MafIterator.h</includes>
+    <class kind="class">bpp::SequenceStreamToMafIterator</class>
+  </compound>
+  <compound kind="file">
+    <name>VcfOutputMafIterator.cpp</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>VcfOutputMafIterator_8cpp</filename>
+    <includes id="VcfOutputMafIterator_8h" name="VcfOutputMafIterator.h" local="yes" imported="no">VcfOutputMafIterator.h</includes>
+  </compound>
+  <compound kind="file">
+    <name>VcfOutputMafIterator.h</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>VcfOutputMafIterator_8h</filename>
+    <includes id="MafIterator_8h" name="MafIterator.h" local="yes" imported="no">MafIterator.h</includes>
+    <class kind="class">bpp::VcfOutputMafIterator</class>
+  </compound>
+  <compound kind="file">
+    <name>WindowSplitMafIterator.cpp</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>WindowSplitMafIterator_8cpp</filename>
+    <includes id="WindowSplitMafIterator_8h" name="WindowSplitMafIterator.h" local="yes" imported="no">WindowSplitMafIterator.h</includes>
+  </compound>
+  <compound kind="file">
+    <name>WindowSplitMafIterator.h</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>WindowSplitMafIterator_8h</filename>
+    <includes id="MafIterator_8h" name="MafIterator.h" local="yes" imported="no">MafIterator.h</includes>
+    <class kind="class">bpp::WindowSplitMafIterator</class>
+  </compound>
+  <compound kind="class">
+    <name>bpp::FeatureReader</name>
+    <filename>classbpp_1_1FeatureReader.html</filename>
+    <member kind="function">
+      <type></type>
+      <name>FeatureReader</name>
+      <anchorfile>classbpp_1_1FeatureReader.html</anchorfile>
+      <anchor>a68128d63b0ea2721edb3e962f8b7f100</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual</type>
+      <name>~FeatureReader</name>
+      <anchorfile>classbpp_1_1FeatureReader.html</anchorfile>
+      <anchor>ac73295336f384242fb4617c54924f143</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual bool</type>
+      <name>hasMoreFeature</name>
+      <anchorfile>classbpp_1_1FeatureReader.html</anchorfile>
+      <anchor>aa29824199d9bdaa7e4334292f331dc24</anchor>
+      <arglist>() const =0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual const BasicSequenceFeature</type>
+      <name>nextFeature</name>
+      <anchorfile>classbpp_1_1FeatureReader.html</anchorfile>
+      <anchor>a731a3c4d39218c404d8efc5b41bfdf74</anchor>
+      <arglist>()=0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual void</type>
+      <name>getAllFeatures</name>
+      <anchorfile>classbpp_1_1FeatureReader.html</anchorfile>
+      <anchor>a09b6c45821906b40564acefcf181090f</anchor>
+      <arglist>(SequenceFeatureSet &features)=0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual void</type>
+      <name>getFeaturesOfType</name>
+      <anchorfile>classbpp_1_1FeatureReader.html</anchorfile>
+      <anchor>a7964fe688089684b5e95dc2afabfee8d</anchor>
+      <arglist>(const std::string &type, SequenceFeatureSet &features)=0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual void</type>
+      <name>getFeaturesOfSequence</name>
+      <anchorfile>classbpp_1_1FeatureReader.html</anchorfile>
+      <anchor>a06849cd8436f2b9922307e44f65267cf</anchor>
+      <arglist>(const std::string &seqId, SequenceFeatureSet &features)=0</arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::GffFeatureReader</name>
+    <filename>classbpp_1_1GffFeatureReader.html</filename>
+    <base virtualness="virtual">bpp::FeatureReader</base>
+    <member kind="function">
+      <type></type>
+      <name>GffFeatureReader</name>
+      <anchorfile>classbpp_1_1GffFeatureReader.html</anchorfile>
+      <anchor>af3c60965fe99ff574c8d9a079bccc03a</anchor>
+      <arglist>(std::istream &input)</arglist>
+    </member>
+    <member kind="function">
+      <type>bool</type>
+      <name>hasMoreFeature</name>
+      <anchorfile>classbpp_1_1GffFeatureReader.html</anchorfile>
+      <anchor>acabf04ed7517fe4a8ab7087f955e1dde</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>const BasicSequenceFeature</type>
+      <name>nextFeature</name>
+      <anchorfile>classbpp_1_1GffFeatureReader.html</anchorfile>
+      <anchor>ae8157e4b32d5260140a7a5bae140a594</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>getAllFeatures</name>
+      <anchorfile>classbpp_1_1GffFeatureReader.html</anchorfile>
+      <anchor>ac084823ee501edeafcb9733b1d2a648f</anchor>
+      <arglist>(SequenceFeatureSet &features)</arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>getFeaturesOfType</name>
+      <anchorfile>classbpp_1_1GffFeatureReader.html</anchorfile>
+      <anchor>a6e9a99de920461f218a0edbb13bd070c</anchor>
+      <arglist>(const std::string &type, SequenceFeatureSet &features)</arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>getFeaturesOfSequence</name>
+      <anchorfile>classbpp_1_1GffFeatureReader.html</anchorfile>
+      <anchor>a3a344448dc2c55b96d6942e07f38d049</anchor>
+      <arglist>(const std::string &seqId, SequenceFeatureSet &features)</arglist>
+    </member>
+    <member kind="function" static="yes">
+      <type>static std::string</type>
+      <name>toString</name>
+      <anchorfile>classbpp_1_1GffFeatureReader.html</anchorfile>
+      <anchor>a3ebd3115868d32f3fd6096817705962a</anchor>
+      <arglist>(const bpp::SequenceFeature &f)</arglist>
+    </member>
+    <member kind="function" static="yes">
+      <type>static void</type>
+      <name>toString</name>
+      <anchorfile>classbpp_1_1GffFeatureReader.html</anchorfile>
+      <anchor>afe361bf0f69ebb3c5c670d8e63258da7</anchor>
+      <arglist>(const bpp::SequenceFeature &f, std::ostream &out)</arglist>
+    </member>
+    <member kind="function" static="yes">
+      <type>static void</type>
+      <name>toString</name>
+      <anchorfile>classbpp_1_1GffFeatureReader.html</anchorfile>
+      <anchor>ac9c84c4d8b8bbf811026063227cb752d</anchor>
+      <arglist>(const bpp::SequenceFeatureSet &fs, std::ostream &out)</arglist>
+    </member>
+    <member kind="variable" static="yes">
+      <type>static const std::string</type>
+      <name>GFF_STRAND</name>
+      <anchorfile>classbpp_1_1GffFeatureReader.html</anchorfile>
+      <anchor>a12aa56a4dd1e927db0f28604d1360b30</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" static="yes">
+      <type>static const std::string</type>
+      <name>GFF_PHASE</name>
+      <anchorfile>classbpp_1_1GffFeatureReader.html</anchorfile>
+      <anchor>a74ae2f87a56a93eb297146e9e3824f35</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" static="yes">
+      <type>static const std::string</type>
+      <name>GFF_NAME</name>
+      <anchorfile>classbpp_1_1GffFeatureReader.html</anchorfile>
+      <anchor>ae5d3c41328d5a496091d998c0abaff6e</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" static="yes">
+      <type>static const std::string</type>
+      <name>GFF_ALIAS</name>
+      <anchorfile>classbpp_1_1GffFeatureReader.html</anchorfile>
+      <anchor>a338fc168ca2d53810514d22be3bf27e1</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" static="yes">
+      <type>static const std::string</type>
+      <name>GFF_PARENT</name>
+      <anchorfile>classbpp_1_1GffFeatureReader.html</anchorfile>
+      <anchor>adef875e20ad7a8c8a492f2b14f5344f3</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" static="yes">
+      <type>static const std::string</type>
+      <name>GFF_TARGET</name>
+      <anchorfile>classbpp_1_1GffFeatureReader.html</anchorfile>
+      <anchor>a80e87dd3af08bd2738286dca3d91a8c9</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" static="yes">
+      <type>static const std::string</type>
+      <name>GFF_GAP</name>
+      <anchorfile>classbpp_1_1GffFeatureReader.html</anchorfile>
+      <anchor>ab4c5aad466aea96b7502b83675416ede</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" static="yes">
+      <type>static const std::string</type>
+      <name>GFF_DERIVES_FROM</name>
+      <anchorfile>classbpp_1_1GffFeatureReader.html</anchorfile>
+      <anchor>a7b3777d1160b37872a1159812084c5b1</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" static="yes">
+      <type>static const std::string</type>
+      <name>GFF_NOTE</name>
+      <anchorfile>classbpp_1_1GffFeatureReader.html</anchorfile>
+      <anchor>a634d944b330e3613db1268a7af40ab7f</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" static="yes">
+      <type>static const std::string</type>
+      <name>GFF_DBXREF</name>
+      <anchorfile>classbpp_1_1GffFeatureReader.html</anchorfile>
+      <anchor>a067da753e90c574a337b1ad68a5ef85e</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" static="yes">
+      <type>static const std::string</type>
+      <name>GFF_ONTOLOGY_TERM</name>
+      <anchorfile>classbpp_1_1GffFeatureReader.html</anchorfile>
+      <anchor>a8c91c0b5fae46e560bed178c3f55111f</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" static="yes">
+      <type>static const std::string</type>
+      <name>GFF_IS_CIRCULAR</name>
+      <anchorfile>classbpp_1_1GffFeatureReader.html</anchorfile>
+      <anchor>aa1d1484c9fa218bebc1e8e135b6c2167</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type></type>
+      <name>GffFeatureReader</name>
+      <anchorfile>classbpp_1_1GffFeatureReader.html</anchorfile>
+      <anchor>ab994b6fe0a47c3f06b1f92fd43b1d2c7</anchor>
+      <arglist>(const GffFeatureReader &reader)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>GffFeatureReader &</type>
+      <name>operator=</name>
+      <anchorfile>classbpp_1_1GffFeatureReader.html</anchorfile>
+      <anchor>a12a3435d52209113551ef075d27a4f33</anchor>
+      <arglist>(const GffFeatureReader &reader)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>void</type>
+      <name>getNextLine_</name>
+      <anchorfile>classbpp_1_1GffFeatureReader.html</anchorfile>
+      <anchor>a1a9ba4ac54dd236e8ad744eb4b8bc082</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::istream *</type>
+      <name>input_</name>
+      <anchorfile>classbpp_1_1GffFeatureReader.html</anchorfile>
+      <anchor>a8daae5c7833c107f77e719f0909a55e1</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::string</type>
+      <name>nextLine_</name>
+      <anchorfile>classbpp_1_1GffFeatureReader.html</anchorfile>
+      <anchor>a507c0f43b2cd59d163100a5f85ff05f0</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::GtfFeatureReader</name>
+    <filename>classbpp_1_1GtfFeatureReader.html</filename>
+    <base virtualness="virtual">bpp::FeatureReader</base>
+    <member kind="function">
+      <type></type>
+      <name>GtfFeatureReader</name>
+      <anchorfile>classbpp_1_1GtfFeatureReader.html</anchorfile>
+      <anchor>afc6b6d67b2b3f71dc008b6ff52472109</anchor>
+      <arglist>(std::istream &input)</arglist>
+    </member>
+    <member kind="function">
+      <type>bool</type>
+      <name>hasMoreFeature</name>
+      <anchorfile>classbpp_1_1GtfFeatureReader.html</anchorfile>
+      <anchor>a71e542bbef4679bab3e7f5956380f49a</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>const BasicSequenceFeature</type>
+      <name>nextFeature</name>
+      <anchorfile>classbpp_1_1GtfFeatureReader.html</anchorfile>
+      <anchor>ac47ae9b87521f012c6da6f3183c5aa51</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>getAllFeatures</name>
+      <anchorfile>classbpp_1_1GtfFeatureReader.html</anchorfile>
+      <anchor>a8c1cf5f048c3044eafccfe456c30fceb</anchor>
+      <arglist>(SequenceFeatureSet &features)</arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>getFeaturesOfType</name>
+      <anchorfile>classbpp_1_1GtfFeatureReader.html</anchorfile>
+      <anchor>af158dd45bcaf7f015db726d88b6508df</anchor>
+      <arglist>(const std::string &type, SequenceFeatureSet &features)</arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>getFeaturesOfSequence</name>
+      <anchorfile>classbpp_1_1GtfFeatureReader.html</anchorfile>
+      <anchor>a41325d7b9a4b37f3ad5602ba1628e395</anchor>
+      <arglist>(const std::string &seqId, SequenceFeatureSet &features)</arglist>
+    </member>
+    <member kind="variable" static="yes">
+      <type>static const std::string</type>
+      <name>GTF_PHASE</name>
+      <anchorfile>classbpp_1_1GtfFeatureReader.html</anchorfile>
+      <anchor>ad32b3f466339fc8dca0265a68720a178</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" static="yes">
+      <type>static const std::string</type>
+      <name>GTF_GENE_ID</name>
+      <anchorfile>classbpp_1_1GtfFeatureReader.html</anchorfile>
+      <anchor>a1828bc7bbfb73df1ccabc1facbf3ff79</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" static="yes">
+      <type>static const std::string</type>
+      <name>GTF_TRANSCRIPT_ID</name>
+      <anchorfile>classbpp_1_1GtfFeatureReader.html</anchorfile>
+      <anchor>a831f2b2c7673013cc4d22f891bd387ed</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type></type>
+      <name>GtfFeatureReader</name>
+      <anchorfile>classbpp_1_1GtfFeatureReader.html</anchorfile>
+      <anchor>a41fc89cb6fdda99484cefcb38bdf8115</anchor>
+      <arglist>(const GtfFeatureReader &reader)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>GtfFeatureReader &</type>
+      <name>operator=</name>
+      <anchorfile>classbpp_1_1GtfFeatureReader.html</anchorfile>
+      <anchor>a14d1653cbb6fe85a617954c809d04990</anchor>
+      <arglist>(const GtfFeatureReader &reader)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>void</type>
+      <name>getNextLine_</name>
+      <anchorfile>classbpp_1_1GtfFeatureReader.html</anchorfile>
+      <anchor>ac798c5b29b4e822bc5ed2b363dd4fd41</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::istream *</type>
+      <name>input_</name>
+      <anchorfile>classbpp_1_1GtfFeatureReader.html</anchorfile>
+      <anchor>a346b9f1e177cf672c5004ebae78c3ab9</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::string</type>
+      <name>nextLine_</name>
+      <anchorfile>classbpp_1_1GtfFeatureReader.html</anchorfile>
+      <anchor>acd97df52b7de4d5f557977b5f6de7e7c</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::SeqRange</name>
+    <filename>classbpp_1_1SeqRange.html</filename>
+    <base>Range< size_t ></base>
+    <member kind="function">
+      <type></type>
+      <name>SeqRange</name>
+      <anchorfile>classbpp_1_1SeqRange.html</anchorfile>
+      <anchor>aff5cebb974ae3f97919fa4e134a2410d</anchor>
+      <arglist>(size_t a, size_t b, char strand= '.')</arglist>
+    </member>
+    <member kind="function">
+      <type>SeqRange *</type>
+      <name>clone</name>
+      <anchorfile>classbpp_1_1SeqRange.html</anchorfile>
+      <anchor>a3d290bc8b82fc16bfe7aac1146fbf1c9</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual char</type>
+      <name>getStrand</name>
+      <anchorfile>classbpp_1_1SeqRange.html</anchorfile>
+      <anchor>a47c20df24e12d67132bbc0be826282b3</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual bool</type>
+      <name>isNegativeStrand</name>
+      <anchorfile>classbpp_1_1SeqRange.html</anchorfile>
+      <anchor>ab90fe5f0974596a3ae9d0bc6b304f010</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual bool</type>
+      <name>isStranded</name>
+      <anchorfile>classbpp_1_1SeqRange.html</anchorfile>
+      <anchor>a53e3ae2c8546c25e3f91ac605215197a</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual void</type>
+      <name>invert</name>
+      <anchorfile>classbpp_1_1SeqRange.html</anchorfile>
+      <anchor>a8fd58d326e463c444e969362a123132c</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>char</type>
+      <name>strand_</name>
+      <anchorfile>classbpp_1_1SeqRange.html</anchorfile>
+      <anchor>a8287a511d5f7f7854a9ad13eed2824fc</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::SequenceFeature</name>
+    <filename>classbpp_1_1SequenceFeature.html</filename>
+    <base virtualness="virtual">bpp::Clonable</base>
+    <member kind="function" virtualness="pure">
+      <type>virtual SequenceFeature *</type>
+      <name>clone</name>
+      <anchorfile>classbpp_1_1SequenceFeature.html</anchorfile>
+      <anchor>a4355009daa3f7f0555ef0d170e908348</anchor>
+      <arglist>() const =0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual const std::string &</type>
+      <name>getId</name>
+      <anchorfile>classbpp_1_1SequenceFeature.html</anchorfile>
+      <anchor>a8b139fc4ef17a12c9716176a96b572b0</anchor>
+      <arglist>() const =0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual void</type>
+      <name>setId</name>
+      <anchorfile>classbpp_1_1SequenceFeature.html</anchorfile>
+      <anchor>a060a1d0b951d1f8e409e247e7bf18825</anchor>
+      <arglist>(const std::string &id)=0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual const std::string &</type>
+      <name>getSequenceId</name>
+      <anchorfile>classbpp_1_1SequenceFeature.html</anchorfile>
+      <anchor>a968226af5f42ed289861854be2ab1cf3</anchor>
+      <arglist>() const =0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual void</type>
+      <name>setSequenceId</name>
+      <anchorfile>classbpp_1_1SequenceFeature.html</anchorfile>
+      <anchor>a69229d23bfbb7c3dce5c58ef283fe3cb</anchor>
+      <arglist>(const std::string &id)=0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual const std::string &</type>
+      <name>getSource</name>
+      <anchorfile>classbpp_1_1SequenceFeature.html</anchorfile>
+      <anchor>a63c59c73b779e4cab4d74de18da92dfb</anchor>
+      <arglist>() const =0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual void</type>
+      <name>setSource</name>
+      <anchorfile>classbpp_1_1SequenceFeature.html</anchorfile>
+      <anchor>ac00a826fad9b0aec3b8f3f851587a8ca</anchor>
+      <arglist>(const std::string &source)=0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual const std::string &</type>
+      <name>getType</name>
+      <anchorfile>classbpp_1_1SequenceFeature.html</anchorfile>
+      <anchor>a06fc02d9aacf9af2751e54f492c3de6c</anchor>
+      <arglist>() const =0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual void</type>
+      <name>setType</name>
+      <anchorfile>classbpp_1_1SequenceFeature.html</anchorfile>
+      <anchor>ac2249769626ca102fe2367d46f715a4a</anchor>
+      <arglist>(const std::string &type)=0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual const size_t</type>
+      <name>getStart</name>
+      <anchorfile>classbpp_1_1SequenceFeature.html</anchorfile>
+      <anchor>a9551fc9156e151d001bd974a566dff83</anchor>
+      <arglist>() const =0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual const size_t</type>
+      <name>getEnd</name>
+      <anchorfile>classbpp_1_1SequenceFeature.html</anchorfile>
+      <anchor>a66782e76929622593269257b5a13f788</anchor>
+      <arglist>() const =0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual bool</type>
+      <name>isStranded</name>
+      <anchorfile>classbpp_1_1SequenceFeature.html</anchorfile>
+      <anchor>a6a82f86f5cbbbc794de0bb598e2f8562</anchor>
+      <arglist>() const =0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual bool</type>
+      <name>isNegativeStrand</name>
+      <anchorfile>classbpp_1_1SequenceFeature.html</anchorfile>
+      <anchor>ada7790e41b26d626dca38730f3a5655f</anchor>
+      <arglist>() const =0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual void</type>
+      <name>invert</name>
+      <anchorfile>classbpp_1_1SequenceFeature.html</anchorfile>
+      <anchor>a0a14e70dab4475b0306a93e446e706e7</anchor>
+      <arglist>()=0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual SeqRange</type>
+      <name>getRange</name>
+      <anchorfile>classbpp_1_1SequenceFeature.html</anchorfile>
+      <anchor>a06e4a1b0fcff2c387f99565e81f6c080</anchor>
+      <arglist>() const =0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual bool</type>
+      <name>overlap</name>
+      <anchorfile>classbpp_1_1SequenceFeature.html</anchorfile>
+      <anchor>a6dcad6cb61d3995d9d3d954e4e065dde</anchor>
+      <arglist>(const SequenceFeature &feat) const =0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual const double &</type>
+      <name>getScore</name>
+      <anchorfile>classbpp_1_1SequenceFeature.html</anchorfile>
+      <anchor>ab1b4c79a3dcc65ed2d14c0b8078abe47</anchor>
+      <arglist>() const =0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual void</type>
+      <name>setScore</name>
+      <anchorfile>classbpp_1_1SequenceFeature.html</anchorfile>
+      <anchor>a8831e0d9998f8d908131e49b78c7bfae</anchor>
+      <arglist>(double score)=0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual const std::string &</type>
+      <name>getAttribute</name>
+      <anchorfile>classbpp_1_1SequenceFeature.html</anchorfile>
+      <anchor>a7387df483620f928a16a685f1678ba21</anchor>
+      <arglist>(const std::string &attribute) const =0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual std::string &</type>
+      <name>getAttribute</name>
+      <anchorfile>classbpp_1_1SequenceFeature.html</anchorfile>
+      <anchor>acb055a714d3a3c186b1c54a7ff08fe5f</anchor>
+      <arglist>(const std::string &attribute)=0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual std::set< std::string ></type>
+      <name>getAttributeList</name>
+      <anchorfile>classbpp_1_1SequenceFeature.html</anchorfile>
+      <anchor>a02552229e48add06f81e3fbef9964658</anchor>
+      <arglist>() const =0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual void</type>
+      <name>setAttribute</name>
+      <anchorfile>classbpp_1_1SequenceFeature.html</anchorfile>
+      <anchor>a85642d04392a129f3164744df6be95c5</anchor>
+      <arglist>(const std::string &attribute, const std::string &value)=0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual void</type>
+      <name>removeAttribute</name>
+      <anchorfile>classbpp_1_1SequenceFeature.html</anchorfile>
+      <anchor>a59d79e62554f3b78b2fe5fff8ff824c6</anchor>
+      <arglist>(const std::string &attribute)=0</arglist>
+    </member>
+    <member kind="variable" static="yes">
+      <type>static const std::string</type>
+      <name>NO_ATTRIBUTE_SET</name>
+      <anchorfile>classbpp_1_1SequenceFeature.html</anchorfile>
+      <anchor>a7e379a0be1068b348c870b7089fc8c44</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::BasicSequenceFeature</name>
+    <filename>classbpp_1_1BasicSequenceFeature.html</filename>
+    <base>bpp::SequenceFeature</base>
+    <member kind="function">
+      <type></type>
+      <name>BasicSequenceFeature</name>
+      <anchorfile>classbpp_1_1BasicSequenceFeature.html</anchorfile>
+      <anchor>abf98f177d2dfb743c6b0afb36b39b7a9</anchor>
+      <arglist>(const std::string &id, const std::string &seqId, const std::string &source, const std::string &type, size_t start, size_t end, char strand, double score=-1)</arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual BasicSequenceFeature *</type>
+      <name>clone</name>
+      <anchorfile>classbpp_1_1BasicSequenceFeature.html</anchorfile>
+      <anchor>a32794ea2cfc68366e258118a81671c38</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>const std::string &</type>
+      <name>getId</name>
+      <anchorfile>classbpp_1_1BasicSequenceFeature.html</anchorfile>
+      <anchor>a30849237d8c128c281f7b63576e019e1</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>setId</name>
+      <anchorfile>classbpp_1_1BasicSequenceFeature.html</anchorfile>
+      <anchor>ab1ae6461d9f79bd23018f19e0ceade05</anchor>
+      <arglist>(const std::string &id)</arglist>
+    </member>
+    <member kind="function">
+      <type>const std::string &</type>
+      <name>getSequenceId</name>
+      <anchorfile>classbpp_1_1BasicSequenceFeature.html</anchorfile>
+      <anchor>ac1d2b9955faa4922942d52af6ff089c9</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>setSequenceId</name>
+      <anchorfile>classbpp_1_1BasicSequenceFeature.html</anchorfile>
+      <anchor>ab6b55068a5f11c6d6c1f7c629a10988d</anchor>
+      <arglist>(const std::string &sid)</arglist>
+    </member>
+    <member kind="function">
+      <type>const std::string &</type>
+      <name>getSource</name>
+      <anchorfile>classbpp_1_1BasicSequenceFeature.html</anchorfile>
+      <anchor>a19782439633a0b82bbc12a77c99d965d</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>setSource</name>
+      <anchorfile>classbpp_1_1BasicSequenceFeature.html</anchorfile>
+      <anchor>ada1769de6c66daf58e9d85edc822f37f</anchor>
+      <arglist>(const std::string &source)</arglist>
+    </member>
+    <member kind="function">
+      <type>const std::string &</type>
+      <name>getType</name>
+      <anchorfile>classbpp_1_1BasicSequenceFeature.html</anchorfile>
+      <anchor>af47c7160debad48595d6994c7288b72f</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>setType</name>
+      <anchorfile>classbpp_1_1BasicSequenceFeature.html</anchorfile>
+      <anchor>ae6827744cb9f5ab44d56e0acd9a7698d</anchor>
+      <arglist>(const std::string &type)</arglist>
+    </member>
+    <member kind="function">
+      <type>const size_t</type>
+      <name>getStart</name>
+      <anchorfile>classbpp_1_1BasicSequenceFeature.html</anchorfile>
+      <anchor>afdf074bc00813d994b6836fa1a9dd28c</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>const size_t</type>
+      <name>getEnd</name>
+      <anchorfile>classbpp_1_1BasicSequenceFeature.html</anchorfile>
+      <anchor>a54558378a3ee196b8a9eeab33674bb8d</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>bool</type>
+      <name>isStranded</name>
+      <anchorfile>classbpp_1_1BasicSequenceFeature.html</anchorfile>
+      <anchor>aedffe85efb405c0363ccbaad6becc3f2</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>bool</type>
+      <name>isNegativeStrand</name>
+      <anchorfile>classbpp_1_1BasicSequenceFeature.html</anchorfile>
+      <anchor>ac3822ed54ea5c4e5aeb9f4c33c5f1383</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>invert</name>
+      <anchorfile>classbpp_1_1BasicSequenceFeature.html</anchorfile>
+      <anchor>a706ddb77da20e84f22e8ef3e53a095ab</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function">
+      <type>const double &</type>
+      <name>getScore</name>
+      <anchorfile>classbpp_1_1BasicSequenceFeature.html</anchorfile>
+      <anchor>a789679ad7f26afa7003b4ed7ad48b5b7</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>setScore</name>
+      <anchorfile>classbpp_1_1BasicSequenceFeature.html</anchorfile>
+      <anchor>ae763b51216b0a101ab9db8dd5274d2c2</anchor>
+      <arglist>(double score)</arglist>
+    </member>
+    <member kind="function">
+      <type>const std::string &</type>
+      <name>getAttribute</name>
+      <anchorfile>classbpp_1_1BasicSequenceFeature.html</anchorfile>
+      <anchor>a0b4b05de971d4ffc4d4539a9b8e5532c</anchor>
+      <arglist>(const std::string &attribute) const </arglist>
+    </member>
+    <member kind="function">
+      <type>std::string &</type>
+      <name>getAttribute</name>
+      <anchorfile>classbpp_1_1BasicSequenceFeature.html</anchorfile>
+      <anchor>a73a2712730ed2ac1f3eb973e9e0f632b</anchor>
+      <arglist>(const std::string &attribute)</arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>setAttribute</name>
+      <anchorfile>classbpp_1_1BasicSequenceFeature.html</anchorfile>
+      <anchor>a0f9efc49df4c1320e7101e21b023f45a</anchor>
+      <arglist>(const std::string &attribute, const std::string &value)</arglist>
+    </member>
+    <member kind="function">
+      <type>std::set< std::string ></type>
+      <name>getAttributeList</name>
+      <anchorfile>classbpp_1_1BasicSequenceFeature.html</anchorfile>
+      <anchor>ae87d58ae25dec173bc3b2b7f456185ef</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>removeAttribute</name>
+      <anchorfile>classbpp_1_1BasicSequenceFeature.html</anchorfile>
+      <anchor>a4fa9f3c0d2184ebdaca24ed984361665</anchor>
+      <arglist>(const std::string &attribute)</arglist>
+    </member>
+    <member kind="function">
+      <type>SeqRange</type>
+      <name>getRange</name>
+      <anchorfile>classbpp_1_1BasicSequenceFeature.html</anchorfile>
+      <anchor>a50a8df30a52bf18e958e0c162e520ea6</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>bool</type>
+      <name>overlap</name>
+      <anchorfile>classbpp_1_1BasicSequenceFeature.html</anchorfile>
+      <anchor>a606d3131eb826f0753dac6bd25d430cb</anchor>
+      <arglist>(const SequenceFeature &feat) const </arglist>
+    </member>
+    <member kind="variable" protection="protected">
+      <type>std::string</type>
+      <name>id_</name>
+      <anchorfile>classbpp_1_1BasicSequenceFeature.html</anchorfile>
+      <anchor>a650179fecc2735ceaea445afc32018b2</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="protected">
+      <type>std::string</type>
+      <name>sequenceId_</name>
+      <anchorfile>classbpp_1_1BasicSequenceFeature.html</anchorfile>
+      <anchor>a0ff790a68341e499d9f853c8ef36583e</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="protected">
+      <type>std::string</type>
+      <name>source_</name>
+      <anchorfile>classbpp_1_1BasicSequenceFeature.html</anchorfile>
+      <anchor>a922fce6eaf93184afc9ff366f836e901</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="protected">
+      <type>std::string</type>
+      <name>type_</name>
+      <anchorfile>classbpp_1_1BasicSequenceFeature.html</anchorfile>
+      <anchor>a0dc1537fd581723a8e759f22b7772ecf</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="protected">
+      <type>SeqRange</type>
+      <name>range_</name>
+      <anchorfile>classbpp_1_1BasicSequenceFeature.html</anchorfile>
+      <anchor>ad5e89a6911b57144dbb9d3ff17536f78</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="protected">
+      <type>double</type>
+      <name>score_</name>
+      <anchorfile>classbpp_1_1BasicSequenceFeature.html</anchorfile>
+      <anchor>a4fb84ce524ed1f0ce6bcb01e7d8d131e</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="protected">
+      <type>std::map< std::string, std::string ></type>
+      <name>attributes_</name>
+      <anchorfile>classbpp_1_1BasicSequenceFeature.html</anchorfile>
+      <anchor>a7d3bab9246297e70ed437d009feb9814</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::SequenceFeatureSet</name>
+    <filename>classbpp_1_1SequenceFeatureSet.html</filename>
+    <member kind="function">
+      <type></type>
+      <name>SequenceFeatureSet</name>
+      <anchorfile>classbpp_1_1SequenceFeatureSet.html</anchorfile>
+      <anchor>ab8942cfbb63599ad1c3b2d7318848a08</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual</type>
+      <name>~SequenceFeatureSet</name>
+      <anchorfile>classbpp_1_1SequenceFeatureSet.html</anchorfile>
+      <anchor>a297778c2e58d6a4192f286e1f53f6ce9</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function">
+      <type></type>
+      <name>SequenceFeatureSet</name>
+      <anchorfile>classbpp_1_1SequenceFeatureSet.html</anchorfile>
+      <anchor>a9c99c725bec10fbf6a2789c80eef862b</anchor>
+      <arglist>(const SequenceFeatureSet &sfs)</arglist>
+    </member>
+    <member kind="function">
+      <type>SequenceFeatureSet &</type>
+      <name>operator=</name>
+      <anchorfile>classbpp_1_1SequenceFeatureSet.html</anchorfile>
+      <anchor>a7aac9604b8f19c0f57e0831e8b901b7b</anchor>
+      <arglist>(const SequenceFeatureSet &sfs)</arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>clear</name>
+      <anchorfile>classbpp_1_1SequenceFeatureSet.html</anchorfile>
+      <anchor>a8afcf5654962bf6b5a19ebe50b0075cd</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function">
+      <type>const SequenceFeature &</type>
+      <name>getFeature</name>
+      <anchorfile>classbpp_1_1SequenceFeatureSet.html</anchorfile>
+      <anchor>ad2727c815f124ba7822e1b4711d3b0c9</anchor>
+      <arglist>(size_t i) const </arglist>
+    </member>
+    <member kind="function">
+      <type>const SequenceFeature &</type>
+      <name>operator[]</name>
+      <anchorfile>classbpp_1_1SequenceFeatureSet.html</anchorfile>
+      <anchor>ada1e8d7c435f6bcc93b12553db5c4f81</anchor>
+      <arglist>(size_t i) const </arglist>
+    </member>
+    <member kind="function">
+      <type>size_t</type>
+      <name>getNumberOfFeatures</name>
+      <anchorfile>classbpp_1_1SequenceFeatureSet.html</anchorfile>
+      <anchor>a27d0694729d8eda79431632c1beed9e5</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>addFeature</name>
+      <anchorfile>classbpp_1_1SequenceFeatureSet.html</anchorfile>
+      <anchor>a5d40ce4d24c87b71b37ceb79f3b2cbc5</anchor>
+      <arglist>(const SequenceFeature &feature)</arglist>
+    </member>
+    <member kind="function">
+      <type>std::set< std::string ></type>
+      <name>getSequences</name>
+      <anchorfile>classbpp_1_1SequenceFeatureSet.html</anchorfile>
+      <anchor>a4a090f1887e6ed19ef9ef8af0c80c66c</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>std::set< std::string ></type>
+      <name>getTypes</name>
+      <anchorfile>classbpp_1_1SequenceFeatureSet.html</anchorfile>
+      <anchor>a105dd4ce3ed5b78bc0e57fb931753bc4</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>fillRangeCollectionForSequence</name>
+      <anchorfile>classbpp_1_1SequenceFeatureSet.html</anchorfile>
+      <anchor>adc0d767d0ecf55f750a6a5d7742d664f</anchor>
+      <arglist>(const std::string &seqId, RangeCollection< size_t > &coords) const </arglist>
+    </member>
+    <member kind="function">
+      <type>SequenceFeatureSet *</type>
+      <name>getSubsetForType</name>
+      <anchorfile>classbpp_1_1SequenceFeatureSet.html</anchorfile>
+      <anchor>a3d0e0a6e35fbc255248b68aebd728507</anchor>
+      <arglist>(const std::vector< std::string > &types) const </arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::vector< SequenceFeature * ></type>
+      <name>features_</name>
+      <anchorfile>classbpp_1_1SequenceFeatureSet.html</anchorfile>
+      <anchor>a661b0403f4bd4875849fe2b21fa37435</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::SequenceFeatureTools</name>
+    <filename>classbpp_1_1SequenceFeatureTools.html</filename>
+    <member kind="function" static="yes">
+      <type>static Sequence *</type>
+      <name>extract</name>
+      <anchorfile>classbpp_1_1SequenceFeatureTools.html</anchorfile>
+      <anchor>a3323edd28fc94a4200d106d349b35729</anchor>
+      <arglist>(const Sequence &seq, const SeqRange &range)</arglist>
+    </member>
+    <member kind="function" static="yes">
+      <type>static unsigned int</type>
+      <name>getOrfs</name>
+      <anchorfile>classbpp_1_1SequenceFeatureTools.html</anchorfile>
+      <anchor>a698da40b581c6e4c60053509f1d8e56b</anchor>
+      <arglist>(const Sequence &seq, SequenceFeatureSet &featSet, const GeneticCode &gCode)</arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::Fastq</name>
+    <filename>classbpp_1_1Fastq.html</filename>
+    <base virtualness="virtual">bpp::ISequenceStream</base>
+    <base virtualness="virtual">bpp::OSequenceStream</base>
+    <member kind="function">
+      <type></type>
+      <name>Fastq</name>
+      <anchorfile>classbpp_1_1Fastq.html</anchorfile>
+      <anchor>a512179a4db78a0c74c2c33621e2aed31</anchor>
+      <arglist>(bool repName=false)</arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual</type>
+      <name>~Fastq</name>
+      <anchorfile>classbpp_1_1Fastq.html</anchorfile>
+      <anchor>ab1511fcf73fcb81b63a98bf0a10b46c0</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function">
+      <type>bool</type>
+      <name>repeatName</name>
+      <anchorfile>classbpp_1_1Fastq.html</anchorfile>
+      <anchor>a74fa2c88d51c73e70f3ed3b61b954ca9</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>repeatName</name>
+      <anchorfile>classbpp_1_1Fastq.html</anchorfile>
+      <anchor>a5bd3f165dab7ffeca595cecd0e18c127</anchor>
+      <arglist>(bool yn)</arglist>
+    </member>
+    <member kind="function">
+      <type>const std::string</type>
+      <name>getFormatName</name>
+      <anchorfile>classbpp_1_1Fastq.html</anchorfile>
+      <anchor>ad4254b28d0120aac561d2cf1c2f8ce7e</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>const std::string</type>
+      <name>getFormatDescription</name>
+      <anchorfile>classbpp_1_1Fastq.html</anchorfile>
+      <anchor>ad8f6a6dee6024f4f8a18f9895ae218c8</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>const std::string</type>
+      <name>getDataType</name>
+      <anchorfile>classbpp_1_1Fastq.html</anchorfile>
+      <anchor>a3f2fbd6446bc706e5f3b16fe0937bfc1</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>bool</type>
+      <name>nextSequence</name>
+      <anchorfile>classbpp_1_1Fastq.html</anchorfile>
+      <anchor>a12420e184abc864f91ccab29382c79d5</anchor>
+      <arglist>(std::istream &input, Sequence &seq) const </arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>writeSequence</name>
+      <anchorfile>classbpp_1_1Fastq.html</anchorfile>
+      <anchor>aee05b33881bcff74caa45ca1123ee2ea</anchor>
+      <arglist>(std::ostream &output, const Sequence &seq) const </arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>bool</type>
+      <name>repeatName_</name>
+      <anchorfile>classbpp_1_1Fastq.html</anchorfile>
+      <anchor>af2970097a8bd5b6ea428e3c9a924beae</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::AlignmentFilterMafIterator</name>
+    <filename>classbpp_1_1AlignmentFilterMafIterator.html</filename>
+    <base>bpp::AbstractFilterMafIterator</base>
+    <base virtualness="virtual">bpp::MafTrashIterator</base>
+    <member kind="function">
+      <type></type>
+      <name>AlignmentFilterMafIterator</name>
+      <anchorfile>classbpp_1_1AlignmentFilterMafIterator.html</anchorfile>
+      <anchor>a379b41b87d003975fbe7ef1eb710926e</anchor>
+      <arglist>(MafIterator *iterator, const std::vector< std::string > &species, unsigned int windowSize, unsigned int step, unsigned int maxGap, double maxEnt, bool keepTrashedBlocks, bool missingAsGap)</arglist>
+    </member>
+    <member kind="function">
+      <type>MafBlock *</type>
+      <name>nextRemovedBlock</name>
+      <anchorfile>classbpp_1_1AlignmentFilterMafIterator.html</anchorfile>
+      <anchor>ac42c4979cf1fe11fb31dbb828156c723</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>setLogStream</name>
+      <anchorfile>classbpp_1_1AbstractFilterMafIterator.html</anchorfile>
+      <anchor>a389963ab369676232b41c99113a46959</anchor>
+      <arglist>(OutputStream *logstream)</arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>addIterationListener</name>
+      <anchorfile>classbpp_1_1AbstractMafIterator.html</anchorfile>
+      <anchor>ada15b9800bc26360af61d49f5606fe5b</anchor>
+      <arglist>(IterationListener *listener)</arglist>
+    </member>
+    <member kind="function">
+      <type>MafBlock *</type>
+      <name>nextBlock</name>
+      <anchorfile>classbpp_1_1AbstractMafIterator.html</anchorfile>
+      <anchor>a4be87218e557f149290880b29c1c2875</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function">
+      <type>bool</type>
+      <name>isVerbose</name>
+      <anchorfile>classbpp_1_1AbstractMafIterator.html</anchorfile>
+      <anchor>aaf877fb4c7a985e6a11dc48f474f785a</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>setVerbose</name>
+      <anchorfile>classbpp_1_1AbstractMafIterator.html</anchorfile>
+      <anchor>ac5e8064022a91149335e5410a709bf3c</anchor>
+      <arglist>(bool yn)</arglist>
+    </member>
+    <member kind="function" protection="protected" virtualness="virtual">
+      <type>virtual void</type>
+      <name>fireIterationStartSignal_</name>
+      <anchorfile>classbpp_1_1AbstractMafIterator.html</anchorfile>
+      <anchor>ac02bfa093b9f09fc774328b6acc43aff</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function" protection="protected" virtualness="virtual">
+      <type>virtual void</type>
+      <name>fireIterationMoveSignal_</name>
+      <anchorfile>classbpp_1_1AbstractMafIterator.html</anchorfile>
+      <anchor>a0b8d32b4d1c258e092c4085e8f609580</anchor>
+      <arglist>(const MafBlock &currentBlock)</arglist>
+    </member>
+    <member kind="function" protection="protected" virtualness="virtual">
+      <type>virtual void</type>
+      <name>fireIterationStopSignal_</name>
+      <anchorfile>classbpp_1_1AbstractMafIterator.html</anchorfile>
+      <anchor>acf46a95727a541b1a71ce596074e5bf6</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="variable" protection="protected">
+      <type>MafIterator *</type>
+      <name>iterator_</name>
+      <anchorfile>classbpp_1_1AbstractFilterMafIterator.html</anchorfile>
+      <anchor>a12df514a176aebdf5fe5fabf467b51ae</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="protected">
+      <type>MafBlock *</type>
+      <name>currentBlock_</name>
+      <anchorfile>classbpp_1_1AbstractFilterMafIterator.html</anchorfile>
+      <anchor>aa76bc0ccee871325e82adc7c1bb1f7c7</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="protected">
+      <type>OutputStream *</type>
+      <name>logstream_</name>
+      <anchorfile>classbpp_1_1AbstractFilterMafIterator.html</anchorfile>
+      <anchor>a7731cc8e9be41760d962867d0c7ea226</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="protected">
+      <type>std::vector< IterationListener * ></type>
+      <name>iterationListeners_</name>
+      <anchorfile>classbpp_1_1AbstractMafIterator.html</anchorfile>
+      <anchor>afea0d071192a02bb659d22e0511b8ed7</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="protected">
+      <type>bool</type>
+      <name>started_</name>
+      <anchorfile>classbpp_1_1AbstractMafIterator.html</anchorfile>
+      <anchor>ad18a9bd97b1cb246d44afe55dd5f9e1f</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="protected">
+      <type>bool</type>
+      <name>verbose_</name>
+      <anchorfile>classbpp_1_1AbstractMafIterator.html</anchorfile>
+      <anchor>ae0ba6b4d04b6cf1bd81c264904323207</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>MafBlock *</type>
+      <name>analyseCurrentBlock_</name>
+      <anchorfile>classbpp_1_1AlignmentFilterMafIterator.html</anchorfile>
+      <anchor>ab96b63c37b51fa12e173d5abf48e9721</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::vector< std::string ></type>
+      <name>species_</name>
+      <anchorfile>classbpp_1_1AlignmentFilterMafIterator.html</anchorfile>
+      <anchor>af9d87927d7c0d4f3e0c5fc2867ec6196</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>unsigned int</type>
+      <name>windowSize_</name>
+      <anchorfile>classbpp_1_1AlignmentFilterMafIterator.html</anchorfile>
+      <anchor>a9e529cea99e15ed429687e159129d076</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>unsigned int</type>
+      <name>step_</name>
+      <anchorfile>classbpp_1_1AlignmentFilterMafIterator.html</anchorfile>
+      <anchor>a1a59ed63f26f4adafce2d2d7ad02087b</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>unsigned int</type>
+      <name>maxGap_</name>
+      <anchorfile>classbpp_1_1AlignmentFilterMafIterator.html</anchorfile>
+      <anchor>ac79a4eb852bdb86ac0f042af9f926d4a</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>double</type>
+      <name>maxEnt_</name>
+      <anchorfile>classbpp_1_1AlignmentFilterMafIterator.html</anchorfile>
+      <anchor>acc3c5d31ddcc105533164e16ee10e19d</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::deque< MafBlock * ></type>
+      <name>blockBuffer_</name>
+      <anchorfile>classbpp_1_1AlignmentFilterMafIterator.html</anchorfile>
+      <anchor>a0a08f15cacffd3d236fda0fdfbe17880</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::deque< MafBlock * ></type>
+      <name>trashBuffer_</name>
+      <anchorfile>classbpp_1_1AlignmentFilterMafIterator.html</anchorfile>
+      <anchor>aab1128693a3fcdf839e96263a7717b66</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::deque< std::vector< int > ></type>
+      <name>window_</name>
+      <anchorfile>classbpp_1_1AlignmentFilterMafIterator.html</anchorfile>
+      <anchor>a46e8b21890adf8014000e9ed99717081</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>bool</type>
+      <name>keepTrashedBlocks_</name>
+      <anchorfile>classbpp_1_1AlignmentFilterMafIterator.html</anchorfile>
+      <anchor>a820e36a63cc043e8193d39f2e3e6f3b0</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>bool</type>
+      <name>missingAsGap_</name>
+      <anchorfile>classbpp_1_1AlignmentFilterMafIterator.html</anchorfile>
+      <anchor>a680c4851b1afc7626012b658fd334f3c</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::AlignmentFilter2MafIterator</name>
+    <filename>classbpp_1_1AlignmentFilter2MafIterator.html</filename>
+    <base>bpp::AbstractFilterMafIterator</base>
+    <base virtualness="virtual">bpp::MafTrashIterator</base>
+    <member kind="function">
+      <type></type>
+      <name>AlignmentFilter2MafIterator</name>
+      <anchorfile>classbpp_1_1AlignmentFilter2MafIterator.html</anchorfile>
+      <anchor>a0e056d893541e4b141c310282f3a1776</anchor>
+      <arglist>(MafIterator *iterator, const std::vector< std::string > &species, unsigned int windowSize, unsigned int step, unsigned int maxGap, unsigned int maxPos, bool keepTrashedBlocks, bool missingAsGap)</arglist>
+    </member>
+    <member kind="function">
+      <type>MafBlock *</type>
+      <name>nextRemovedBlock</name>
+      <anchorfile>classbpp_1_1AlignmentFilter2MafIterator.html</anchorfile>
+      <anchor>a5715ff37c41faf67dfae9741126b7d2b</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>MafBlock *</type>
+      <name>analyseCurrentBlock_</name>
+      <anchorfile>classbpp_1_1AlignmentFilter2MafIterator.html</anchorfile>
+      <anchor>a5cabc640612e1917d9ff305343516603</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::vector< std::string ></type>
+      <name>species_</name>
+      <anchorfile>classbpp_1_1AlignmentFilter2MafIterator.html</anchorfile>
+      <anchor>a195608245d8f9e651dbcbc26f789b314</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>unsigned int</type>
+      <name>windowSize_</name>
+      <anchorfile>classbpp_1_1AlignmentFilter2MafIterator.html</anchorfile>
+      <anchor>a89b07d92df83e2bb31e35d5601326d23</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>unsigned int</type>
+      <name>step_</name>
+      <anchorfile>classbpp_1_1AlignmentFilter2MafIterator.html</anchorfile>
+      <anchor>acd7892c41727d184a7862909bda13691</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>unsigned int</type>
+      <name>maxGap_</name>
+      <anchorfile>classbpp_1_1AlignmentFilter2MafIterator.html</anchorfile>
+      <anchor>a3d9c81495702e2c03b75403eff6813b4</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>unsigned int</type>
+      <name>maxPos_</name>
+      <anchorfile>classbpp_1_1AlignmentFilter2MafIterator.html</anchorfile>
+      <anchor>a78ebecac5f397fd61046dcf135b38ea4</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::deque< MafBlock * ></type>
+      <name>blockBuffer_</name>
+      <anchorfile>classbpp_1_1AlignmentFilter2MafIterator.html</anchorfile>
+      <anchor>aca3d81df6cc8f3223d52605a6a8eaf23</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::deque< MafBlock * ></type>
+      <name>trashBuffer_</name>
+      <anchorfile>classbpp_1_1AlignmentFilter2MafIterator.html</anchorfile>
+      <anchor>ae61977e35ed390a9fca18cd9fe31b2a0</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::deque< std::vector< bool > ></type>
+      <name>window_</name>
+      <anchorfile>classbpp_1_1AlignmentFilter2MafIterator.html</anchorfile>
+      <anchor>a3db4195caca2ec9ab500ec17f85883ab</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>bool</type>
+      <name>keepTrashedBlocks_</name>
+      <anchorfile>classbpp_1_1AlignmentFilter2MafIterator.html</anchorfile>
+      <anchor>a09c677c300136a46e390117ca8655f08</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>bool</type>
+      <name>missingAsGap_</name>
+      <anchorfile>classbpp_1_1AlignmentFilter2MafIterator.html</anchorfile>
+      <anchor>a26d365803d0b1fefc361a973a6ff9fd9</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::BlockLengthMafIterator</name>
+    <filename>classbpp_1_1BlockLengthMafIterator.html</filename>
+    <base>bpp::AbstractFilterMafIterator</base>
+    <member kind="function">
+      <type></type>
+      <name>BlockLengthMafIterator</name>
+      <anchorfile>classbpp_1_1BlockLengthMafIterator.html</anchorfile>
+      <anchor>a3ecb52571c53f99baabedf84c2c3f8ee</anchor>
+      <arglist>(MafIterator *iterator, size_t minLength)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>MafBlock *</type>
+      <name>analyseCurrentBlock_</name>
+      <anchorfile>classbpp_1_1BlockLengthMafIterator.html</anchorfile>
+      <anchor>a4d704fad20906b450f17b35e466909ce</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>size_t</type>
+      <name>minLength_</name>
+      <anchorfile>classbpp_1_1BlockLengthMafIterator.html</anchorfile>
+      <anchor>afdc703e4dbf2a0e77bd73a94bc2ebcda</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::BlockMergerMafIterator</name>
+    <filename>classbpp_1_1BlockMergerMafIterator.html</filename>
+    <base>bpp::AbstractFilterMafIterator</base>
+    <member kind="function">
+      <type></type>
+      <name>BlockMergerMafIterator</name>
+      <anchorfile>classbpp_1_1BlockMergerMafIterator.html</anchorfile>
+      <anchor>a69a868b6da810089e3685e575b4904f5</anchor>
+      <arglist>(MafIterator *iterator, const std::vector< std::string > &species, unsigned int maxDist=0)</arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>ignoreChromosome</name>
+      <anchorfile>classbpp_1_1BlockMergerMafIterator.html</anchorfile>
+      <anchor>aa9522ef8d5bc9747c48cd1d83bec74ff</anchor>
+      <arglist>(const std::string &chr)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type></type>
+      <name>BlockMergerMafIterator</name>
+      <anchorfile>classbpp_1_1BlockMergerMafIterator.html</anchorfile>
+      <anchor>a245cd31bd4e67cb081b5d9fc65c548a1</anchor>
+      <arglist>(const BlockMergerMafIterator &iterator)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>BlockMergerMafIterator &</type>
+      <name>operator=</name>
+      <anchorfile>classbpp_1_1BlockMergerMafIterator.html</anchorfile>
+      <anchor>afca2bca822c4c73448c3cacd6be1b3d1</anchor>
+      <arglist>(const BlockMergerMafIterator &iterator)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>MafBlock *</type>
+      <name>analyseCurrentBlock_</name>
+      <anchorfile>classbpp_1_1BlockMergerMafIterator.html</anchorfile>
+      <anchor>a07e1f5d264dbaa32f5cbdc2c955903f2</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::vector< std::string ></type>
+      <name>species_</name>
+      <anchorfile>classbpp_1_1BlockMergerMafIterator.html</anchorfile>
+      <anchor>a54a94fca504659834110d6a3d7c4d84c</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>MafBlock *</type>
+      <name>incomingBlock_</name>
+      <anchorfile>classbpp_1_1BlockMergerMafIterator.html</anchorfile>
+      <anchor>a956160584be4b9a965833e49382f7dbb</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::vector< std::string ></type>
+      <name>ignoreChrs_</name>
+      <anchorfile>classbpp_1_1BlockMergerMafIterator.html</anchorfile>
+      <anchor>aa3590f6b9ed861aa48d23835957defa0</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>unsigned int</type>
+      <name>maxDist_</name>
+      <anchorfile>classbpp_1_1BlockMergerMafIterator.html</anchorfile>
+      <anchor>a36d02a67be4f084eea927624425b0a9e</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::BlockSizeMafIterator</name>
+    <filename>classbpp_1_1BlockSizeMafIterator.html</filename>
+    <base>bpp::AbstractFilterMafIterator</base>
+    <member kind="function">
+      <type></type>
+      <name>BlockSizeMafIterator</name>
+      <anchorfile>classbpp_1_1BlockSizeMafIterator.html</anchorfile>
+      <anchor>ab10c41e64dfddb9242da236e1c8289d0</anchor>
+      <arglist>(MafIterator *iterator, unsigned int minSize)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>MafBlock *</type>
+      <name>analyseCurrentBlock_</name>
+      <anchorfile>classbpp_1_1BlockSizeMafIterator.html</anchorfile>
+      <anchor>af0a5aa3f1e9607dd48d6c8d5a26276a1</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>unsigned int</type>
+      <name>minSize_</name>
+      <anchorfile>classbpp_1_1BlockSizeMafIterator.html</anchorfile>
+      <anchor>a29ecd8e5ee4e648fc8bbad516b6e7865</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::ChromosomeMafIterator</name>
+    <filename>classbpp_1_1ChromosomeMafIterator.html</filename>
+    <base>bpp::AbstractFilterMafIterator</base>
+    <member kind="function">
+      <type></type>
+      <name>ChromosomeMafIterator</name>
+      <anchorfile>classbpp_1_1ChromosomeMafIterator.html</anchorfile>
+      <anchor>a72403af4b33ee291289fdf3bd26c5e5c</anchor>
+      <arglist>(MafIterator *iterator, const std::string &reference, const std::string &chr)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type></type>
+      <name>ChromosomeMafIterator</name>
+      <anchorfile>classbpp_1_1ChromosomeMafIterator.html</anchorfile>
+      <anchor>aca0b3a7ddbad77d3191a354e6ddc71b5</anchor>
+      <arglist>(const ChromosomeMafIterator &iterator)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>ChromosomeMafIterator &</type>
+      <name>operator=</name>
+      <anchorfile>classbpp_1_1ChromosomeMafIterator.html</anchorfile>
+      <anchor>a088ee90e9dec8fef23ecbe7f578e51e2</anchor>
+      <arglist>(const ChromosomeMafIterator &iterator)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>MafBlock *</type>
+      <name>analyseCurrentBlock_</name>
+      <anchorfile>classbpp_1_1ChromosomeMafIterator.html</anchorfile>
+      <anchor>a1b20c4d56ccc1e98ae3ea1e6b63dd538</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::string</type>
+      <name>ref_</name>
+      <anchorfile>classbpp_1_1ChromosomeMafIterator.html</anchorfile>
+      <anchor>ad46d71970c10c37b16ed71b2671e04e9</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::string</type>
+      <name>chr_</name>
+      <anchorfile>classbpp_1_1ChromosomeMafIterator.html</anchorfile>
+      <anchor>ab3f4162afc38a03d1bb01ed22dcf9ee2</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::ConcatenateMafIterator</name>
+    <filename>classbpp_1_1ConcatenateMafIterator.html</filename>
+    <base>bpp::AbstractFilterMafIterator</base>
+    <member kind="function">
+      <type></type>
+      <name>ConcatenateMafIterator</name>
+      <anchorfile>classbpp_1_1ConcatenateMafIterator.html</anchorfile>
+      <anchor>a2b690f3c5260e1cb49b3751aa1b5d783</anchor>
+      <arglist>(MafIterator *iterator, unsigned int minimumSize)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type></type>
+      <name>ConcatenateMafIterator</name>
+      <anchorfile>classbpp_1_1ConcatenateMafIterator.html</anchorfile>
+      <anchor>a2a61be291a57d5d9386e66d2a205db33</anchor>
+      <arglist>(const ConcatenateMafIterator &iterator)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>ConcatenateMafIterator &</type>
+      <name>operator=</name>
+      <anchorfile>classbpp_1_1ConcatenateMafIterator.html</anchorfile>
+      <anchor>aa54f4b3e2e417de1b22a27cf0ee57ee5</anchor>
+      <arglist>(const ConcatenateMafIterator &iterator)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>MafBlock *</type>
+      <name>analyseCurrentBlock_</name>
+      <anchorfile>classbpp_1_1ConcatenateMafIterator.html</anchorfile>
+      <anchor>a4be5783dee6973c6a3509dfc1be7d944</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>MafBlock *</type>
+      <name>incomingBlock_</name>
+      <anchorfile>classbpp_1_1ConcatenateMafIterator.html</anchorfile>
+      <anchor>a737e7c3950950474af018145a32421d8</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>unsigned int</type>
+      <name>minimumSize_</name>
+      <anchorfile>classbpp_1_1ConcatenateMafIterator.html</anchorfile>
+      <anchor>a7c47a45d79400586c751c904a32be80f</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::CoordinatesOutputMafIterator</name>
+    <filename>classbpp_1_1CoordinatesOutputMafIterator.html</filename>
+    <base>bpp::AbstractFilterMafIterator</base>
+    <member kind="function">
+      <type></type>
+      <name>CoordinatesOutputMafIterator</name>
+      <anchorfile>classbpp_1_1CoordinatesOutputMafIterator.html</anchorfile>
+      <anchor>ac656955da53b34585fed8f3700e6cf02</anchor>
+      <arglist>(MafIterator *iterator, std::ostream *out, const std::vector< std::string > &species)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type></type>
+      <name>CoordinatesOutputMafIterator</name>
+      <anchorfile>classbpp_1_1CoordinatesOutputMafIterator.html</anchorfile>
+      <anchor>ab8248d175d4ec2879ccc4f8dcc343475</anchor>
+      <arglist>(const CoordinatesOutputMafIterator &iterator)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>CoordinatesOutputMafIterator &</type>
+      <name>operator=</name>
+      <anchorfile>classbpp_1_1CoordinatesOutputMafIterator.html</anchorfile>
+      <anchor>a56ff5e8f2048a222fdf89d9f924c3481</anchor>
+      <arglist>(const CoordinatesOutputMafIterator &iterator)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>void</type>
+      <name>writeHeader_</name>
+      <anchorfile>classbpp_1_1CoordinatesOutputMafIterator.html</anchorfile>
+      <anchor>a15dc1c23214d710e724b6d4ef5f6e091</anchor>
+      <arglist>(std::ostream &out) const </arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>MafBlock *</type>
+      <name>analyseCurrentBlock_</name>
+      <anchorfile>classbpp_1_1CoordinatesOutputMafIterator.html</anchorfile>
+      <anchor>afb24e74507cfe9697767e86e6b9b0454</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::ostream *</type>
+      <name>output_</name>
+      <anchorfile>classbpp_1_1CoordinatesOutputMafIterator.html</anchorfile>
+      <anchor>afe154af561a828d0e5ea76ccb6e3cfd9</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::vector< std::string ></type>
+      <name>species_</name>
+      <anchorfile>classbpp_1_1CoordinatesOutputMafIterator.html</anchorfile>
+      <anchor>a345cf2105bdc7b3da4d6db4553f35811</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::DuplicateFilterMafIterator</name>
+    <filename>classbpp_1_1DuplicateFilterMafIterator.html</filename>
+    <base>bpp::AbstractFilterMafIterator</base>
+    <member kind="function">
+      <type></type>
+      <name>DuplicateFilterMafIterator</name>
+      <anchorfile>classbpp_1_1DuplicateFilterMafIterator.html</anchorfile>
+      <anchor>a641c64d5216abc7c26475f207288e176</anchor>
+      <arglist>(MafIterator *iterator, const std::string &reference)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type></type>
+      <name>DuplicateFilterMafIterator</name>
+      <anchorfile>classbpp_1_1DuplicateFilterMafIterator.html</anchorfile>
+      <anchor>a3804c0fcf1f0bf9f4c4ea6df52b82015</anchor>
+      <arglist>(const DuplicateFilterMafIterator &iterator)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>DuplicateFilterMafIterator &</type>
+      <name>operator=</name>
+      <anchorfile>classbpp_1_1DuplicateFilterMafIterator.html</anchorfile>
+      <anchor>a3c657275786fc64e241fa2becbe3abe3</anchor>
+      <arglist>(const DuplicateFilterMafIterator &iterator)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>MafBlock *</type>
+      <name>analyseCurrentBlock_</name>
+      <anchorfile>classbpp_1_1DuplicateFilterMafIterator.html</anchorfile>
+      <anchor>aa77d33c5bd29147e3fd25613eb73d34d</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::string</type>
+      <name>ref_</name>
+      <anchorfile>classbpp_1_1DuplicateFilterMafIterator.html</anchorfile>
+      <anchor>a671adb17aebd9816cef252161db42f95</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::map< std::string, std::map< char, std::map< size_t, std::map< size_t, size_t > > > ></type>
+      <name>blocks_</name>
+      <anchorfile>classbpp_1_1DuplicateFilterMafIterator.html</anchorfile>
+      <anchor>ab55e2427e8e4bca6d4ddf0b2c1d77772</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::EntropyFilterMafIterator</name>
+    <filename>classbpp_1_1EntropyFilterMafIterator.html</filename>
+    <base>bpp::AbstractFilterMafIterator</base>
+    <base virtualness="virtual">bpp::MafTrashIterator</base>
+    <member kind="function">
+      <type></type>
+      <name>EntropyFilterMafIterator</name>
+      <anchorfile>classbpp_1_1EntropyFilterMafIterator.html</anchorfile>
+      <anchor>a93fce01b437cf189d0d2a760544c1557</anchor>
+      <arglist>(MafIterator *iterator, const std::vector< std::string > &species, unsigned int windowSize, unsigned int step, double maxEnt, unsigned int maxPos, bool keepTrashedBlocks, bool missingAsGap, bool ignoreGaps)</arglist>
+    </member>
+    <member kind="function">
+      <type>MafBlock *</type>
+      <name>nextRemovedBlock</name>
+      <anchorfile>classbpp_1_1EntropyFilterMafIterator.html</anchorfile>
+      <anchor>a7f9c77062b219fe386782f3fbc556950</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>MafBlock *</type>
+      <name>analyseCurrentBlock_</name>
+      <anchorfile>classbpp_1_1EntropyFilterMafIterator.html</anchorfile>
+      <anchor>a5c827d45eba78fae15cd7402223ab09d</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::vector< std::string ></type>
+      <name>species_</name>
+      <anchorfile>classbpp_1_1EntropyFilterMafIterator.html</anchorfile>
+      <anchor>a56324d9c8e3c27402868c5d080262557</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>unsigned int</type>
+      <name>windowSize_</name>
+      <anchorfile>classbpp_1_1EntropyFilterMafIterator.html</anchorfile>
+      <anchor>ac9465d815f54f8eb6944c2a9db05c0c6</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>unsigned int</type>
+      <name>step_</name>
+      <anchorfile>classbpp_1_1EntropyFilterMafIterator.html</anchorfile>
+      <anchor>a4d7e99a6f8677a0f7b7d2ad43a7402d8</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>double</type>
+      <name>maxEnt_</name>
+      <anchorfile>classbpp_1_1EntropyFilterMafIterator.html</anchorfile>
+      <anchor>a33b8e125bf87b379f52738cb591b6d95</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>unsigned int</type>
+      <name>maxPos_</name>
+      <anchorfile>classbpp_1_1EntropyFilterMafIterator.html</anchorfile>
+      <anchor>a712f9a0986f70be1509abd0d44b4dfa9</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::deque< MafBlock * ></type>
+      <name>blockBuffer_</name>
+      <anchorfile>classbpp_1_1EntropyFilterMafIterator.html</anchorfile>
+      <anchor>ab6e27d2373950ccdc30c5a0ab9daeb18</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::deque< MafBlock * ></type>
+      <name>trashBuffer_</name>
+      <anchorfile>classbpp_1_1EntropyFilterMafIterator.html</anchorfile>
+      <anchor>a0df98e22f973df32e7af79f3fb957b44</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::deque< unsigned int ></type>
+      <name>window_</name>
+      <anchorfile>classbpp_1_1EntropyFilterMafIterator.html</anchorfile>
+      <anchor>a51146e1abb7f06f86cc78651d004e5dd</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>bool</type>
+      <name>keepTrashedBlocks_</name>
+      <anchorfile>classbpp_1_1EntropyFilterMafIterator.html</anchorfile>
+      <anchor>a1236c31179002df570bab9dc549bc7f2</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>bool</type>
+      <name>missingAsGap_</name>
+      <anchorfile>classbpp_1_1EntropyFilterMafIterator.html</anchorfile>
+      <anchor>a802d842b687b193c0fe648baf73a68b0</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>bool</type>
+      <name>ignoreGaps_</name>
+      <anchorfile>classbpp_1_1EntropyFilterMafIterator.html</anchorfile>
+      <anchor>a89981c1c5182f3b6460d7fa56c9c5d66</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::FeatureExtractor</name>
+    <filename>classbpp_1_1FeatureExtractor.html</filename>
+    <base>bpp::AbstractFilterMafIterator</base>
+    <member kind="function">
+      <type></type>
+      <name>FeatureExtractor</name>
+      <anchorfile>classbpp_1_1FeatureExtractor.html</anchorfile>
+      <anchor>a50fa28564894b96042e4c3621774a8b8</anchor>
+      <arglist>(MafIterator *iterator, const std::string &refSpecies, const SequenceFeatureSet &features, bool complete=false, bool ignoreStrand=false)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>MafBlock *</type>
+      <name>analyseCurrentBlock_</name>
+      <anchorfile>classbpp_1_1FeatureExtractor.html</anchorfile>
+      <anchor>af36e1109483526c7c1acf83981ce4b97</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::string</type>
+      <name>refSpecies_</name>
+      <anchorfile>classbpp_1_1FeatureExtractor.html</anchorfile>
+      <anchor>a681e3fc83f3b5ea1d7bd661a56269787</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>bool</type>
+      <name>completeOnly_</name>
+      <anchorfile>classbpp_1_1FeatureExtractor.html</anchorfile>
+      <anchor>a822de737215c3154e796110773fc606b</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>bool</type>
+      <name>ignoreStrand_</name>
+      <anchorfile>classbpp_1_1FeatureExtractor.html</anchorfile>
+      <anchor>a6908b991b3e1be5c360890ced35be2d4</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::deque< MafBlock * ></type>
+      <name>blockBuffer_</name>
+      <anchorfile>classbpp_1_1FeatureExtractor.html</anchorfile>
+      <anchor>acce583418797392da14672d80124f430</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::map< std::string, RangeSet< size_t > ></type>
+      <name>ranges_</name>
+      <anchorfile>classbpp_1_1FeatureExtractor.html</anchorfile>
+      <anchor>a03bd69422d929bf366a40597b7c48b69</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::FeatureFilterMafIterator</name>
+    <filename>classbpp_1_1FeatureFilterMafIterator.html</filename>
+    <base>bpp::AbstractFilterMafIterator</base>
+    <base>bpp::MafTrashIterator</base>
+    <member kind="function">
+      <type></type>
+      <name>FeatureFilterMafIterator</name>
+      <anchorfile>classbpp_1_1FeatureFilterMafIterator.html</anchorfile>
+      <anchor>a92aca33669a2ba69b6336d570eb0077e</anchor>
+      <arglist>(MafIterator *iterator, const std::string &refSpecies, const SequenceFeatureSet &features, bool keepTrashedBlocks)</arglist>
+    </member>
+    <member kind="function">
+      <type>MafBlock *</type>
+      <name>nextRemovedBlock</name>
+      <anchorfile>classbpp_1_1FeatureFilterMafIterator.html</anchorfile>
+      <anchor>adaf99e7c9f135b7e5b80b845708cc976</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>MafBlock *</type>
+      <name>analyseCurrentBlock_</name>
+      <anchorfile>classbpp_1_1FeatureFilterMafIterator.html</anchorfile>
+      <anchor>a91c603d3dcc261fb24765d8bcdfcffe9</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::string</type>
+      <name>refSpecies_</name>
+      <anchorfile>classbpp_1_1FeatureFilterMafIterator.html</anchorfile>
+      <anchor>a69eaa99425664d448d3ffa4fd83660fd</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::deque< MafBlock * ></type>
+      <name>blockBuffer_</name>
+      <anchorfile>classbpp_1_1FeatureFilterMafIterator.html</anchorfile>
+      <anchor>a65174928ff4120452e5f1c48695018ac</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::deque< MafBlock * ></type>
+      <name>trashBuffer_</name>
+      <anchorfile>classbpp_1_1FeatureFilterMafIterator.html</anchorfile>
+      <anchor>afcbec374d5de10e0957579cbcfb2d278</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>bool</type>
+      <name>keepTrashedBlocks_</name>
+      <anchorfile>classbpp_1_1FeatureFilterMafIterator.html</anchorfile>
+      <anchor>a29524e4a2489fc0de99b75a2c6fe3a51</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::map< std::string, MultiRange< size_t > ></type>
+      <name>ranges_</name>
+      <anchorfile>classbpp_1_1FeatureFilterMafIterator.html</anchorfile>
+      <anchor>a52f0ff249b4694bb6352ac27801bc42f</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::FullGapFilterMafIterator</name>
+    <filename>classbpp_1_1FullGapFilterMafIterator.html</filename>
+    <base>bpp::AbstractFilterMafIterator</base>
+    <member kind="function">
+      <type></type>
+      <name>FullGapFilterMafIterator</name>
+      <anchorfile>classbpp_1_1FullGapFilterMafIterator.html</anchorfile>
+      <anchor>a7e8c504dd3205e9a0ce21236e665d0ae</anchor>
+      <arglist>(MafIterator *iterator, const std::vector< std::string > &species)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>MafBlock *</type>
+      <name>analyseCurrentBlock_</name>
+      <anchorfile>classbpp_1_1FullGapFilterMafIterator.html</anchorfile>
+      <anchor>a10cb42b446d944f90bdc38dc3b649c4f</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::vector< std::string ></type>
+      <name>species_</name>
+      <anchorfile>classbpp_1_1FullGapFilterMafIterator.html</anchorfile>
+      <anchor>ac63cb122ead50f6cc50dabfc171c6991</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::IterationListener</name>
+    <filename>classbpp_1_1IterationListener.html</filename>
+    <member kind="function" virtualness="virtual">
+      <type>virtual</type>
+      <name>~IterationListener</name>
+      <anchorfile>classbpp_1_1IterationListener.html</anchorfile>
+      <anchor>ac1939c7253ef1bd1d744b85941c8a297</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual void</type>
+      <name>iterationStarts</name>
+      <anchorfile>classbpp_1_1IterationListener.html</anchorfile>
+      <anchor>ad5d837eb71b6b2f4d6f2a1da83c674de</anchor>
+      <arglist>()=0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual void</type>
+      <name>iterationMoves</name>
+      <anchorfile>classbpp_1_1IterationListener.html</anchorfile>
+      <anchor>aa21e2e9b0acbc9f59429c2623ca1b9a1</anchor>
+      <arglist>(const MafBlock &currentBlock)=0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual void</type>
+      <name>iterationStops</name>
+      <anchorfile>classbpp_1_1IterationListener.html</anchorfile>
+      <anchor>a2d4ad3a417786b4b25120a612ae6449d</anchor>
+      <arglist>()=0</arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::AbstractStatisticsOutputIterationListener</name>
+    <filename>classbpp_1_1AbstractStatisticsOutputIterationListener.html</filename>
+    <base virtualness="virtual">bpp::IterationListener</base>
+    <member kind="function">
+      <type></type>
+      <name>AbstractStatisticsOutputIterationListener</name>
+      <anchorfile>classbpp_1_1AbstractStatisticsOutputIterationListener.html</anchorfile>
+      <anchor>a9bb6fd60ad7312ab52d833e3b08e23c7</anchor>
+      <arglist>(SequenceStatisticsMafIterator *iterator)</arglist>
+    </member>
+    <member kind="function">
+      <type></type>
+      <name>AbstractStatisticsOutputIterationListener</name>
+      <anchorfile>classbpp_1_1AbstractStatisticsOutputIterationListener.html</anchorfile>
+      <anchor>ab0e49c7167b586381e90c6b56539a27a</anchor>
+      <arglist>(const AbstractStatisticsOutputIterationListener &listener)</arglist>
+    </member>
+    <member kind="function">
+      <type>AbstractStatisticsOutputIterationListener &</type>
+      <name>operator=</name>
+      <anchorfile>classbpp_1_1AbstractStatisticsOutputIterationListener.html</anchorfile>
+      <anchor>a36d935f57c5f12f74b0261997bd28daa</anchor>
+      <arglist>(const AbstractStatisticsOutputIterationListener &listener)</arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual</type>
+      <name>~AbstractStatisticsOutputIterationListener</name>
+      <anchorfile>classbpp_1_1AbstractStatisticsOutputIterationListener.html</anchorfile>
+      <anchor>a92bf3dcce4d658623bd8b58e3e9e4350</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="variable" protection="protected">
+      <type>SequenceStatisticsMafIterator *</type>
+      <name>statsIterator_</name>
+      <anchorfile>classbpp_1_1AbstractStatisticsOutputIterationListener.html</anchorfile>
+      <anchor>af479520b0736101b73d75f0076e53cd3</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::CsvStatisticsOutputIterationListener</name>
+    <filename>classbpp_1_1CsvStatisticsOutputIterationListener.html</filename>
+    <base>bpp::AbstractStatisticsOutputIterationListener</base>
+    <member kind="function">
+      <type></type>
+      <name>CsvStatisticsOutputIterationListener</name>
+      <anchorfile>classbpp_1_1CsvStatisticsOutputIterationListener.html</anchorfile>
+      <anchor>a06b59b97ff38f56204228d96cfa637b9</anchor>
+      <arglist>(SequenceStatisticsMafIterator *iterator, const std::string &refSpecies, OutputStream *output, const std::string &sep="\t")</arglist>
+    </member>
+    <member kind="function">
+      <type></type>
+      <name>CsvStatisticsOutputIterationListener</name>
+      <anchorfile>classbpp_1_1CsvStatisticsOutputIterationListener.html</anchorfile>
+      <anchor>a26f59fcb5e87d0bd4816572209db11f9</anchor>
+      <arglist>(const CsvStatisticsOutputIterationListener &listener)</arglist>
+    </member>
+    <member kind="function">
+      <type>CsvStatisticsOutputIterationListener &</type>
+      <name>operator=</name>
+      <anchorfile>classbpp_1_1CsvStatisticsOutputIterationListener.html</anchorfile>
+      <anchor>ae6f6d4b98c94092258795b15005c40d3</anchor>
+      <arglist>(const CsvStatisticsOutputIterationListener &listener)</arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual</type>
+      <name>~CsvStatisticsOutputIterationListener</name>
+      <anchorfile>classbpp_1_1CsvStatisticsOutputIterationListener.html</anchorfile>
+      <anchor>a906f84f228ee54493b0c660aaa77599d</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual void</type>
+      <name>iterationStarts</name>
+      <anchorfile>classbpp_1_1CsvStatisticsOutputIterationListener.html</anchorfile>
+      <anchor>a557f80a0f9b7d2eaf2911e0ddc8f3558</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual void</type>
+      <name>iterationMoves</name>
+      <anchorfile>classbpp_1_1CsvStatisticsOutputIterationListener.html</anchorfile>
+      <anchor>ad524d3447493464f968878e649a8e2e9</anchor>
+      <arglist>(const MafBlock &currentBlock)</arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual void</type>
+      <name>iterationStops</name>
+      <anchorfile>classbpp_1_1CsvStatisticsOutputIterationListener.html</anchorfile>
+      <anchor>a99b75e6decff6d5c9dbef6c83c618705</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>OutputStream *</type>
+      <name>output_</name>
+      <anchorfile>classbpp_1_1CsvStatisticsOutputIterationListener.html</anchorfile>
+      <anchor>a0ec4c2f04700d35f73f86ec2b05fd14f</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::string</type>
+      <name>sep_</name>
+      <anchorfile>classbpp_1_1CsvStatisticsOutputIterationListener.html</anchorfile>
+      <anchor>a7613da40c31d3a1577c296a81f424de9</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::string</type>
+      <name>refSpecies_</name>
+      <anchorfile>classbpp_1_1CsvStatisticsOutputIterationListener.html</anchorfile>
+      <anchor>a703f6ee372824c334f2eed8fd53dd004</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::MafBlock</name>
+    <filename>classbpp_1_1MafBlock.html</filename>
+    <base virtualness="virtual">bpp::Clonable</base>
+    <member kind="function">
+      <type></type>
+      <name>MafBlock</name>
+      <anchorfile>classbpp_1_1MafBlock.html</anchorfile>
+      <anchor>a058642cef3fefccaa37ad94c4366a888</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function">
+      <type></type>
+      <name>MafBlock</name>
+      <anchorfile>classbpp_1_1MafBlock.html</anchorfile>
+      <anchor>ae2bd5c7fdb9585536fe0d1851b7d05a6</anchor>
+      <arglist>(const MafBlock &block)</arglist>
+    </member>
+    <member kind="function">
+      <type>MafBlock &</type>
+      <name>operator=</name>
+      <anchorfile>classbpp_1_1MafBlock.html</anchorfile>
+      <anchor>a10ce330f5e6192c1f1dde10469568bab</anchor>
+      <arglist>(const MafBlock &block)</arglist>
+    </member>
+    <member kind="function">
+      <type>MafBlock *</type>
+      <name>clone</name>
+      <anchorfile>classbpp_1_1MafBlock.html</anchorfile>
+      <anchor>a39812e3de82ef1c7d5a68c67d627ac96</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual</type>
+      <name>~MafBlock</name>
+      <anchorfile>classbpp_1_1MafBlock.html</anchorfile>
+      <anchor>a9334610bb793811865e8b1657181e7cd</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>setScore</name>
+      <anchorfile>classbpp_1_1MafBlock.html</anchorfile>
+      <anchor>a2bf88e7b9ebe30f2b8388006b71ed424</anchor>
+      <arglist>(double score)</arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>setPass</name>
+      <anchorfile>classbpp_1_1MafBlock.html</anchorfile>
+      <anchor>a3fd86ff8e8216ff3d60483a483018605</anchor>
+      <arglist>(unsigned int pass)</arglist>
+    </member>
+    <member kind="function">
+      <type>double</type>
+      <name>getScore</name>
+      <anchorfile>classbpp_1_1MafBlock.html</anchorfile>
+      <anchor>af19c3566a11f04a49adfb30a30b8941f</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>unsigned int</type>
+      <name>getPass</name>
+      <anchorfile>classbpp_1_1MafBlock.html</anchorfile>
+      <anchor>acccf24c02a5de3496efad036c1173bba</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>AlignedSequenceContainer &</type>
+      <name>getAlignment</name>
+      <anchorfile>classbpp_1_1MafBlock.html</anchorfile>
+      <anchor>a9dc1711c5607219d03bc3470ad70c91e</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function">
+      <type>const AlignedSequenceContainer &</type>
+      <name>getAlignment</name>
+      <anchorfile>classbpp_1_1MafBlock.html</anchorfile>
+      <anchor>a78ca490c256ff0eb652eb35cb2dc016d</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>size_t</type>
+      <name>getNumberOfSequences</name>
+      <anchorfile>classbpp_1_1MafBlock.html</anchorfile>
+      <anchor>af2520910770075b2f938a3481a115dd2</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>size_t</type>
+      <name>getNumberOfSites</name>
+      <anchorfile>classbpp_1_1MafBlock.html</anchorfile>
+      <anchor>a84d6c4b723e3a4cb6f6b981bd0f1f997</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>addSequence</name>
+      <anchorfile>classbpp_1_1MafBlock.html</anchorfile>
+      <anchor>a9e5084810c7463855698ef5148a274ad</anchor>
+      <arglist>(const MafSequence &sequence)</arglist>
+    </member>
+    <member kind="function">
+      <type>bool</type>
+      <name>hasSequence</name>
+      <anchorfile>classbpp_1_1MafBlock.html</anchorfile>
+      <anchor>a47b11e4d976f20d96641ecc00a183c4b</anchor>
+      <arglist>(const std::string &name) const </arglist>
+    </member>
+    <member kind="function">
+      <type>const MafSequence &</type>
+      <name>getSequence</name>
+      <anchorfile>classbpp_1_1MafBlock.html</anchorfile>
+      <anchor>a9bcfc8036897c9a0a6cafe2031582645</anchor>
+      <arglist>(const std::string &name) const </arglist>
+    </member>
+    <member kind="function">
+      <type>const MafSequence &</type>
+      <name>getSequence</name>
+      <anchorfile>classbpp_1_1MafBlock.html</anchorfile>
+      <anchor>abed0e86dd2b81c767d96b5e37be2beb1</anchor>
+      <arglist>(size_t i) const </arglist>
+    </member>
+    <member kind="function">
+      <type>bool</type>
+      <name>hasSequenceForSpecies</name>
+      <anchorfile>classbpp_1_1MafBlock.html</anchorfile>
+      <anchor>a34f41c2e154a97b0e62a3fe429f09b8f</anchor>
+      <arglist>(const std::string &species) const </arglist>
+    </member>
+    <member kind="function">
+      <type>const MafSequence &</type>
+      <name>getSequenceForSpecies</name>
+      <anchorfile>classbpp_1_1MafBlock.html</anchorfile>
+      <anchor>a5c05243dba43f35ceefad861a1da8054</anchor>
+      <arglist>(const std::string &species) const </arglist>
+    </member>
+    <member kind="function">
+      <type>std::vector< const MafSequence * ></type>
+      <name>getSequencesForSpecies</name>
+      <anchorfile>classbpp_1_1MafBlock.html</anchorfile>
+      <anchor>a487ca618040aa36aa0fe216d8a6d6074</anchor>
+      <arglist>(const std::string &species) const </arglist>
+    </member>
+    <member kind="function">
+      <type>std::vector< std::string ></type>
+      <name>getSpeciesList</name>
+      <anchorfile>classbpp_1_1MafBlock.html</anchorfile>
+      <anchor>a7b75cbad1316162a4b8ab32cd6e21e4f</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>removeCoordinatesFromSequence</name>
+      <anchorfile>classbpp_1_1MafBlock.html</anchorfile>
+      <anchor>aa2f659d1b13ee936e1d0934910ab8fc1</anchor>
+      <arglist>(size_t i)</arglist>
+    </member>
+    <member kind="function">
+      <type>std::string</type>
+      <name>getDescription</name>
+      <anchorfile>classbpp_1_1MafBlock.html</anchorfile>
+      <anchor>ab06518e567d9c3c067219a93b12d9d12</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>bool</type>
+      <name>hasProperty</name>
+      <anchorfile>classbpp_1_1MafBlock.html</anchorfile>
+      <anchor>ab96271a832032f3c389e334b339a1891</anchor>
+      <arglist>(const std::string &property) const </arglist>
+    </member>
+    <member kind="function">
+      <type>const Clonable &</type>
+      <name>getProperty</name>
+      <anchorfile>classbpp_1_1MafBlock.html</anchorfile>
+      <anchor>a5503e3be030a789f0842a9dea4b9341f</anchor>
+      <arglist>(const std::string &property) const </arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>deleteProperty</name>
+      <anchorfile>classbpp_1_1MafBlock.html</anchorfile>
+      <anchor>ac79eb4dff19f8da3c4bc1b79d5edd268</anchor>
+      <arglist>(const std::string &property)</arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>setProperty</name>
+      <anchorfile>classbpp_1_1MafBlock.html</anchorfile>
+      <anchor>adef4e3b6e8ba60f6ce60c7dfc87ec947</anchor>
+      <arglist>(const std::string &property, Clonable *data)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>void</type>
+      <name>deleteProperties_</name>
+      <anchorfile>classbpp_1_1MafBlock.html</anchorfile>
+      <anchor>a3a80859e3ee556ac4625a03cdcd5b051</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>double</type>
+      <name>score_</name>
+      <anchorfile>classbpp_1_1MafBlock.html</anchorfile>
+      <anchor>a8933ca18eb8af3a147c3c5f400deb0d4</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>unsigned int</type>
+      <name>pass_</name>
+      <anchorfile>classbpp_1_1MafBlock.html</anchorfile>
+      <anchor>aadf280962ad263acc173d7c92140429a</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>AlignedSequenceContainer</type>
+      <name>alignment_</name>
+      <anchorfile>classbpp_1_1MafBlock.html</anchorfile>
+      <anchor>ae35510d38dcf394363902d5bdbbba31e</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::map< std::string, Clonable * ></type>
+      <name>properties_</name>
+      <anchorfile>classbpp_1_1MafBlock.html</anchorfile>
+      <anchor>a8e291b1a01e3111a22e563456434ebe1</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::MafIterator</name>
+    <filename>classbpp_1_1MafIterator.html</filename>
+    <member kind="function" virtualness="virtual">
+      <type>virtual</type>
+      <name>~MafIterator</name>
+      <anchorfile>classbpp_1_1MafIterator.html</anchorfile>
+      <anchor>a4e861e99b1eb477c26048e720dee552a</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual MafBlock *</type>
+      <name>nextBlock</name>
+      <anchorfile>classbpp_1_1MafIterator.html</anchorfile>
+      <anchor>a655e98cf03ed6fbf8c0526c46d50d1b1</anchor>
+      <arglist>()=0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual bool</type>
+      <name>isVerbose</name>
+      <anchorfile>classbpp_1_1MafIterator.html</anchorfile>
+      <anchor>a1ae26b9b0917ad3d1af03c7afea40c95</anchor>
+      <arglist>() const =0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual void</type>
+      <name>setVerbose</name>
+      <anchorfile>classbpp_1_1MafIterator.html</anchorfile>
+      <anchor>a5470b0384c03db196c128d5c8c742d37</anchor>
+      <arglist>(bool yn)=0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual void</type>
+      <name>addIterationListener</name>
+      <anchorfile>classbpp_1_1MafIterator.html</anchorfile>
+      <anchor>a36a997ed134b35f1cddd2258d051cd13</anchor>
+      <arglist>(IterationListener *listener)=0</arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::AbstractMafIterator</name>
+    <filename>classbpp_1_1AbstractMafIterator.html</filename>
+    <base virtualness="virtual">bpp::MafIterator</base>
+    <member kind="function">
+      <type></type>
+      <name>AbstractMafIterator</name>
+      <anchorfile>classbpp_1_1AbstractMafIterator.html</anchorfile>
+      <anchor>ac1f940e0046a3b801cd4205236645fe8</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual</type>
+      <name>~AbstractMafIterator</name>
+      <anchorfile>classbpp_1_1AbstractMafIterator.html</anchorfile>
+      <anchor>a6957423e380a47d40452a800cbdccca0</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function" protection="protected" virtualness="pure">
+      <type>virtual MafBlock *</type>
+      <name>analyseCurrentBlock_</name>
+      <anchorfile>classbpp_1_1AbstractMafIterator.html</anchorfile>
+      <anchor>ae9f8b210df6b5c086b5a827b8c95361c</anchor>
+      <arglist>()=0</arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::MafTrashIterator</name>
+    <filename>classbpp_1_1MafTrashIterator.html</filename>
+    <member kind="function" virtualness="virtual">
+      <type>virtual</type>
+      <name>~MafTrashIterator</name>
+      <anchorfile>classbpp_1_1MafTrashIterator.html</anchorfile>
+      <anchor>a6143ab67178dda679bf0c118b3a2faa8</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual MafBlock *</type>
+      <name>nextRemovedBlock</name>
+      <anchorfile>classbpp_1_1MafTrashIterator.html</anchorfile>
+      <anchor>a312bfc8541e3c549132d43b74609a21d</anchor>
+      <arglist>()=0</arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::AbstractFilterMafIterator</name>
+    <filename>classbpp_1_1AbstractFilterMafIterator.html</filename>
+    <base>bpp::AbstractMafIterator</base>
+    <member kind="function">
+      <type></type>
+      <name>AbstractFilterMafIterator</name>
+      <anchorfile>classbpp_1_1AbstractFilterMafIterator.html</anchorfile>
+      <anchor>a30ab31aa8f5511572193678ca82faec5</anchor>
+      <arglist>(MafIterator *iterator)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type></type>
+      <name>AbstractFilterMafIterator</name>
+      <anchorfile>classbpp_1_1AbstractFilterMafIterator.html</anchorfile>
+      <anchor>a037244f472529ba57574e6f0ba988564</anchor>
+      <arglist>(const AbstractFilterMafIterator &it)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>AbstractFilterMafIterator &</type>
+      <name>operator=</name>
+      <anchorfile>classbpp_1_1AbstractFilterMafIterator.html</anchorfile>
+      <anchor>adef511408306fcaa40295771e4399fa1</anchor>
+      <arglist>(const AbstractFilterMafIterator &it)</arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::TrashIteratorAdapter</name>
+    <filename>classbpp_1_1TrashIteratorAdapter.html</filename>
+    <base>bpp::AbstractMafIterator</base>
+    <member kind="function">
+      <type></type>
+      <name>TrashIteratorAdapter</name>
+      <anchorfile>classbpp_1_1TrashIteratorAdapter.html</anchorfile>
+      <anchor>a6022e1cc88fa0fe4ef505b44c0d53254</anchor>
+      <arglist>(MafTrashIterator *iterator)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type></type>
+      <name>TrashIteratorAdapter</name>
+      <anchorfile>classbpp_1_1TrashIteratorAdapter.html</anchorfile>
+      <anchor>a86aa2583396ab3af0da05b9a439cb25f</anchor>
+      <arglist>(const TrashIteratorAdapter &iterator)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>TrashIteratorAdapter &</type>
+      <name>operator=</name>
+      <anchorfile>classbpp_1_1TrashIteratorAdapter.html</anchorfile>
+      <anchor>a969d3a9a7ac94941d431f1c701714904</anchor>
+      <arglist>(const TrashIteratorAdapter &iterator)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>MafBlock *</type>
+      <name>analyseCurrentBlock_</name>
+      <anchorfile>classbpp_1_1TrashIteratorAdapter.html</anchorfile>
+      <anchor>a238166a135b31125d7070cb04da2b9df</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>MafTrashIterator *</type>
+      <name>iterator_</name>
+      <anchorfile>classbpp_1_1TrashIteratorAdapter.html</anchorfile>
+      <anchor>a8c1dcda5c92c2ea71e0102282ca659e2</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::MafIteratorSynchronizer</name>
+    <filename>classbpp_1_1MafIteratorSynchronizer.html</filename>
+    <base>bpp::AbstractFilterMafIterator</base>
+    <member kind="function">
+      <type></type>
+      <name>MafIteratorSynchronizer</name>
+      <anchorfile>classbpp_1_1MafIteratorSynchronizer.html</anchorfile>
+      <anchor>ad54cee7992656809d580e5a4aee1a50d</anchor>
+      <arglist>(MafIterator *primaryIterator, MafIterator *secondaryIterator)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type></type>
+      <name>MafIteratorSynchronizer</name>
+      <anchorfile>classbpp_1_1MafIteratorSynchronizer.html</anchorfile>
+      <anchor>abe80193f0bf6d6494eca2be162438eb9</anchor>
+      <arglist>(const MafIteratorSynchronizer &iterator)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>MafIteratorSynchronizer &</type>
+      <name>operator=</name>
+      <anchorfile>classbpp_1_1MafIteratorSynchronizer.html</anchorfile>
+      <anchor>a32cd3997cdd23956c0a0b82cf0b63eae</anchor>
+      <arglist>(const MafIteratorSynchronizer &iterator)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>MafBlock *</type>
+      <name>analyseCurrentBlock_</name>
+      <anchorfile>classbpp_1_1MafIteratorSynchronizer.html</anchorfile>
+      <anchor>a4e8e7c63d9fbd4327b1b1e90a43f7c84</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>MafIterator *</type>
+      <name>secondaryIterator_</name>
+      <anchorfile>classbpp_1_1MafIteratorSynchronizer.html</anchorfile>
+      <anchor>a282a9eb9aeba8d0a65d5dc1657750c8c</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::MafParser</name>
+    <filename>classbpp_1_1MafParser.html</filename>
+    <base>bpp::AbstractMafIterator</base>
+    <member kind="function">
+      <type></type>
+      <name>MafParser</name>
+      <anchorfile>classbpp_1_1MafParser.html</anchorfile>
+      <anchor>a14e9d405c9b4cef99e5d5ae9ab0777c6</anchor>
+      <arglist>(std::istream *stream, bool parseMask=false)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type></type>
+      <name>MafParser</name>
+      <anchorfile>classbpp_1_1MafParser.html</anchorfile>
+      <anchor>a4f5198e6763fd193aa71f161c4715732</anchor>
+      <arglist>(const MafParser &maf)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>MafParser &</type>
+      <name>operator=</name>
+      <anchorfile>classbpp_1_1MafParser.html</anchorfile>
+      <anchor>a3c9ed7904358f2296d39cfbe3afd3e6e</anchor>
+      <arglist>(const MafParser &maf)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>MafBlock *</type>
+      <name>analyseCurrentBlock_</name>
+      <anchorfile>classbpp_1_1MafParser.html</anchorfile>
+      <anchor>ab01faa2e376ee8ae4ce141095c86985e</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::istream *</type>
+      <name>stream_</name>
+      <anchorfile>classbpp_1_1MafParser.html</anchorfile>
+      <anchor>a5cdd478a1d5007c6b3499b58b0967d87</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>bool</type>
+      <name>mask_</name>
+      <anchorfile>classbpp_1_1MafParser.html</anchorfile>
+      <anchor>a70e8849ebeba3078cd9a188b00fe0b32</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>CaseMaskedAlphabet</type>
+      <name>cmAlphabet_</name>
+      <anchorfile>classbpp_1_1MafParser.html</anchorfile>
+      <anchor>a93bc5f1150db05f89e78137b4fd44e12</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>bool</type>
+      <name>firstBlock_</name>
+      <anchorfile>classbpp_1_1MafParser.html</anchorfile>
+      <anchor>a3de366bc5cc5d3f1f4a74d5c1d189233</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::MafSequence</name>
+    <filename>classbpp_1_1MafSequence.html</filename>
+    <base>bpp::SequenceWithAnnotation</base>
+    <member kind="function">
+      <type></type>
+      <name>MafSequence</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>a2ba0434d225d4f64ed9b8bbd682851e4</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function">
+      <type></type>
+      <name>MafSequence</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>a1caee031cd31f877d7f5b745c723c426</anchor>
+      <arglist>(const std::string &name, const std::string &sequence, bool parseName=true)</arglist>
+    </member>
+    <member kind="function">
+      <type></type>
+      <name>MafSequence</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>a59e49f8ee1e33978321db694a68189e8</anchor>
+      <arglist>(const std::string &name, const std::string &sequence, size_t begin, char strand, size_t srcSize, bool parseName=true)</arglist>
+    </member>
+    <member kind="function">
+      <type>MafSequence *</type>
+      <name>clone</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>af062448b1f27f40d4e717a22e5f3da87</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type></type>
+      <name>~MafSequence</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>ab52fd743552fcc5792c0473240a7d19b</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function">
+      <type>bool</type>
+      <name>hasCoordinates</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>a80bace5e90262a758ccdb475312b20b8</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>removeCoordinates</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>a62f6259d2f358c6bcf6f3896c49f6432</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function">
+      <type>size_t</type>
+      <name>start</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>a19498c998794f0526ab9133b234b1289</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>size_t</type>
+      <name>stop</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>a4e3165c4d25212c4b919ac85c7f935af</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>Range< size_t ></type>
+      <name>getRange</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>a42266313a1cdf574d408e09d0b292d42</anchor>
+      <arglist>(bool origin=true) const </arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>setName</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>a134552d34605984e4cb566e9e992f17b</anchor>
+      <arglist>(const std::string &name)</arglist>
+    </member>
+    <member kind="function">
+      <type>const std::string &</type>
+      <name>getSpecies</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>ac81b6bca2f3d2bfe0d12757b85ed3de0</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>const std::string &</type>
+      <name>getChromosome</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>a9d58952d748526cd6731186ce07b3b4e</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>char</type>
+      <name>getStrand</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>ae211f326bef4d97074b1cc9e0e5235d9</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>size_t</type>
+      <name>getGenomicSize</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>a4eec97ae3a93ab906b03053382b0bf05</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>size_t</type>
+      <name>getSrcSize</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>a5740c6b3755d61f5fcac84151be9ae70</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>setStart</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>a5a55341f0e99a0e057b1c9e5a16ac63d</anchor>
+      <arglist>(size_t begin)</arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>setChromosome</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>a0d1711e2be7ed45aeba81f34c2c2aa9f</anchor>
+      <arglist>(const std::string &chr)</arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>setSpecies</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>adebcf474b25fdeece5df589211a32cf9</anchor>
+      <arglist>(const std::string &species)</arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>setStrand</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>a69a879878bd985aade72a9e06ed531de</anchor>
+      <arglist>(char s)</arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>setSrcSize</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>a4944a59662f180a39005e3552fe7b3f4</anchor>
+      <arglist>(size_t srcSize)</arglist>
+    </member>
+    <member kind="function">
+      <type>std::string</type>
+      <name>getDescription</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>a39a70085338246a6719f7874700107f6</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>MafSequence *</type>
+      <name>subSequence</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>ab5a26a37180cffffe1758a15f6043bbc</anchor>
+      <arglist>(size_t startAt, size_t length) const </arglist>
+    </member>
+    <member kind="function" static="yes">
+      <type>static void</type>
+      <name>splitNameIntoSpeciesAndChromosome</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>a7fa51caf815a9fb4f3e1c4c6d8b4d90a</anchor>
+      <arglist>(const std::string &name, std::string &species, std::string &chr)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>void</type>
+      <name>beforeSequenceChanged</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>a6ccf166612181b5ca550caa04647b65b</anchor>
+      <arglist>(const SymbolListEditionEvent &event)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>void</type>
+      <name>afterSequenceChanged</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>abac31fbcc1564765a807ce18b4092ea9</anchor>
+      <arglist>(const SymbolListEditionEvent &event)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>void</type>
+      <name>beforeSequenceInserted</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>aa98f498ab72626fa359bc2dbff5406af</anchor>
+      <arglist>(const SymbolListInsertionEvent &event)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>void</type>
+      <name>afterSequenceInserted</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>ab97eece6ed1fe3b9717ec32839ff9a5c</anchor>
+      <arglist>(const SymbolListInsertionEvent &event)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>void</type>
+      <name>beforeSequenceDeleted</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>a3bc3991435b56c4d04cf82f29079f8f3</anchor>
+      <arglist>(const SymbolListDeletionEvent &event)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>void</type>
+      <name>afterSequenceDeleted</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>a74a3d87c7f29d34325f0368de340418e</anchor>
+      <arglist>(const SymbolListDeletionEvent &event)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>void</type>
+      <name>beforeSequenceSubstituted</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>a0aee40a3f4a537997c73eeca6adc14d6</anchor>
+      <arglist>(const SymbolListSubstitutionEvent &event)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>void</type>
+      <name>afterSequenceSubstituted</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>aa47a8c5b148d40e42e4ad85a79c90a74</anchor>
+      <arglist>(const SymbolListSubstitutionEvent &event)</arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>bool</type>
+      <name>hasCoordinates_</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>a8ac4e06a988b4bdf2859a88fce0c8bc0</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>size_t</type>
+      <name>begin_</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>abecc9851c667fe43afd0cd50f2adad92</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::string</type>
+      <name>species_</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>a97d5ba2ab0e5add5b07ed7b73c2bff31</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::string</type>
+      <name>chromosome_</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>ab0980c4e3ba5454e6ea144ed833dd545</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>char</type>
+      <name>strand_</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>a98fa7d7ee81f35baa5574837e0cc79cf</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>size_t</type>
+      <name>size_</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>a6225e191b95bef2c185b72e74f7170a0</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>size_t</type>
+      <name>srcSize_</name>
+      <anchorfile>classbpp_1_1MafSequence.html</anchorfile>
+      <anchor>abe458a4628372b53c02d88d0101dcf58</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::MafStatisticsResult</name>
+    <filename>classbpp_1_1MafStatisticsResult.html</filename>
+    <member kind="function">
+      <type></type>
+      <name>MafStatisticsResult</name>
+      <anchorfile>classbpp_1_1MafStatisticsResult.html</anchorfile>
+      <anchor>a805f685860d87004239d1043216e7f3b</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual</type>
+      <name>~MafStatisticsResult</name>
+      <anchorfile>classbpp_1_1MafStatisticsResult.html</anchorfile>
+      <anchor>aa769e27c1683a4e2d1a1bac9719fd388</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function">
+      <type></type>
+      <name>MafStatisticsResult</name>
+      <anchorfile>classbpp_1_1MafStatisticsResult.html</anchorfile>
+      <anchor>a8015358f69a833b5855ed94f0f9f2cfa</anchor>
+      <arglist>(const MafStatisticsResult &msr)</arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual const BppNumberI &</type>
+      <name>getValue</name>
+      <anchorfile>classbpp_1_1MafStatisticsResult.html</anchorfile>
+      <anchor>a9d73c0f9f40356044979b75976e8f329</anchor>
+      <arglist>(const std::string &tag) const </arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual void</type>
+      <name>setValue</name>
+      <anchorfile>classbpp_1_1MafStatisticsResult.html</anchorfile>
+      <anchor>a6f3e496acb5b85beb787b1b0a3855c0b</anchor>
+      <arglist>(const std::string &tag, double value)</arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual void</type>
+      <name>setValue</name>
+      <anchorfile>classbpp_1_1MafStatisticsResult.html</anchorfile>
+      <anchor>a280f1dacced87ffa52850c0e17ee39e6</anchor>
+      <arglist>(const std::string &tag, int value)</arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual void</type>
+      <name>setValue</name>
+      <anchorfile>classbpp_1_1MafStatisticsResult.html</anchorfile>
+      <anchor>a0683ba6930bca690e060223034147c62</anchor>
+      <arglist>(const std::string &tag, unsigned int value)</arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual bool</type>
+      <name>hasValue</name>
+      <anchorfile>classbpp_1_1MafStatisticsResult.html</anchorfile>
+      <anchor>a5cc994fbd57f04423f8186b2905b54a9</anchor>
+      <arglist>(const std::string &tag) const </arglist>
+    </member>
+    <member kind="function">
+      <type>std::vector< std::string ></type>
+      <name>getAvailableTags</name>
+      <anchorfile>classbpp_1_1MafStatisticsResult.html</anchorfile>
+      <anchor>ab52a414a67f2bde835576d72773cae35</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="variable" protection="protected">
+      <type>std::map< std::string, BppNumberI * ></type>
+      <name>values_</name>
+      <anchorfile>classbpp_1_1MafStatisticsResult.html</anchorfile>
+      <anchor>a284d7b348f475feb21e8acb48b769b2d</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::SimpleMafStatisticsResult</name>
+    <filename>classbpp_1_1SimpleMafStatisticsResult.html</filename>
+    <base virtualness="virtual">bpp::MafStatisticsResult</base>
+    <member kind="function">
+      <type></type>
+      <name>SimpleMafStatisticsResult</name>
+      <anchorfile>classbpp_1_1SimpleMafStatisticsResult.html</anchorfile>
+      <anchor>a0817f2410982bb0fd3a818c034990864</anchor>
+      <arglist>(const std::string &name)</arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual</type>
+      <name>~SimpleMafStatisticsResult</name>
+      <anchorfile>classbpp_1_1SimpleMafStatisticsResult.html</anchorfile>
+      <anchor>a3c2faaf633b4d23c66e59d235728180a</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual const BppNumberI &</type>
+      <name>getValue</name>
+      <anchorfile>classbpp_1_1SimpleMafStatisticsResult.html</anchorfile>
+      <anchor>a39f7aff9f0c81ae4b39eff416632df1c</anchor>
+      <arglist>(const std::string &tag) const </arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual const BppNumberI &</type>
+      <name>getValue</name>
+      <anchorfile>classbpp_1_1SimpleMafStatisticsResult.html</anchorfile>
+      <anchor>a60d3a4a8e4b5f33de60a9cfd93676d4e</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual void</type>
+      <name>setValue</name>
+      <anchorfile>classbpp_1_1SimpleMafStatisticsResult.html</anchorfile>
+      <anchor>ab215d4c3889372bbca9f7a9608f59b18</anchor>
+      <arglist>(const std::string &tag, double value)</arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual void</type>
+      <name>setValue</name>
+      <anchorfile>classbpp_1_1SimpleMafStatisticsResult.html</anchorfile>
+      <anchor>af3ffa3f2695ee951bdfc445aef8f1b57</anchor>
+      <arglist>(const std::string &tag, int value)</arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual void</type>
+      <name>setValue</name>
+      <anchorfile>classbpp_1_1SimpleMafStatisticsResult.html</anchorfile>
+      <anchor>adc979ca660759d2ee0168d674414bd2e</anchor>
+      <arglist>(const std::string &tag, unsigned int value)</arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual void</type>
+      <name>setValue</name>
+      <anchorfile>classbpp_1_1SimpleMafStatisticsResult.html</anchorfile>
+      <anchor>ab6944742ddefc104a419d5cceb22d400</anchor>
+      <arglist>(double value)</arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual void</type>
+      <name>setValue</name>
+      <anchorfile>classbpp_1_1SimpleMafStatisticsResult.html</anchorfile>
+      <anchor>a1ac5ceaaf988852af1698c0ce8d7a234</anchor>
+      <arglist>(int value)</arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual void</type>
+      <name>setValue</name>
+      <anchorfile>classbpp_1_1SimpleMafStatisticsResult.html</anchorfile>
+      <anchor>af23af5173245935a65cd74ac790346bc</anchor>
+      <arglist>(unsigned int value)</arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::string</type>
+      <name>name_</name>
+      <anchorfile>classbpp_1_1SimpleMafStatisticsResult.html</anchorfile>
+      <anchor>ab170c8df5e71bfe063e51da4e9598b55</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::MafStatistics</name>
+    <filename>classbpp_1_1MafStatistics.html</filename>
+    <member kind="function">
+      <type></type>
+      <name>MafStatistics</name>
+      <anchorfile>classbpp_1_1MafStatistics.html</anchorfile>
+      <anchor>a6ee688c65912465d8357ba449d1132e1</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual</type>
+      <name>~MafStatistics</name>
+      <anchorfile>classbpp_1_1MafStatistics.html</anchorfile>
+      <anchor>a8bf9ce95a362180b7e0d004f8c29befd</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual std::string</type>
+      <name>getShortName</name>
+      <anchorfile>classbpp_1_1MafStatistics.html</anchorfile>
+      <anchor>af0c9f79bebf57fd0f91153b34befdc9f</anchor>
+      <arglist>() const =0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual std::string</type>
+      <name>getFullName</name>
+      <anchorfile>classbpp_1_1MafStatistics.html</anchorfile>
+      <anchor>aae4be18d0f1290cc1cf64008203fa4f4</anchor>
+      <arglist>() const =0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual const MafStatisticsResult &</type>
+      <name>getResult</name>
+      <anchorfile>classbpp_1_1MafStatistics.html</anchorfile>
+      <anchor>a6f904d5de86215b4a28f481175c62866</anchor>
+      <arglist>() const =0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual void</type>
+      <name>compute</name>
+      <anchorfile>classbpp_1_1MafStatistics.html</anchorfile>
+      <anchor>a3e7f72ee7b66dbb4e00699a14a920722</anchor>
+      <arglist>(const MafBlock &block)=0</arglist>
+    </member>
+    <member kind="function" virtualness="pure">
+      <type>virtual std::vector< std::string ></type>
+      <name>getSupportedTags</name>
+      <anchorfile>classbpp_1_1MafStatistics.html</anchorfile>
+      <anchor>a7ed1335b56a21160333132b8295cd12e</anchor>
+      <arglist>() const =0</arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::AbstractMafStatistics</name>
+    <filename>classbpp_1_1AbstractMafStatistics.html</filename>
+    <base virtualness="virtual">bpp::MafStatistics</base>
+    <member kind="function">
+      <type></type>
+      <name>AbstractMafStatistics</name>
+      <anchorfile>classbpp_1_1AbstractMafStatistics.html</anchorfile>
+      <anchor>a2989af09f09c425ffe6e0afa089b95a8</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual</type>
+      <name>~AbstractMafStatistics</name>
+      <anchorfile>classbpp_1_1AbstractMafStatistics.html</anchorfile>
+      <anchor>a433654f97397532eda746f55eba2d5f2</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function">
+      <type>const MafStatisticsResult &</type>
+      <name>getResult</name>
+      <anchorfile>classbpp_1_1AbstractMafStatistics.html</anchorfile>
+      <anchor>af5de6f7ab3c8dcc676e1f9970e195422</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="variable" protection="protected">
+      <type>MafStatisticsResult</type>
+      <name>result_</name>
+      <anchorfile>classbpp_1_1AbstractMafStatistics.html</anchorfile>
+      <anchor>ad6c6d3d9c777683d46ac932e1c948e99</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::AbstractMafStatisticsSimple</name>
+    <filename>classbpp_1_1AbstractMafStatisticsSimple.html</filename>
+    <base>bpp::MafStatistics</base>
+    <member kind="function">
+      <type></type>
+      <name>AbstractMafStatisticsSimple</name>
+      <anchorfile>classbpp_1_1AbstractMafStatisticsSimple.html</anchorfile>
+      <anchor>adeea5a5f297b30c66b009b12960c21f2</anchor>
+      <arglist>(const std::string &name)</arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual</type>
+      <name>~AbstractMafStatisticsSimple</name>
+      <anchorfile>classbpp_1_1AbstractMafStatisticsSimple.html</anchorfile>
+      <anchor>ab3b88820011d31ab120ee688e6b07cea</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function">
+      <type>const SimpleMafStatisticsResult &</type>
+      <name>getResult</name>
+      <anchorfile>classbpp_1_1AbstractMafStatisticsSimple.html</anchorfile>
+      <anchor>abbdc7e935065241c814f877c9f9bef62</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>std::vector< std::string ></type>
+      <name>getSupportedTags</name>
+      <anchorfile>classbpp_1_1AbstractMafStatisticsSimple.html</anchorfile>
+      <anchor>ac08f7bd54f98824e8fb1a65af758d54b</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="variable" protection="protected">
+      <type>SimpleMafStatisticsResult</type>
+      <name>result_</name>
+      <anchorfile>classbpp_1_1AbstractMafStatisticsSimple.html</anchorfile>
+      <anchor>aec4c989c7f91ad60817ab36904f152e5</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::PairwiseDivergenceMafStatistics</name>
+    <filename>classbpp_1_1PairwiseDivergenceMafStatistics.html</filename>
+    <base>bpp::AbstractMafStatisticsSimple</base>
+    <member kind="function">
+      <type></type>
+      <name>PairwiseDivergenceMafStatistics</name>
+      <anchorfile>classbpp_1_1PairwiseDivergenceMafStatistics.html</anchorfile>
+      <anchor>a9b409ca2ef98c8a21b44a6a57018b8d0</anchor>
+      <arglist>(const std::string &species1, const std::string &species2)</arglist>
+    </member>
+    <member kind="function">
+      <type></type>
+      <name>~PairwiseDivergenceMafStatistics</name>
+      <anchorfile>classbpp_1_1PairwiseDivergenceMafStatistics.html</anchorfile>
+      <anchor>a9f5f17c474032e4b2319839e0842212f</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function">
+      <type>std::string</type>
+      <name>getShortName</name>
+      <anchorfile>classbpp_1_1PairwiseDivergenceMafStatistics.html</anchorfile>
+      <anchor>a19da531e09a6c81e7d030c8baf6be02c</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>std::string</type>
+      <name>getFullName</name>
+      <anchorfile>classbpp_1_1PairwiseDivergenceMafStatistics.html</anchorfile>
+      <anchor>abbfb4114554df11ab5193985add95006</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>compute</name>
+      <anchorfile>classbpp_1_1PairwiseDivergenceMafStatistics.html</anchorfile>
+      <anchor>a4911e16fa4c74d9fff5b42f8fbe0d1f3</anchor>
+      <arglist>(const MafBlock &block)</arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::string</type>
+      <name>species1_</name>
+      <anchorfile>classbpp_1_1PairwiseDivergenceMafStatistics.html</anchorfile>
+      <anchor>a36259284e5b72da0c6866e5be2724008</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::string</type>
+      <name>species2_</name>
+      <anchorfile>classbpp_1_1PairwiseDivergenceMafStatistics.html</anchorfile>
+      <anchor>a0d94ff07c725f591b9aa034c9055fd74</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::BlockSizeMafStatistics</name>
+    <filename>classbpp_1_1BlockSizeMafStatistics.html</filename>
+    <base>bpp::AbstractMafStatisticsSimple</base>
+    <member kind="function">
+      <type></type>
+      <name>BlockSizeMafStatistics</name>
+      <anchorfile>classbpp_1_1BlockSizeMafStatistics.html</anchorfile>
+      <anchor>a98984dc9eaa0882c153bb632030b5fa8</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function">
+      <type></type>
+      <name>~BlockSizeMafStatistics</name>
+      <anchorfile>classbpp_1_1BlockSizeMafStatistics.html</anchorfile>
+      <anchor>af055e6a8479171774697bc89d6a0974d</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function">
+      <type>std::string</type>
+      <name>getShortName</name>
+      <anchorfile>classbpp_1_1BlockSizeMafStatistics.html</anchorfile>
+      <anchor>a7c6645dab30ab4cc8cf919617e15b8f6</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>std::string</type>
+      <name>getFullName</name>
+      <anchorfile>classbpp_1_1BlockSizeMafStatistics.html</anchorfile>
+      <anchor>ab429e8fac24e5d4a44d093b6bd29affa</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>compute</name>
+      <anchorfile>classbpp_1_1BlockSizeMafStatistics.html</anchorfile>
+      <anchor>a28327d23b91bbfbab52526d4d4483f26</anchor>
+      <arglist>(const MafBlock &block)</arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::BlockLengthMafStatistics</name>
+    <filename>classbpp_1_1BlockLengthMafStatistics.html</filename>
+    <base>bpp::AbstractMafStatisticsSimple</base>
+    <member kind="function">
+      <type></type>
+      <name>BlockLengthMafStatistics</name>
+      <anchorfile>classbpp_1_1BlockLengthMafStatistics.html</anchorfile>
+      <anchor>a61594666cfcf0cacc5bcbc976386ac1b</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function">
+      <type></type>
+      <name>~BlockLengthMafStatistics</name>
+      <anchorfile>classbpp_1_1BlockLengthMafStatistics.html</anchorfile>
+      <anchor>a27d3b78706c46af271d83b91b909f433</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function">
+      <type>std::string</type>
+      <name>getShortName</name>
+      <anchorfile>classbpp_1_1BlockLengthMafStatistics.html</anchorfile>
+      <anchor>a9e349ef1a653a710db8f7524be338374</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>std::string</type>
+      <name>getFullName</name>
+      <anchorfile>classbpp_1_1BlockLengthMafStatistics.html</anchorfile>
+      <anchor>a5e6c6cb2d61e6c489fa9ec46796e9417</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>compute</name>
+      <anchorfile>classbpp_1_1BlockLengthMafStatistics.html</anchorfile>
+      <anchor>a2a1cbef57a606d76672b595a9709c350</anchor>
+      <arglist>(const MafBlock &block)</arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::SequenceLengthMafStatistics</name>
+    <filename>classbpp_1_1SequenceLengthMafStatistics.html</filename>
+    <base>bpp::AbstractMafStatisticsSimple</base>
+    <member kind="function">
+      <type></type>
+      <name>SequenceLengthMafStatistics</name>
+      <anchorfile>classbpp_1_1SequenceLengthMafStatistics.html</anchorfile>
+      <anchor>ae9dd7ebe1b0773b791ac075d4c417f87</anchor>
+      <arglist>(const std::string &species)</arglist>
+    </member>
+    <member kind="function">
+      <type></type>
+      <name>~SequenceLengthMafStatistics</name>
+      <anchorfile>classbpp_1_1SequenceLengthMafStatistics.html</anchorfile>
+      <anchor>afa546d1de2369f42c6ca782cb7c2fabe</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function">
+      <type>std::string</type>
+      <name>getShortName</name>
+      <anchorfile>classbpp_1_1SequenceLengthMafStatistics.html</anchorfile>
+      <anchor>ae890cd9995965263339d3cef8f0d92f3</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>std::string</type>
+      <name>getFullName</name>
+      <anchorfile>classbpp_1_1SequenceLengthMafStatistics.html</anchorfile>
+      <anchor>a80880d69a082c945d53357a05461ebd8</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>compute</name>
+      <anchorfile>classbpp_1_1SequenceLengthMafStatistics.html</anchorfile>
+      <anchor>ad4f9677fe2d634c5d5d21f86e6c24b4b</anchor>
+      <arglist>(const MafBlock &block)</arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::string</type>
+      <name>species_</name>
+      <anchorfile>classbpp_1_1SequenceLengthMafStatistics.html</anchorfile>
+      <anchor>a92e9158724d3c3f3b90ff605f14489d0</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::AlignmentScoreMafStatistics</name>
+    <filename>classbpp_1_1AlignmentScoreMafStatistics.html</filename>
+    <base>bpp::AbstractMafStatisticsSimple</base>
+    <member kind="function">
+      <type></type>
+      <name>AlignmentScoreMafStatistics</name>
+      <anchorfile>classbpp_1_1AlignmentScoreMafStatistics.html</anchorfile>
+      <anchor>a7e0114800a44066289f84040d733e9c5</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function">
+      <type></type>
+      <name>~AlignmentScoreMafStatistics</name>
+      <anchorfile>classbpp_1_1AlignmentScoreMafStatistics.html</anchorfile>
+      <anchor>a3825a6c2800ebee7d20af3c0125606e1</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function">
+      <type>std::string</type>
+      <name>getShortName</name>
+      <anchorfile>classbpp_1_1AlignmentScoreMafStatistics.html</anchorfile>
+      <anchor>acc694a314a88e421d87b4faea699629f</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>std::string</type>
+      <name>getFullName</name>
+      <anchorfile>classbpp_1_1AlignmentScoreMafStatistics.html</anchorfile>
+      <anchor>a84ec7c5e92aa978cc32bc79bcb65eddb</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>compute</name>
+      <anchorfile>classbpp_1_1AlignmentScoreMafStatistics.html</anchorfile>
+      <anchor>a99f0ed2e9f311ec15f7ac131418aceae</anchor>
+      <arglist>(const MafBlock &block)</arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::CharacterCountsMafStatistics</name>
+    <filename>classbpp_1_1CharacterCountsMafStatistics.html</filename>
+    <base>bpp::AbstractMafStatistics</base>
+    <member kind="function">
+      <type></type>
+      <name>CharacterCountsMafStatistics</name>
+      <anchorfile>classbpp_1_1CharacterCountsMafStatistics.html</anchorfile>
+      <anchor>a989027dc45de74d10760305d0fca8f78</anchor>
+      <arglist>(const Alphabet *alphabet)</arglist>
+    </member>
+    <member kind="function">
+      <type></type>
+      <name>CharacterCountsMafStatistics</name>
+      <anchorfile>classbpp_1_1CharacterCountsMafStatistics.html</anchorfile>
+      <anchor>a99935a3c2b9155c733888aef6ca3a78d</anchor>
+      <arglist>(const CharacterCountsMafStatistics &stats)</arglist>
+    </member>
+    <member kind="function">
+      <type>CharacterCountsMafStatistics &</type>
+      <name>operator=</name>
+      <anchorfile>classbpp_1_1CharacterCountsMafStatistics.html</anchorfile>
+      <anchor>ad19900ed72e16a366731b3b66128ac68</anchor>
+      <arglist>(const CharacterCountsMafStatistics &stats)</arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual</type>
+      <name>~CharacterCountsMafStatistics</name>
+      <anchorfile>classbpp_1_1CharacterCountsMafStatistics.html</anchorfile>
+      <anchor>a2213025d386ea44aa30f8d06e3ea5136</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function">
+      <type>std::string</type>
+      <name>getShortName</name>
+      <anchorfile>classbpp_1_1CharacterCountsMafStatistics.html</anchorfile>
+      <anchor>a28f9086cea1b5fee5f2085b7cbf353ba</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>std::string</type>
+      <name>getFullName</name>
+      <anchorfile>classbpp_1_1CharacterCountsMafStatistics.html</anchorfile>
+      <anchor>a71269b0be58723ce8a312984fa1f0310</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>compute</name>
+      <anchorfile>classbpp_1_1CharacterCountsMafStatistics.html</anchorfile>
+      <anchor>a9eacbc17da8bebd53b083acd417098c1</anchor>
+      <arglist>(const MafBlock &block)</arglist>
+    </member>
+    <member kind="function">
+      <type>std::vector< std::string ></type>
+      <name>getSupportedTags</name>
+      <anchorfile>classbpp_1_1CharacterCountsMafStatistics.html</anchorfile>
+      <anchor>a42afdd3d406a7068bcd567058660592a</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>const Alphabet *</type>
+      <name>alphabet_</name>
+      <anchorfile>classbpp_1_1CharacterCountsMafStatistics.html</anchorfile>
+      <anchor>aaab64d3758855fad252977b9b2e52f42</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::AbstractSpeciesSelectionMafStatistics</name>
+    <filename>classbpp_1_1AbstractSpeciesSelectionMafStatistics.html</filename>
+    <base virtualness="virtual">bpp::MafStatistics</base>
+    <member kind="function">
+      <type></type>
+      <name>AbstractSpeciesSelectionMafStatistics</name>
+      <anchorfile>classbpp_1_1AbstractSpeciesSelectionMafStatistics.html</anchorfile>
+      <anchor>a6b2950fb90545c67ca73ecdaad92361a</anchor>
+      <arglist>(const std::vector< std::string > &species)</arglist>
+    </member>
+    <member kind="function" protection="protected">
+      <type>SiteContainer *</type>
+      <name>getSiteContainer_</name>
+      <anchorfile>classbpp_1_1AbstractSpeciesSelectionMafStatistics.html</anchorfile>
+      <anchor>a410fbce27d39d26d657791b0aa507684</anchor>
+      <arglist>(const MafBlock &block)</arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::vector< std::string ></type>
+      <name>species_</name>
+      <anchorfile>classbpp_1_1AbstractSpeciesSelectionMafStatistics.html</anchorfile>
+      <anchor>a5754e0c6c6b3adb6ebc40c995cdde14f</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::AbstractSpeciesMultipleSelectionMafStatistics</name>
+    <filename>classbpp_1_1AbstractSpeciesMultipleSelectionMafStatistics.html</filename>
+    <base virtualness="virtual">bpp::MafStatistics</base>
+    <member kind="function">
+      <type></type>
+      <name>AbstractSpeciesMultipleSelectionMafStatistics</name>
+      <anchorfile>classbpp_1_1AbstractSpeciesMultipleSelectionMafStatistics.html</anchorfile>
+      <anchor>a50f1bcbc70f5a72715925c3b2aeec5b6</anchor>
+      <arglist>(const std::vector< std::vector< std::string > > &species)</arglist>
+    </member>
+    <member kind="function" protection="protected">
+      <type>std::vector< SiteContainer * ></type>
+      <name>getSiteContainers_</name>
+      <anchorfile>classbpp_1_1AbstractSpeciesMultipleSelectionMafStatistics.html</anchorfile>
+      <anchor>a1d36351d06e344fcffcab819f0ee9d51</anchor>
+      <arglist>(const MafBlock &block)</arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::vector< std::vector< std::string > ></type>
+      <name>species_</name>
+      <anchorfile>classbpp_1_1AbstractSpeciesMultipleSelectionMafStatistics.html</anchorfile>
+      <anchor>ad13dab583b6d27748dc92529d90cc428</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::SiteFrequencySpectrumMafStatistics</name>
+    <filename>classbpp_1_1SiteFrequencySpectrumMafStatistics.html</filename>
+    <base>bpp::AbstractMafStatistics</base>
+    <base>bpp::AbstractSpeciesSelectionMafStatistics</base>
+    <class kind="class">bpp::SiteFrequencySpectrumMafStatistics::Categorizer</class>
+    <member kind="function">
+      <type></type>
+      <name>SiteFrequencySpectrumMafStatistics</name>
+      <anchorfile>classbpp_1_1SiteFrequencySpectrumMafStatistics.html</anchorfile>
+      <anchor>ae2f6a5d481665cb0adb373db889cd4a3</anchor>
+      <arglist>(const Alphabet *alphabet, const std::vector< double > &bounds, const std::vector< std::string > &ingroup, const std::string outgroup="")</arglist>
+    </member>
+    <member kind="function">
+      <type></type>
+      <name>SiteFrequencySpectrumMafStatistics</name>
+      <anchorfile>classbpp_1_1SiteFrequencySpectrumMafStatistics.html</anchorfile>
+      <anchor>a7868688fb97ee98ab034f0c4d994e7cd</anchor>
+      <arglist>(const SiteFrequencySpectrumMafStatistics &stats)</arglist>
+    </member>
+    <member kind="function">
+      <type>SiteFrequencySpectrumMafStatistics &</type>
+      <name>operator=</name>
+      <anchorfile>classbpp_1_1SiteFrequencySpectrumMafStatistics.html</anchorfile>
+      <anchor>a8be819556927dc75ee2d4100391cd50b</anchor>
+      <arglist>(const SiteFrequencySpectrumMafStatistics &stats)</arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual</type>
+      <name>~SiteFrequencySpectrumMafStatistics</name>
+      <anchorfile>classbpp_1_1SiteFrequencySpectrumMafStatistics.html</anchorfile>
+      <anchor>a395fcc489526a7d348b88bd98d3a399b</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function">
+      <type>std::string</type>
+      <name>getShortName</name>
+      <anchorfile>classbpp_1_1SiteFrequencySpectrumMafStatistics.html</anchorfile>
+      <anchor>aff9307c3bfc864042610b88a8fc8e135</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>std::string</type>
+      <name>getFullName</name>
+      <anchorfile>classbpp_1_1SiteFrequencySpectrumMafStatistics.html</anchorfile>
+      <anchor>a726f8a04605842d2d9c2fecfab4294ed</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>compute</name>
+      <anchorfile>classbpp_1_1SiteFrequencySpectrumMafStatistics.html</anchorfile>
+      <anchor>aba6d33e7ff5d2387994b6bef7f5fcfc4</anchor>
+      <arglist>(const MafBlock &block)</arglist>
+    </member>
+    <member kind="function">
+      <type>std::vector< std::string ></type>
+      <name>getSupportedTags</name>
+      <anchorfile>classbpp_1_1SiteFrequencySpectrumMafStatistics.html</anchorfile>
+      <anchor>a6a0ad5c95edb09fc538c1cacac9310fe</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>const Alphabet *</type>
+      <name>alphabet_</name>
+      <anchorfile>classbpp_1_1SiteFrequencySpectrumMafStatistics.html</anchorfile>
+      <anchor>a862096b71ae411bea636b2a155e6933f</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>Categorizer</type>
+      <name>categorizer_</name>
+      <anchorfile>classbpp_1_1SiteFrequencySpectrumMafStatistics.html</anchorfile>
+      <anchor>ae2064f917123b646d08725fdfe911829</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::vector< unsigned int ></type>
+      <name>counts_</name>
+      <anchorfile>classbpp_1_1SiteFrequencySpectrumMafStatistics.html</anchorfile>
+      <anchor>a6cff6d060f7e491fc46c7d133ec7811c</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::string</type>
+      <name>outgroup_</name>
+      <anchorfile>classbpp_1_1SiteFrequencySpectrumMafStatistics.html</anchorfile>
+      <anchor>ad98f4d9bc0ff476ad60231748e818f2f</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::SiteFrequencySpectrumMafStatistics::Categorizer</name>
+    <filename>classbpp_1_1SiteFrequencySpectrumMafStatistics_1_1Categorizer.html</filename>
+    <member kind="function">
+      <type></type>
+      <name>Categorizer</name>
+      <anchorfile>classbpp_1_1SiteFrequencySpectrumMafStatistics_1_1Categorizer.html</anchorfile>
+      <anchor>a79f492607d44ba74cd2f37d16ceab47c</anchor>
+      <arglist>(const std::vector< double > &bounds)</arglist>
+    </member>
+    <member kind="function">
+      <type>size_t</type>
+      <name>getNumberOfCategories</name>
+      <anchorfile>classbpp_1_1SiteFrequencySpectrumMafStatistics_1_1Categorizer.html</anchorfile>
+      <anchor>a462983200c5afee880b6075a665ce813</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>size_t</type>
+      <name>getCategory</name>
+      <anchorfile>classbpp_1_1SiteFrequencySpectrumMafStatistics_1_1Categorizer.html</anchorfile>
+      <anchor>a0b0df73f3c771f5b46712eceb494bf97</anchor>
+      <arglist>(double value) const </arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::vector< double ></type>
+      <name>bounds_</name>
+      <anchorfile>classbpp_1_1SiteFrequencySpectrumMafStatistics_1_1Categorizer.html</anchorfile>
+      <anchor>adfc8c17bbdf6bc25956c59014bc2eb95</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::FourSpeciesPatternCountsMafStatistics</name>
+    <filename>classbpp_1_1FourSpeciesPatternCountsMafStatistics.html</filename>
+    <base>bpp::AbstractMafStatistics</base>
+    <base>bpp::AbstractSpeciesSelectionMafStatistics</base>
+    <member kind="function">
+      <type></type>
+      <name>FourSpeciesPatternCountsMafStatistics</name>
+      <anchorfile>classbpp_1_1FourSpeciesPatternCountsMafStatistics.html</anchorfile>
+      <anchor>af588c889373f541860852ad7d28671cf</anchor>
+      <arglist>(const Alphabet *alphabet, const std::vector< std::string > &species)</arglist>
+    </member>
+    <member kind="function">
+      <type></type>
+      <name>FourSpeciesPatternCountsMafStatistics</name>
+      <anchorfile>classbpp_1_1FourSpeciesPatternCountsMafStatistics.html</anchorfile>
+      <anchor>a3bdf02ab07eed8ecb3c256a5a6a0aea5</anchor>
+      <arglist>(const FourSpeciesPatternCountsMafStatistics &stats)</arglist>
+    </member>
+    <member kind="function">
+      <type>FourSpeciesPatternCountsMafStatistics &</type>
+      <name>operator=</name>
+      <anchorfile>classbpp_1_1FourSpeciesPatternCountsMafStatistics.html</anchorfile>
+      <anchor>aa6ebe7e128a360917394df003bb56e0f</anchor>
+      <arglist>(const FourSpeciesPatternCountsMafStatistics &stats)</arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual</type>
+      <name>~FourSpeciesPatternCountsMafStatistics</name>
+      <anchorfile>classbpp_1_1FourSpeciesPatternCountsMafStatistics.html</anchorfile>
+      <anchor>af8df00cc22cb71f8f941166d664ff22b</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function">
+      <type>std::string</type>
+      <name>getShortName</name>
+      <anchorfile>classbpp_1_1FourSpeciesPatternCountsMafStatistics.html</anchorfile>
+      <anchor>a47f4000e79a0ee731e63f772f8a58021</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>std::string</type>
+      <name>getFullName</name>
+      <anchorfile>classbpp_1_1FourSpeciesPatternCountsMafStatistics.html</anchorfile>
+      <anchor>a1ddfd9f81fb25d22c7ff82c2fc4cf818</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>compute</name>
+      <anchorfile>classbpp_1_1FourSpeciesPatternCountsMafStatistics.html</anchorfile>
+      <anchor>a7f8c85f64632bc5df5c619d213635e3e</anchor>
+      <arglist>(const MafBlock &block)</arglist>
+    </member>
+    <member kind="function">
+      <type>std::vector< std::string ></type>
+      <name>getSupportedTags</name>
+      <anchorfile>classbpp_1_1FourSpeciesPatternCountsMafStatistics.html</anchorfile>
+      <anchor>a76978fc1017836266b7bd3d33f9b416f</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>const Alphabet *</type>
+      <name>alphabet_</name>
+      <anchorfile>classbpp_1_1FourSpeciesPatternCountsMafStatistics.html</anchorfile>
+      <anchor>a368a43891bf3e7f2172001affe15f02d</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::vector< unsigned int ></type>
+      <name>counts_</name>
+      <anchorfile>classbpp_1_1FourSpeciesPatternCountsMafStatistics.html</anchorfile>
+      <anchor>a04b305371745581290a21e9e64985c6f</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::SiteMafStatistics</name>
+    <filename>classbpp_1_1SiteMafStatistics.html</filename>
+    <base>bpp::AbstractMafStatistics</base>
+    <base>bpp::AbstractSpeciesSelectionMafStatistics</base>
+    <member kind="function">
+      <type></type>
+      <name>SiteMafStatistics</name>
+      <anchorfile>classbpp_1_1SiteMafStatistics.html</anchorfile>
+      <anchor>acedc89e53d9f3ebf7450b4358c72e0fe</anchor>
+      <arglist>(const std::vector< std::string > &species)</arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual</type>
+      <name>~SiteMafStatistics</name>
+      <anchorfile>classbpp_1_1SiteMafStatistics.html</anchorfile>
+      <anchor>a62787802e4ffeaed951e594107334e6d</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function">
+      <type>std::string</type>
+      <name>getShortName</name>
+      <anchorfile>classbpp_1_1SiteMafStatistics.html</anchorfile>
+      <anchor>ae35c7512d74a25bb3c03e29579cc6d07</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>std::string</type>
+      <name>getFullName</name>
+      <anchorfile>classbpp_1_1SiteMafStatistics.html</anchorfile>
+      <anchor>a2e7a8174bbe6c42d60e7b94ad1e73443</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>compute</name>
+      <anchorfile>classbpp_1_1SiteMafStatistics.html</anchorfile>
+      <anchor>a2cf3ee198295e9620929d5a018916980</anchor>
+      <arglist>(const MafBlock &block)</arglist>
+    </member>
+    <member kind="function">
+      <type>std::vector< std::string ></type>
+      <name>getSupportedTags</name>
+      <anchorfile>classbpp_1_1SiteMafStatistics.html</anchorfile>
+      <anchor>a28c0fa65dc598cdc709fef83acdf62c3</anchor>
+      <arglist>() const </arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::PolymorphismMafStatistics</name>
+    <filename>classbpp_1_1PolymorphismMafStatistics.html</filename>
+    <base>bpp::AbstractMafStatistics</base>
+    <base>bpp::AbstractSpeciesMultipleSelectionMafStatistics</base>
+    <member kind="function">
+      <type></type>
+      <name>PolymorphismMafStatistics</name>
+      <anchorfile>classbpp_1_1PolymorphismMafStatistics.html</anchorfile>
+      <anchor>a0715353b2411ff8360eee838c6794fc1</anchor>
+      <arglist>(const std::vector< std::vector< std::string > > &species)</arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual</type>
+      <name>~PolymorphismMafStatistics</name>
+      <anchorfile>classbpp_1_1PolymorphismMafStatistics.html</anchorfile>
+      <anchor>ac13e920337739b6529c70b186e605117</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function">
+      <type>std::string</type>
+      <name>getShortName</name>
+      <anchorfile>classbpp_1_1PolymorphismMafStatistics.html</anchorfile>
+      <anchor>aeb6705645f2ee3cc7f8879c02af30455</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>std::string</type>
+      <name>getFullName</name>
+      <anchorfile>classbpp_1_1PolymorphismMafStatistics.html</anchorfile>
+      <anchor>a5f2b811e967e556e17bb6a3f07a10a5c</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>compute</name>
+      <anchorfile>classbpp_1_1PolymorphismMafStatistics.html</anchorfile>
+      <anchor>ac4b05292c9cf0d870d9cac46b4a2e379</anchor>
+      <arglist>(const MafBlock &block)</arglist>
+    </member>
+    <member kind="function">
+      <type>std::vector< std::string ></type>
+      <name>getSupportedTags</name>
+      <anchorfile>classbpp_1_1PolymorphismMafStatistics.html</anchorfile>
+      <anchor>aa43cccd63f4cbac1cacb9eff96a19dee</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function" protection="private" static="yes">
+      <type>static std::vector< int ></type>
+      <name>getPatterns_</name>
+      <anchorfile>classbpp_1_1PolymorphismMafStatistics.html</anchorfile>
+      <anchor>a0081412ec742dcdb664f353d5a94f271</anchor>
+      <arglist>(const SiteContainer &sites)</arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::SequenceDiversityMafStatistics</name>
+    <filename>classbpp_1_1SequenceDiversityMafStatistics.html</filename>
+    <base>bpp::AbstractMafStatistics</base>
+    <base>bpp::AbstractSpeciesSelectionMafStatistics</base>
+    <member kind="function">
+      <type></type>
+      <name>SequenceDiversityMafStatistics</name>
+      <anchorfile>classbpp_1_1SequenceDiversityMafStatistics.html</anchorfile>
+      <anchor>a706b49e0dd3d8e1b2753b1683205db4c</anchor>
+      <arglist>(const std::vector< std::string > &ingroup)</arglist>
+    </member>
+    <member kind="function" virtualness="virtual">
+      <type>virtual</type>
+      <name>~SequenceDiversityMafStatistics</name>
+      <anchorfile>classbpp_1_1SequenceDiversityMafStatistics.html</anchorfile>
+      <anchor>a4a0ab3ae3326eefa76be1ad616ce9fbb</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function">
+      <type>std::string</type>
+      <name>getShortName</name>
+      <anchorfile>classbpp_1_1SequenceDiversityMafStatistics.html</anchorfile>
+      <anchor>a3b6faa127b55a52b78e7e876410e879b</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>std::string</type>
+      <name>getFullName</name>
+      <anchorfile>classbpp_1_1SequenceDiversityMafStatistics.html</anchorfile>
+      <anchor>ae1bdd5b0b5fc7636a9169394b370496d</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>void</type>
+      <name>compute</name>
+      <anchorfile>classbpp_1_1SequenceDiversityMafStatistics.html</anchorfile>
+      <anchor>a32acab8424d39b1b43f42e230861a73f</anchor>
+      <arglist>(const MafBlock &block)</arglist>
+    </member>
+    <member kind="function">
+      <type>std::vector< std::string ></type>
+      <name>getSupportedTags</name>
+      <anchorfile>classbpp_1_1SequenceDiversityMafStatistics.html</anchorfile>
+      <anchor>a59981424c10368d2e823fb56bfc30f8f</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function" protection="private" static="yes">
+      <type>static std::vector< int ></type>
+      <name>getPatterns_</name>
+      <anchorfile>classbpp_1_1SequenceDiversityMafStatistics.html</anchorfile>
+      <anchor>a168e8d369d98c84ec7f6ccd4a3a53489</anchor>
+      <arglist>(const SiteContainer &sites)</arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::MaskFilterMafIterator</name>
+    <filename>classbpp_1_1MaskFilterMafIterator.html</filename>
+    <base>bpp::AbstractFilterMafIterator</base>
+    <base>bpp::MafTrashIterator</base>
+    <member kind="function">
+      <type></type>
+      <name>MaskFilterMafIterator</name>
+      <anchorfile>classbpp_1_1MaskFilterMafIterator.html</anchorfile>
+      <anchor>ae9ea74d39fa0864177883cb437375a21</anchor>
+      <arglist>(MafIterator *iterator, const std::vector< std::string > &species, unsigned int windowSize, unsigned int step, unsigned int maxMasked, bool keepTrashedBlocks)</arglist>
+    </member>
+    <member kind="function">
+      <type>MafBlock *</type>
+      <name>nextRemovedBlock</name>
+      <anchorfile>classbpp_1_1MaskFilterMafIterator.html</anchorfile>
+      <anchor>a35db07285be7e18e929f7eed3b9b8763</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>MafBlock *</type>
+      <name>analyseCurrentBlock_</name>
+      <anchorfile>classbpp_1_1MaskFilterMafIterator.html</anchorfile>
+      <anchor>a2ccf5d991f556384965c78da3d2190f0</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::vector< std::string ></type>
+      <name>species_</name>
+      <anchorfile>classbpp_1_1MaskFilterMafIterator.html</anchorfile>
+      <anchor>a465cad4e30f65599a93c9afc4e42e5b0</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>unsigned int</type>
+      <name>windowSize_</name>
+      <anchorfile>classbpp_1_1MaskFilterMafIterator.html</anchorfile>
+      <anchor>a0b55e64e8353b3335d0a38b0533bf41b</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>unsigned int</type>
+      <name>step_</name>
+      <anchorfile>classbpp_1_1MaskFilterMafIterator.html</anchorfile>
+      <anchor>a58f3b29e2b09b5b6ec586d5e14058d30</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>unsigned int</type>
+      <name>maxMasked_</name>
+      <anchorfile>classbpp_1_1MaskFilterMafIterator.html</anchorfile>
+      <anchor>aaa47ab33500a4e7044e1f5999d980bc0</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::deque< MafBlock * ></type>
+      <name>blockBuffer_</name>
+      <anchorfile>classbpp_1_1MaskFilterMafIterator.html</anchorfile>
+      <anchor>af265abfe85d8edc4c3d154dfe06dacee</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::deque< MafBlock * ></type>
+      <name>trashBuffer_</name>
+      <anchorfile>classbpp_1_1MaskFilterMafIterator.html</anchorfile>
+      <anchor>ae6d30bc7fa4a89c00c569c2b4e2568b2</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::deque< std::vector< bool > ></type>
+      <name>window_</name>
+      <anchorfile>classbpp_1_1MaskFilterMafIterator.html</anchorfile>
+      <anchor>a9fa620b16952cbb2111b81ea9372474d</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>bool</type>
+      <name>keepTrashedBlocks_</name>
+      <anchorfile>classbpp_1_1MaskFilterMafIterator.html</anchorfile>
+      <anchor>af2f659815eb1af061445667dc084cdf8</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::OrphanSequenceFilterMafIterator</name>
+    <filename>classbpp_1_1OrphanSequenceFilterMafIterator.html</filename>
+    <base>bpp::AbstractFilterMafIterator</base>
+    <member kind="function">
+      <type></type>
+      <name>OrphanSequenceFilterMafIterator</name>
+      <anchorfile>classbpp_1_1OrphanSequenceFilterMafIterator.html</anchorfile>
+      <anchor>af81605f32561b6298fd9292f37b9192d</anchor>
+      <arglist>(MafIterator *iterator, const std::vector< std::string > &species, bool strict=false, bool keep=false, bool rmDuplicates=false)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type></type>
+      <name>OrphanSequenceFilterMafIterator</name>
+      <anchorfile>classbpp_1_1OrphanSequenceFilterMafIterator.html</anchorfile>
+      <anchor>aa3a6c7432b4c39d575e0e12e32076c70</anchor>
+      <arglist>(const OrphanSequenceFilterMafIterator &iterator)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>OrphanSequenceFilterMafIterator &</type>
+      <name>operator=</name>
+      <anchorfile>classbpp_1_1OrphanSequenceFilterMafIterator.html</anchorfile>
+      <anchor>a8be37ba7ec4aa58fbe4dad24450041bc</anchor>
+      <arglist>(const OrphanSequenceFilterMafIterator &iterator)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>MafBlock *</type>
+      <name>analyseCurrentBlock_</name>
+      <anchorfile>classbpp_1_1OrphanSequenceFilterMafIterator.html</anchorfile>
+      <anchor>ae1e8dbdd4fc1a147acf1921e857b2f0e</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::vector< std::string ></type>
+      <name>species_</name>
+      <anchorfile>classbpp_1_1OrphanSequenceFilterMafIterator.html</anchorfile>
+      <anchor>a3c6c3a96d3d6ef6aa5fc7bdd7a93ac5a</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>bool</type>
+      <name>strict_</name>
+      <anchorfile>classbpp_1_1OrphanSequenceFilterMafIterator.html</anchorfile>
+      <anchor>a02a1d63905ac98fd08d5b61e101d8b97</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>bool</type>
+      <name>rmDuplicates_</name>
+      <anchorfile>classbpp_1_1OrphanSequenceFilterMafIterator.html</anchorfile>
+      <anchor>a4b29c4085860b78ba02afeb391b0e33a</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::OutputAlignmentMafIterator</name>
+    <filename>classbpp_1_1OutputAlignmentMafIterator.html</filename>
+    <base>bpp::AbstractFilterMafIterator</base>
+    <member kind="function">
+      <type></type>
+      <name>OutputAlignmentMafIterator</name>
+      <anchorfile>classbpp_1_1OutputAlignmentMafIterator.html</anchorfile>
+      <anchor>ade9d96da1efd0cd88c505531d8089c10</anchor>
+      <arglist>(MafIterator *iterator, std::ostream *out, OAlignment *writer, bool mask=true)</arglist>
+    </member>
+    <member kind="function">
+      <type></type>
+      <name>OutputAlignmentMafIterator</name>
+      <anchorfile>classbpp_1_1OutputAlignmentMafIterator.html</anchorfile>
+      <anchor>a9ec446d8698d108e881a0c4761d46098</anchor>
+      <arglist>(MafIterator *iterator, const std::string &file, OAlignment *writer, bool mask=true)</arglist>
+    </member>
+    <member kind="function">
+      <type></type>
+      <name>~OutputAlignmentMafIterator</name>
+      <anchorfile>classbpp_1_1OutputAlignmentMafIterator.html</anchorfile>
+      <anchor>ac0d53fd39b9216b5d5bae094bd5317a2</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type></type>
+      <name>OutputAlignmentMafIterator</name>
+      <anchorfile>classbpp_1_1OutputAlignmentMafIterator.html</anchorfile>
+      <anchor>ada902422b696a08ca824d408c41522b0</anchor>
+      <arglist>(const OutputAlignmentMafIterator &iterator)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>OutputAlignmentMafIterator &</type>
+      <name>operator=</name>
+      <anchorfile>classbpp_1_1OutputAlignmentMafIterator.html</anchorfile>
+      <anchor>a80cb13ede91975efd13e291addec9676</anchor>
+      <arglist>(const OutputAlignmentMafIterator &iterator)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>MafBlock *</type>
+      <name>analyseCurrentBlock_</name>
+      <anchorfile>classbpp_1_1OutputAlignmentMafIterator.html</anchorfile>
+      <anchor>ae4dd6c31134f41a598870716b3ed28e6</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>void</type>
+      <name>writeBlock</name>
+      <anchorfile>classbpp_1_1OutputAlignmentMafIterator.html</anchorfile>
+      <anchor>a4e2550764d675ba79863fe7db3da556d</anchor>
+      <arglist>(std::ostream &out, const MafBlock &block) const </arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::ostream *</type>
+      <name>output_</name>
+      <anchorfile>classbpp_1_1OutputAlignmentMafIterator.html</anchorfile>
+      <anchor>ab54f102c042558af418dae1e3b46ef55</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::string</type>
+      <name>file_</name>
+      <anchorfile>classbpp_1_1OutputAlignmentMafIterator.html</anchorfile>
+      <anchor>ac5c7949aaaaea9b22262706de4ba9949</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>bool</type>
+      <name>mask_</name>
+      <anchorfile>classbpp_1_1OutputAlignmentMafIterator.html</anchorfile>
+      <anchor>a46e9b08feb8b2ff2ab7e14927380ada9</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::auto_ptr< OAlignment ></type>
+      <name>writer_</name>
+      <anchorfile>classbpp_1_1OutputAlignmentMafIterator.html</anchorfile>
+      <anchor>a4c5564c32d17ab6bab75eb960be767e7</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>unsigned int</type>
+      <name>currentBlockIndex_</name>
+      <anchorfile>classbpp_1_1OutputAlignmentMafIterator.html</anchorfile>
+      <anchor>ae1fdc4d109ac4c4708f57caad3b367b5</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::OutputMafIterator</name>
+    <filename>classbpp_1_1OutputMafIterator.html</filename>
+    <base>bpp::AbstractFilterMafIterator</base>
+    <member kind="function">
+      <type></type>
+      <name>OutputMafIterator</name>
+      <anchorfile>classbpp_1_1OutputMafIterator.html</anchorfile>
+      <anchor>ad7baa9048cd0093c7c54b6f0faeb7852</anchor>
+      <arglist>(MafIterator *iterator, std::ostream *out, bool mask=true)</arglist>
+    </member>
+    <member kind="function">
+      <type>MafBlock *</type>
+      <name>analyseCurrentBlock_</name>
+      <anchorfile>classbpp_1_1OutputMafIterator.html</anchorfile>
+      <anchor>a29a8161f1f06dffcc96140d5e8bc39a5</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type></type>
+      <name>OutputMafIterator</name>
+      <anchorfile>classbpp_1_1OutputMafIterator.html</anchorfile>
+      <anchor>a09e30feaf1e35b04fd439868655c8770</anchor>
+      <arglist>(const OutputMafIterator &iterator)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>OutputMafIterator &</type>
+      <name>operator=</name>
+      <anchorfile>classbpp_1_1OutputMafIterator.html</anchorfile>
+      <anchor>a140bfeb5deaaf115900d5833732af6fc</anchor>
+      <arglist>(const OutputMafIterator &iterator)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>void</type>
+      <name>writeHeader</name>
+      <anchorfile>classbpp_1_1OutputMafIterator.html</anchorfile>
+      <anchor>a386358c7d154aa3f3ff03ecc75575393</anchor>
+      <arglist>(std::ostream &out) const </arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>void</type>
+      <name>writeBlock</name>
+      <anchorfile>classbpp_1_1OutputMafIterator.html</anchorfile>
+      <anchor>a41052edbac527d4d9a4136284854faf8</anchor>
+      <arglist>(std::ostream &out, const MafBlock &block) const </arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::ostream *</type>
+      <name>output_</name>
+      <anchorfile>classbpp_1_1OutputMafIterator.html</anchorfile>
+      <anchor>a4fc6c52e833043c59cc88b00685b387a</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>bool</type>
+      <name>mask_</name>
+      <anchorfile>classbpp_1_1OutputMafIterator.html</anchorfile>
+      <anchor>a2392e14907e954be8906d3ac3f5bc49b</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::QualityFilterMafIterator</name>
+    <filename>classbpp_1_1QualityFilterMafIterator.html</filename>
+    <base>bpp::AbstractFilterMafIterator</base>
+    <base>bpp::MafTrashIterator</base>
+    <member kind="function">
+      <type></type>
+      <name>QualityFilterMafIterator</name>
+      <anchorfile>classbpp_1_1QualityFilterMafIterator.html</anchorfile>
+      <anchor>a4ede6daaa84260bb3d4071c967b1ba12</anchor>
+      <arglist>(MafIterator *iterator, const std::vector< std::string > &species, unsigned int windowSize, unsigned int step, unsigned int minQual, bool keepTrashedBlocks)</arglist>
+    </member>
+    <member kind="function">
+      <type>MafBlock *</type>
+      <name>nextRemovedBlock</name>
+      <anchorfile>classbpp_1_1QualityFilterMafIterator.html</anchorfile>
+      <anchor>a4b2ef33bca043d1f68435d83a83a44c4</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>MafBlock *</type>
+      <name>analyseCurrentBlock_</name>
+      <anchorfile>classbpp_1_1QualityFilterMafIterator.html</anchorfile>
+      <anchor>a86142e2857bbbbb5a6090aa8a3c48361</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::vector< std::string ></type>
+      <name>species_</name>
+      <anchorfile>classbpp_1_1QualityFilterMafIterator.html</anchorfile>
+      <anchor>aca1bb54e75e14af0b2af7d33384e3b7f</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>unsigned int</type>
+      <name>windowSize_</name>
+      <anchorfile>classbpp_1_1QualityFilterMafIterator.html</anchorfile>
+      <anchor>ab82c912a9683233ad3445d9b1febe2ea</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>unsigned int</type>
+      <name>step_</name>
+      <anchorfile>classbpp_1_1QualityFilterMafIterator.html</anchorfile>
+      <anchor>a8c843aa89a028efda9efcbedb7441b17</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>unsigned int</type>
+      <name>minQual_</name>
+      <anchorfile>classbpp_1_1QualityFilterMafIterator.html</anchorfile>
+      <anchor>a219e7fbe9717e03e5c897cf441e8be3f</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::deque< MafBlock * ></type>
+      <name>blockBuffer_</name>
+      <anchorfile>classbpp_1_1QualityFilterMafIterator.html</anchorfile>
+      <anchor>a0c066ddaf6efa5f78bfc376afe3f76c7</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::deque< MafBlock * ></type>
+      <name>trashBuffer_</name>
+      <anchorfile>classbpp_1_1QualityFilterMafIterator.html</anchorfile>
+      <anchor>af991d92e273ffc5de4b33e97e7c9d30d</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::deque< std::vector< int > ></type>
+      <name>window_</name>
+      <anchorfile>classbpp_1_1QualityFilterMafIterator.html</anchorfile>
+      <anchor>a08cadd9341074c57d846b1e42f7866d0</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>bool</type>
+      <name>keepTrashedBlocks_</name>
+      <anchorfile>classbpp_1_1QualityFilterMafIterator.html</anchorfile>
+      <anchor>ad626ff929808c729393db098edbc6a16</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::SequenceFilterMafIterator</name>
+    <filename>classbpp_1_1SequenceFilterMafIterator.html</filename>
+    <base>bpp::AbstractFilterMafIterator</base>
+    <member kind="function">
+      <type></type>
+      <name>SequenceFilterMafIterator</name>
+      <anchorfile>classbpp_1_1SequenceFilterMafIterator.html</anchorfile>
+      <anchor>a31061f70dcb35e0ca7129bc3a8fa9a4f</anchor>
+      <arglist>(MafIterator *iterator, const std::vector< std::string > &species, bool strict=false, bool keep=false, bool rmDuplicates=false)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type></type>
+      <name>SequenceFilterMafIterator</name>
+      <anchorfile>classbpp_1_1SequenceFilterMafIterator.html</anchorfile>
+      <anchor>a6e8cc729bfe72c70c72804264f4ff2f5</anchor>
+      <arglist>(const SequenceFilterMafIterator &iterator)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>SequenceFilterMafIterator &</type>
+      <name>operator=</name>
+      <anchorfile>classbpp_1_1SequenceFilterMafIterator.html</anchorfile>
+      <anchor>aee1dcf07a5a0c5b4eaf590d6135e635d</anchor>
+      <arglist>(const SequenceFilterMafIterator &iterator)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>MafBlock *</type>
+      <name>analyseCurrentBlock_</name>
+      <anchorfile>classbpp_1_1SequenceFilterMafIterator.html</anchorfile>
+      <anchor>aef2e0423cd47e9f43de36f732bb178c0</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::vector< std::string ></type>
+      <name>species_</name>
+      <anchorfile>classbpp_1_1SequenceFilterMafIterator.html</anchorfile>
+      <anchor>a952887dc1136d2c9b8671a1f65af61b9</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>bool</type>
+      <name>strict_</name>
+      <anchorfile>classbpp_1_1SequenceFilterMafIterator.html</anchorfile>
+      <anchor>a2b33ed22c83bc43de86b684c2c6d8dd5</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>bool</type>
+      <name>keep_</name>
+      <anchorfile>classbpp_1_1SequenceFilterMafIterator.html</anchorfile>
+      <anchor>af9b38d614b8819e10d9db6fb04b4d05d</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>bool</type>
+      <name>rmDuplicates_</name>
+      <anchorfile>classbpp_1_1SequenceFilterMafIterator.html</anchorfile>
+      <anchor>a7c2c4f0bdf67cb3f95d06be262694798</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::SequenceStatisticsMafIterator</name>
+    <filename>classbpp_1_1SequenceStatisticsMafIterator.html</filename>
+    <base>bpp::AbstractFilterMafIterator</base>
+    <member kind="function">
+      <type></type>
+      <name>SequenceStatisticsMafIterator</name>
+      <anchorfile>classbpp_1_1SequenceStatisticsMafIterator.html</anchorfile>
+      <anchor>a53954c0f86bc35dd9bf7c9869a90fac4</anchor>
+      <arglist>(MafIterator *iterator, const std::vector< MafStatistics * > statistics)</arglist>
+    </member>
+    <member kind="function">
+      <type>const std::vector< const BppNumberI * > &</type>
+      <name>getResults</name>
+      <anchorfile>classbpp_1_1SequenceStatisticsMafIterator.html</anchorfile>
+      <anchor>a3ce2ca259d322a0f84ac77b53a82e407</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function">
+      <type>const std::vector< std::string > &</type>
+      <name>getResultsColumnNames</name>
+      <anchorfile>classbpp_1_1SequenceStatisticsMafIterator.html</anchorfile>
+      <anchor>a8573a0fc1804dd25fe686ec4d56adc80</anchor>
+      <arglist>() const </arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type></type>
+      <name>SequenceStatisticsMafIterator</name>
+      <anchorfile>classbpp_1_1SequenceStatisticsMafIterator.html</anchorfile>
+      <anchor>abd2a41993f4a033a5434b8b843aa0acf</anchor>
+      <arglist>(const SequenceStatisticsMafIterator &iterator)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>SequenceStatisticsMafIterator &</type>
+      <name>operator=</name>
+      <anchorfile>classbpp_1_1SequenceStatisticsMafIterator.html</anchorfile>
+      <anchor>af80e24ca9cca84d6978b4c5b6747e5e8</anchor>
+      <arglist>(const SequenceStatisticsMafIterator &iterator)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>MafBlock *</type>
+      <name>analyseCurrentBlock_</name>
+      <anchorfile>classbpp_1_1SequenceStatisticsMafIterator.html</anchorfile>
+      <anchor>a7506bbfa915b5e273a2f9bf3502ea977</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::vector< MafStatistics * ></type>
+      <name>statistics_</name>
+      <anchorfile>classbpp_1_1SequenceStatisticsMafIterator.html</anchorfile>
+      <anchor>a7fe9c1edfa60bcbc4d03087afbf22ff3</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::vector< const BppNumberI * ></type>
+      <name>results_</name>
+      <anchorfile>classbpp_1_1SequenceStatisticsMafIterator.html</anchorfile>
+      <anchor>a5db8097be9714eb7af4109cb21d3f8b5</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::vector< std::string ></type>
+      <name>names_</name>
+      <anchorfile>classbpp_1_1SequenceStatisticsMafIterator.html</anchorfile>
+      <anchor>a4fc17ff374085ce5928486b460e56ff5</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::SequenceStreamToMafIterator</name>
+    <filename>classbpp_1_1SequenceStreamToMafIterator.html</filename>
+    <base>bpp::AbstractMafIterator</base>
+    <member kind="function">
+      <type></type>
+      <name>SequenceStreamToMafIterator</name>
+      <anchorfile>classbpp_1_1SequenceStreamToMafIterator.html</anchorfile>
+      <anchor>a1a52f740dc94617789e9ff17dd124e60</anchor>
+      <arglist>(ISequenceStream *seqStream, std::istream *stream, bool parseMask=false, bool zeroBasedCoordinates=true)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type></type>
+      <name>SequenceStreamToMafIterator</name>
+      <anchorfile>classbpp_1_1SequenceStreamToMafIterator.html</anchorfile>
+      <anchor>a9495581e1e0a84330b3214e58f6ef8bd</anchor>
+      <arglist>(const SequenceStreamToMafIterator &ss2mi)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>SequenceStreamToMafIterator &</type>
+      <name>operator=</name>
+      <anchorfile>classbpp_1_1SequenceStreamToMafIterator.html</anchorfile>
+      <anchor>a554db75b572b164d8684ee8669523d93</anchor>
+      <arglist>(const SequenceStreamToMafIterator &ss2mi)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>MafBlock *</type>
+      <name>analyseCurrentBlock_</name>
+      <anchorfile>classbpp_1_1SequenceStreamToMafIterator.html</anchorfile>
+      <anchor>a4e10831e9b42695ed794b0928cd1411d</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::auto_ptr< ISequenceStream ></type>
+      <name>seqStream_</name>
+      <anchorfile>classbpp_1_1SequenceStreamToMafIterator.html</anchorfile>
+      <anchor>a2c365cabf84ca3da9fd1aee64b46db49</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::istream *</type>
+      <name>stream_</name>
+      <anchorfile>classbpp_1_1SequenceStreamToMafIterator.html</anchorfile>
+      <anchor>adf3f25e13e931afdbd8a9416c17de80e</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>bool</type>
+      <name>zeroBasedCoords_</name>
+      <anchorfile>classbpp_1_1SequenceStreamToMafIterator.html</anchorfile>
+      <anchor>a624bcb1db40d508634ffef634779251e</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>bool</type>
+      <name>firstBlock_</name>
+      <anchorfile>classbpp_1_1SequenceStreamToMafIterator.html</anchorfile>
+      <anchor>a4dd10e946752611cb85cd6165ab81d61</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::VcfOutputMafIterator</name>
+    <filename>classbpp_1_1VcfOutputMafIterator.html</filename>
+    <base>bpp::AbstractFilterMafIterator</base>
+    <member kind="function">
+      <type></type>
+      <name>VcfOutputMafIterator</name>
+      <anchorfile>classbpp_1_1VcfOutputMafIterator.html</anchorfile>
+      <anchor>af4fbb43870cec2082f39346463d80cbd</anchor>
+      <arglist>(MafIterator *iterator, std::ostream *out, const std::string &reference, const std::vector< std::string > &genotypes)</arglist>
+    </member>
+    <member kind="function">
+      <type>MafBlock *</type>
+      <name>analyseCurrentBlock_</name>
+      <anchorfile>classbpp_1_1VcfOutputMafIterator.html</anchorfile>
+      <anchor>a7bc46212e1d96c515367e5906df62fed</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type></type>
+      <name>VcfOutputMafIterator</name>
+      <anchorfile>classbpp_1_1VcfOutputMafIterator.html</anchorfile>
+      <anchor>a06cc4263053bc73bca35d10810bfbe91</anchor>
+      <arglist>(const VcfOutputMafIterator &iterator)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>VcfOutputMafIterator &</type>
+      <name>operator=</name>
+      <anchorfile>classbpp_1_1VcfOutputMafIterator.html</anchorfile>
+      <anchor>ac7150c59ef5f2dde53f4e5ad89d3b72c</anchor>
+      <arglist>(const VcfOutputMafIterator &iterator)</arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>void</type>
+      <name>writeHeader_</name>
+      <anchorfile>classbpp_1_1VcfOutputMafIterator.html</anchorfile>
+      <anchor>a81b02550b464146b29e24c6f7f1b190c</anchor>
+      <arglist>(std::ostream &out) const </arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>void</type>
+      <name>writeBlock_</name>
+      <anchorfile>classbpp_1_1VcfOutputMafIterator.html</anchorfile>
+      <anchor>a383b10dcfa8a6d034524d9b657065739</anchor>
+      <arglist>(std::ostream &out, const MafBlock &block) const </arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::ostream *</type>
+      <name>output_</name>
+      <anchorfile>classbpp_1_1VcfOutputMafIterator.html</anchorfile>
+      <anchor>aa05f6925b69ea58f4fc432afd08f663d</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::string</type>
+      <name>refSpecies_</name>
+      <anchorfile>classbpp_1_1VcfOutputMafIterator.html</anchorfile>
+      <anchor>a3dee55a754989f01de78b8630079f38c</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::vector< std::string ></type>
+      <name>genotypes_</name>
+      <anchorfile>classbpp_1_1VcfOutputMafIterator.html</anchorfile>
+      <anchor>a5e6ebb8b65793ee00612894d0053eafc</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="class">
+    <name>bpp::WindowSplitMafIterator</name>
+    <filename>classbpp_1_1WindowSplitMafIterator.html</filename>
+    <base>bpp::AbstractFilterMafIterator</base>
+    <member kind="function">
+      <type></type>
+      <name>WindowSplitMafIterator</name>
+      <anchorfile>classbpp_1_1WindowSplitMafIterator.html</anchorfile>
+      <anchor>afc5e60a1d7973fa49b4592ed893cf7a1</anchor>
+      <arglist>(MafIterator *iterator, unsigned int windowSize, short splitOption=CENTER)</arglist>
+    </member>
+    <member kind="variable" static="yes">
+      <type>static const short</type>
+      <name>RAGGED_LEFT</name>
+      <anchorfile>classbpp_1_1WindowSplitMafIterator.html</anchorfile>
+      <anchor>aadf32c7cadc35cf897e1e616d8bf6293</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" static="yes">
+      <type>static const short</type>
+      <name>RAGGED_RIGHT</name>
+      <anchorfile>classbpp_1_1WindowSplitMafIterator.html</anchorfile>
+      <anchor>a36f7d803dee33e7ca62ec6806cc42d7c</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" static="yes">
+      <type>static const short</type>
+      <name>CENTER</name>
+      <anchorfile>classbpp_1_1WindowSplitMafIterator.html</anchorfile>
+      <anchor>abaa9030317a26e79602cda1b3c9b7158</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" static="yes">
+      <type>static const short</type>
+      <name>ADJUST</name>
+      <anchorfile>classbpp_1_1WindowSplitMafIterator.html</anchorfile>
+      <anchor>afde73c4b7921122297c68255cb834685</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="function" protection="private">
+      <type>MafBlock *</type>
+      <name>analyseCurrentBlock_</name>
+      <anchorfile>classbpp_1_1WindowSplitMafIterator.html</anchorfile>
+      <anchor>a4104f0be8542967dae925bf8211a09a1</anchor>
+      <arglist>()</arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>unsigned int</type>
+      <name>windowSize_</name>
+      <anchorfile>classbpp_1_1WindowSplitMafIterator.html</anchorfile>
+      <anchor>acdb4eeb394a9b8a847917d6e218824aa</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>short</type>
+      <name>align_</name>
+      <anchorfile>classbpp_1_1WindowSplitMafIterator.html</anchorfile>
+      <anchor>abe2a229999ad0628101e5aa166ffb85c</anchor>
+      <arglist></arglist>
+    </member>
+    <member kind="variable" protection="private">
+      <type>std::deque< MafBlock * ></type>
+      <name>blockBuffer_</name>
+      <anchorfile>classbpp_1_1WindowSplitMafIterator.html</anchorfile>
+      <anchor>a25780f326b31d0c7fbdd131202a1532d</anchor>
+      <arglist></arglist>
+    </member>
+  </compound>
+  <compound kind="dir">
+    <name>Bpp</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/</path>
+    <filename>dir_b4185f083d1839e0639c310442fb68a8.html</filename>
+    <dir>Bpp/Seq</dir>
+  </compound>
+  <compound kind="dir">
+    <name>Bpp/Seq/Feature</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Feature/</path>
+    <filename>dir_8c8abb9f2ad7868a8e4632bd72c14c18.html</filename>
+    <dir>Bpp/Seq/Feature/Gff</dir>
+    <dir>Bpp/Seq/Feature/Gtf</dir>
+    <file>FeatureReader.h</file>
+    <file>SequenceFeature.cpp</file>
+    <file>SequenceFeature.h</file>
+    <file>SequenceFeatureTools.cpp</file>
+    <file>SequenceFeatureTools.h</file>
+  </compound>
+  <compound kind="dir">
+    <name>Bpp/Seq/Feature/Gff</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Feature/Gff/</path>
+    <filename>dir_c0bf08a5d2a47f401a6888f5e1d87c21.html</filename>
+    <file>GffFeatureReader.cpp</file>
+    <file>GffFeatureReader.h</file>
+  </compound>
+  <compound kind="dir">
+    <name>Bpp/Seq/Feature/Gtf</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Feature/Gtf/</path>
+    <filename>dir_09373788d42d67ba1bb1b5a4c9d36ae2.html</filename>
+    <file>GtfFeatureReader.cpp</file>
+    <file>GtfFeatureReader.h</file>
+  </compound>
+  <compound kind="dir">
+    <name>Bpp/Seq/Io</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/</path>
+    <filename>dir_5e67b57d7661860c73cf9ed56f8c6bb7.html</filename>
+    <dir>Bpp/Seq/Io/Maf</dir>
+    <file>Fastq.cpp</file>
+    <file>Fastq.h</file>
+  </compound>
+  <compound kind="dir">
+    <name>Bpp/Seq/Io/Maf</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/Io/Maf/</path>
+    <filename>dir_5cd58ecbcb201e183133cbca86be7628.html</filename>
+    <file>AlignmentFilterMafIterator.cpp</file>
+    <file>AlignmentFilterMafIterator.h</file>
+    <file>BlockLengthMafIterator.h</file>
+    <file>BlockMergerMafIterator.cpp</file>
+    <file>BlockMergerMafIterator.h</file>
+    <file>BlockSizeMafIterator.h</file>
+    <file>ChromosomeMafIterator.cpp</file>
+    <file>ChromosomeMafIterator.h</file>
+    <file>ConcatenateMafIterator.cpp</file>
+    <file>ConcatenateMafIterator.h</file>
+    <file>CoordinatesOutputMafIterator.cpp</file>
+    <file>CoordinatesOutputMafIterator.h</file>
+    <file>DuplicateFilterMafIterator.cpp</file>
+    <file>DuplicateFilterMafIterator.h</file>
+    <file>EntropyFilterMafIterator.cpp</file>
+    <file>EntropyFilterMafIterator.h</file>
+    <file>FeatureExtractorMafIterator.cpp</file>
+    <file>FeatureExtractorMafIterator.h</file>
+    <file>FeatureFilterMafIterator.cpp</file>
+    <file>FeatureFilterMafIterator.h</file>
+    <file>FullGapFilterMafIterator.cpp</file>
+    <file>FullGapFilterMafIterator.h</file>
+    <file>IterationListener.cpp</file>
+    <file>IterationListener.h</file>
+    <file>MafBlock.h</file>
+    <file>MafIterator.cpp</file>
+    <file>MafIterator.h</file>
+    <file>MafParser.cpp</file>
+    <file>MafParser.h</file>
+    <file>MafSequence.cpp</file>
+    <file>MafSequence.h</file>
+    <file>MafStatistics.cpp</file>
+    <file>MafStatistics.h</file>
+    <file>MaskFilterMafIterator.cpp</file>
+    <file>MaskFilterMafIterator.h</file>
+    <file>OrphanSequenceFilterMafIterator.cpp</file>
+    <file>OrphanSequenceFilterMafIterator.h</file>
+    <file>OutputAlignmentMafIterator.cpp</file>
+    <file>OutputAlignmentMafIterator.h</file>
+    <file>OutputMafIterator.cpp</file>
+    <file>OutputMafIterator.h</file>
+    <file>QualityFilterMafIterator.cpp</file>
+    <file>QualityFilterMafIterator.h</file>
+    <file>SequenceFilterMafIterator.cpp</file>
+    <file>SequenceFilterMafIterator.h</file>
+    <file>SequenceStatisticsMafIterator.cpp</file>
+    <file>SequenceStatisticsMafIterator.h</file>
+    <file>SequenceStreamToMafIterator.cpp</file>
+    <file>SequenceStreamToMafIterator.h</file>
+    <file>VcfOutputMafIterator.cpp</file>
+    <file>VcfOutputMafIterator.h</file>
+    <file>WindowSplitMafIterator.cpp</file>
+    <file>WindowSplitMafIterator.h</file>
+  </compound>
+  <compound kind="dir">
+    <name>Bpp/Seq</name>
+    <path>/home/jdutheil/Devel/Cpp/Projects/bpp-seq-omics/src/Bpp/Seq/</path>
+    <filename>dir_a6df4600355513c0d02be2734b44b033.html</filename>
+    <dir>Bpp/Seq/Feature</dir>
+    <dir>Bpp/Seq/Io</dir>
+  </compound>
+  <compound kind="page">
+    <name>index</name>
+    <title></title>
+    <filename>index</filename>
+  </compound>
+</tagfile>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 729e02a..75b241a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -102,9 +102,9 @@ ENDIF(NO_DEP_CHECK)
 # Packager
 SET(CPACK_PACKAGE_NAME "libbpp-seq-omics")
 SET(CPACK_PACKAGE_VENDOR "Bio++ Development Team")
-SET(CPACK_PACKAGE_VERSION "2.1.0")
+SET(CPACK_PACKAGE_VERSION "2.2.0")
 SET(CPACK_PACKAGE_VERSION_MAJOR "2")
-SET(CPACK_PACKAGE_VERSION_MINOR "1")
+SET(CPACK_PACKAGE_VERSION_MINOR "2")
 SET(CPACK_PACKAGE_VERSION_PATCH "0")
 SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "The Bio++ Sequence-Omics library")
 SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING.txt")
@@ -122,7 +122,6 @@ SET(CPACK_SOURCE_IGNORE_FILES
  ".*\\\\.deb"
  ".*\\\\.rpm"
  ".*\\\\.dmg"
- ".*\\\\.sh"
  ".*\\\\..*\\\\.swp"
  "src/\\\\..*"
  "src/libbpp*"
diff --git a/ChangeLog b/ChangeLog
index 240f0aa..e1885cb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+22/09/14 -*- Version 2.2.0 -*-
+
+22/08/13 Julien Dutheil
+* Sequence diversity estimators (Watterson theta)
+
+12/08/13 Julien Dutheil
+* New Four species statistics
+
 06/03/13 -*- Version 2.1.0 -*-
 
 05/02/13 Julien Dutheil
diff --git a/Doxyfile b/Doxyfile
index f28d234..5c2d0d1 100644
--- a/Doxyfile
+++ b/Doxyfile
@@ -32,7 +32,7 @@ PROJECT_NAME           = bpp-seq-omics
 # This could be handy for archiving the generated documentation or 
 # if some version control system is used.
 
-PROJECT_NUMBER         = 2.1.0
+PROJECT_NUMBER         = 2.2.0
 
 # Using the PROJECT_BRIEF tag one can provide an optional one line description 
 # for a project that appears at the top of each page and should give viewer 
diff --git a/bpp-seq-omics.spec b/bpp-seq-omics.spec
index fbd9a28..3aab529 100644
--- a/bpp-seq-omics.spec
+++ b/bpp-seq-omics.spec
@@ -1,5 +1,5 @@
 %define _basename bpp-seq-omics
-%define _version 2.1.0
+%define _version 2.2.0
 %define _release 1
 %define _prefix /usr
 
@@ -179,6 +179,9 @@ exit 0
 %{_prefix}/include/*
 
 %changelog
+* Mon Sep 22 2014 Julien Dutheil <julien.dutheil at univ-montp2.fr> 2.2.0-1
+- New statistics, including sequence diversity estimators
+- Several bugs and memory leaks fixed.
 * Wed Mar 06 2013 Julien Dutheil <julien.dutheil at univ-montp2.fr> 2.1.0-1
 - Maf to VCF tool added as a MafIterator.
 * Tue Nov 06 2012 Julien Dutheil <julien.dutheil at univ-montp2.fr> 2.0.3-1
diff --git a/debian/changelog b/debian/changelog
index ddba212..b38ff21 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+libbpp-seq-omics (2.2.0-1) unstable; urgency=low
+
+  * New statistics, including sequence diversity estimators
+  * Several bugs and memory leaks fixed.
+
+ -- Julien Dutheil <julien.dutheil at univ-montp2.fr>  Mon, 22 Sep 2014 14:00:00 +0100
+
 libbpp-seq-omics (2.1.0-1) unstable; urgency=low
 
   * Maf to VCF tool added as a MafIterator.
diff --git a/debian/control b/debian/control
index d2eda1d..62aa8e5 100644
--- a/debian/control
+++ b/debian/control
@@ -4,14 +4,14 @@ Priority: optional
 Maintainer: Loic Dachary <loic at dachary.org>
 Uploaders: Julien Dutheil <julien.dutheil at univ-montp2.fr>
 Build-Depends: debhelper (>= 5), cmake (>= 2.6),
-  libbpp-seq-dev (>= 2.1.0)
+  libbpp-seq-dev (>= 2.2.0)
 Standards-Version: 3.9.4
 
 Package: libbpp-seq-omics-dev
 Section: libdevel
 Architecture: any
 Depends: libbpp-seq-omics1 (= ${binary:Version}), ${misc:Depends},
-  libbpp-seq-dev (>= 2.1.0)
+  libbpp-seq-dev (>= 2.2.0)
 Description: Bio++ Sequence library: genomics components.
  Contains the Bio++ sequence classes dedicated to genomics.
 
@@ -19,7 +19,7 @@ Package: libbpp-seq-omics1
 Section: libs
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends},
-  libbpp-seq9 (>= 2.1.0)
+  libbpp-seq9 (>= 2.2.0)
 Description: Bio++ Sequence library: genomics components.
  Contains the Bio++ sequence classes dedicated to genomics.
 
diff --git a/debian/copyright b/debian/copyright
index 071c61f..9eb55d6 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -1,5 +1,5 @@
 This package was debianized by Julien Dutheil <julien.dutheil at univ-montp2.fr> on
-Wed, 06 Mar 2013 14:34:00 +0100.
+Wed, 22 Sep 2014 14:00:00 +0100.
 
 It was downloaded from <http://biopp.univ-montp2.fr/Repositories/sources>
 
@@ -9,7 +9,7 @@ Upstream Author:
 
 Copyright: 
 
-    Copyright (C) 2013 Bio++ Development Team
+    Copyright (C) 2014 Bio++ Development Team
 
 License:
 
@@ -30,7 +30,7 @@ License:
 On Debian systems, the complete text of the GNU General
 Public License can be found in `/usr/share/common-licenses/GPL'.
 
-The Debian packaging is (C) 2013, Julien Dutheil <julien.dutheil at univ-montp2.fr> and
+The Debian packaging is (C) 2014, Julien Dutheil <julien.dutheil at univ-montp2.fr> and
 is licensed under the GPL, see above.
 
 The provided software is distributed under the CeCILL license:
diff --git a/genIncludes.sh b/genIncludes.sh
new file mode 100755
index 0000000..56710e9
--- /dev/null
+++ b/genIncludes.sh
@@ -0,0 +1,35 @@
+#! /bin/bash
+
+createGeneric() {
+  echo "-- Creating generic include file: $1.all"
+  #Make sure we run into subdirectories first:
+  dirs=()
+  for file in "$1"/*
+  do
+    if [ -d "$file" ]
+    then
+      # Recursion:
+      dirs+=( "$file" )
+    fi
+  done
+  for dir in ${dirs[@]}
+  do
+    createGeneric $dir
+  done
+  #Now list all files, including newly created .all files:
+  if [ -f $1.all ]
+  then
+    rm $1.all
+  fi
+  dir=`basename $1`
+  for file in "$1"/*
+  do
+    if [ -f "$file" ] && ( [ "${file##*.}" == "h" ] || [ "${file##*.}" == "all" ] )
+    then
+      file=`basename $file`
+      echo "#include \"$dir/$file\"" >> $1.all
+    fi
+  done;
+}
+
+createGeneric $1
diff --git a/src/Bpp/Seq/Feature/SequenceFeatureTools.cpp b/src/Bpp/Seq/Feature/SequenceFeatureTools.cpp
index cd89876..f90a2c9 100644
--- a/src/Bpp/Seq/Feature/SequenceFeatureTools.cpp
+++ b/src/Bpp/Seq/Feature/SequenceFeatureTools.cpp
@@ -41,7 +41,7 @@ knowledge of the CeCILL license and that you accept its terms.
 
 //From bpp-seq:
 #include <Bpp/Seq/SequenceTools.h> 
-#include <Bpp/Seq/Alphabet/StandardCodonAlphabet.h>
+#include <Bpp/Seq/Alphabet/CodonAlphabet.h>
 #include <Bpp/Seq/Alphabet/AlphabetTools.h>
 #include <Bpp/Seq/Alphabet/AlphabetExceptions.h>
 
@@ -65,20 +65,21 @@ Sequence* SequenceFeatureTools::extract(const Sequence& seq, const SeqRange& ran
 
 /******************************************************************************/
 
-unsigned int SequenceFeatureTools::getOrfs(const Sequence& seq, SequenceFeatureSet& featSet) {
+unsigned int SequenceFeatureTools::getOrfs(const Sequence& seq, SequenceFeatureSet& featSet, const GeneticCode& gCode)
+{
   if (! AlphabetTools::isNucleicAlphabet(seq.getAlphabet())) {
     throw AlphabetException("SequenceFeatureTools::getOrfs: Sequence alphabet must be nucleic!", seq.getAlphabet());
   }
   unsigned int orfCpt = 0;
-  StandardCodonAlphabet codonAlpha(dynamic_cast<const NucleicAlphabet*>(seq.getAlphabet()));
+  const CodonAlphabet* codonAlpha = gCode.getSourceAlphabet();
   std::vector< std::vector<size_t> > starts(3), stops(3);
   size_t phase = 0;
   for (size_t p = 0 ; p < seq.size() - 2 ; p++) {
     phase = p % 3;
-    if (codonAlpha.isInit(codonAlpha.getCodon(seq.getValue(p), seq.getValue(p + 1), seq.getValue(p + 2)))) {
+    if (gCode.isStart(codonAlpha->getCodon(seq.getValue(p), seq.getValue(p + 1), seq.getValue(p + 2)))) {
       starts[phase].push_back(p);
       //std::cerr << "Start: " << p << " (" << phase << ")" << std::endl;
-    } else if (codonAlpha.isStop(codonAlpha.getCodon(seq.getValue(p), seq.getValue(p + 1), seq.getValue(p + 2)))) {
+    } else if (gCode.isStop(codonAlpha->getCodon(seq.getValue(p), seq.getValue(p + 1), seq.getValue(p + 2)))) {
       stops[phase].push_back(p);
       //std::cerr << "Stop:  " << p << " (" << phase << ")" << std::endl;
     }
diff --git a/src/Bpp/Seq/Feature/SequenceFeatureTools.h b/src/Bpp/Seq/Feature/SequenceFeatureTools.h
index cb32c80..7bbb152 100644
--- a/src/Bpp/Seq/Feature/SequenceFeatureTools.h
+++ b/src/Bpp/Seq/Feature/SequenceFeatureTools.h
@@ -44,6 +44,7 @@ knowledge of the CeCILL license and that you accept its terms.
 
 //From bpp-seq:
 #include <Bpp/Seq/Sequence.h>
+#include <Bpp/Seq/GeneticCode/GeneticCode.h>
 
 namespace bpp {
 
@@ -69,10 +70,13 @@ class SequenceFeatureTools
      *
      * @param seq The Sequence where to find ORF. Must be a nucleic sequence.
      * @param featSet A SequenceFeatureSet to fill with the annotations.
+     * @param gCode The genetic code to use.
      * @return The number of ORF found.
      * @author Sylvain Gaillard
      */
-    static unsigned int getOrfs(const Sequence& seq, SequenceFeatureSet& featSet);
+    static unsigned int getOrfs(const Sequence& seq,
+        SequenceFeatureSet& featSet,
+        const GeneticCode& gCode);
 
 };
 
diff --git a/src/Bpp/Seq/Io/Maf/BlockMergerMafIterator.cpp b/src/Bpp/Seq/Io/Maf/BlockMergerMafIterator.cpp
index 3c1930f..9bb3886 100644
--- a/src/Bpp/Seq/Io/Maf/BlockMergerMafIterator.cpp
+++ b/src/Bpp/Seq/Io/Maf/BlockMergerMafIterator.cpp
@@ -61,9 +61,9 @@ MafBlock* BlockMergerMafIterator::analyseCurrentBlock_() throw (Exception)
         if (!seq1->hasCoordinates() || !seq2->hasCoordinates())
           throw Exception("BlockMergerMafIterator::nextBlock. Species '" + species_[i] + "' is missing coordinates in at least one block.");
 
-        if (seq1->stop() >= seq2->start())
+        if (seq1->stop() > seq2->start())
           return currentBlock_;
-        size_t space = seq2->start() - seq1->stop() - 1;
+        size_t space = seq2->start() - seq1->stop();
         if (space > maxDist_)
           return currentBlock_;
         if (i == 0)
diff --git a/src/Bpp/Seq/Io/Maf/IterationListener.cpp b/src/Bpp/Seq/Io/Maf/CoordinatesOutputMafIterator.cpp
similarity index 56%
copy from src/Bpp/Seq/Io/Maf/IterationListener.cpp
copy to src/Bpp/Seq/Io/Maf/CoordinatesOutputMafIterator.cpp
index 5e58ef4..305a60f 100644
--- a/src/Bpp/Seq/Io/Maf/IterationListener.cpp
+++ b/src/Bpp/Seq/Io/Maf/CoordinatesOutputMafIterator.cpp
@@ -1,11 +1,11 @@
 //
-// File: IterationListener.cpp
+// File: CoordinatesOutputMafIterator.cpp
 // Authors: Julien Dutheil
-// Created: Wed Jun 27 2012
+// Created: Mon Jun 02 2014
 //
 
 /*
-Copyright or © or Copr. Bio++ Development Team, (2012)
+Copyright or © or Copr. Bio++ Development Team, (2014)
 
 This software is a computer program whose purpose is to provide classes
 for sequences analysis.
@@ -37,39 +37,38 @@ The fact that you are presently reading this means that you have had
 knowledge of the CeCILL license and that you accept its terms.
 */
 
-#include "IterationListener.h"
+#include "CoordinatesOutputMafIterator.h"
 
-// From the STL:
-#include <vector>
-
-using namespace std;
 using namespace bpp;
+using namespace std;
 
-void CsvStatisticsOutputIterationListener::iterationStarts()
+void CoordinatesOutputMafIterator::writeHeader_(ostream& out) const
 {
-  const vector<string>& header = statsIterator_->getResultsColumnNames();
-  *output_ << "Chr" << sep_ << "Start" << sep_ << "Stop";
-  for (size_t i = 0; i < header.size(); ++i) {
-    *output_ << sep_ << header[i];
+  for (size_t i = 0; i < species_.size(); ++i) {
+    if (i > 0) out << "\t";
+    string sp = species_[i];
+    out << sp << ".chr\t" << sp << ".strand\t" << sp << ".start\t" << sp << ".stop";
   }
-  output_->endLine();
+  out << endl;
 }
 
-void CsvStatisticsOutputIterationListener::iterationMoves(const MafBlock& currentBlock)
+MafBlock* CoordinatesOutputMafIterator::analyseCurrentBlock_() throw (Exception)
 {
-  const vector<double>& values = statsIterator_->getResults();
-  if (currentBlock.hasSequenceForSpecies(refSpecies_)) {
-    const MafSequence& refSeq = currentBlock.getSequenceForSpecies(refSpecies_);
-    if (refSeq.hasCoordinates()) 
-      *output_ << refSeq.getChromosome() << sep_ << refSeq.start() << sep_ << refSeq.stop();
-    else
-      *output_ << "NA" << sep_ << "NA" << sep_ << "NA";
-  } else {
-    *output_ << "NA" << sep_ << "NA" << sep_ << "NA";
-  }
-  for (size_t i = 0; i < values.size(); ++i) {
-    *output_ << sep_ << values[i];
+  currentBlock_ = iterator_->nextBlock();
+  if (currentBlock_) {
+    for (size_t i = 0; i < species_.size(); ++i) {
+      if (i > 0) *output_ << "\t";
+      vector<const MafSequence*> seqs = currentBlock_->getSequencesForSpecies(species_[i]);
+      if (seqs.size() > 1)
+        throw Exception("CoordinatesOutputMafIterator::analyseCurrentBlock_(). There is more than one sequence for species '" + species_[i] + "' in current block.");
+      else if (seqs.size() == 0) {
+        *output_ << "NA\tNA\tNA\tNA";
+      } else {
+        *output_ << seqs[0]->getChromosome() << "\t" << seqs[0]->getStrand() << "\t" << seqs[0]->start() << "\t" << seqs[0]->stop();
+      }
+    }
+    *output_ << endl;
   }
-  output_->endLine();
+  return currentBlock_;
 }
 
diff --git a/src/Bpp/Seq/Io/Maf/OrphanSequenceFilterMafIterator.h b/src/Bpp/Seq/Io/Maf/CoordinatesOutputMafIterator.h
similarity index 55%
copy from src/Bpp/Seq/Io/Maf/OrphanSequenceFilterMafIterator.h
copy to src/Bpp/Seq/Io/Maf/CoordinatesOutputMafIterator.h
index 0bda4f5..0ae520c 100644
--- a/src/Bpp/Seq/Io/Maf/OrphanSequenceFilterMafIterator.h
+++ b/src/Bpp/Seq/Io/Maf/CoordinatesOutputMafIterator.h
@@ -1,11 +1,11 @@
 //
-// File: OrphanSequenceFilterMafIterator.h
+// File: CoordinatesOutputMafIterator.h
 // Authors: Julien Dutheil
-// Created: Mon Mar 11 2013
+// Created: Mon Jun 02 2014
 //
 
 /*
-Copyright or © or Copr. Bio++ Development Team, (2013)
+Copyright or © or Copr. Bio++ Development Team, (2014)
 
 This software is a computer program whose purpose is to provide classes
 for sequences analysis.
@@ -37,66 +37,66 @@ The fact that you are presently reading this means that you have had
 knowledge of the CeCILL license and that you accept its terms.
 */
 
-#ifndef _ORPHANSEQUENCEFILTERMAFITERATOR_H_
-#define _ORPHANSEQUENCEFILTERMAFITERATOR_H_
+#ifndef _COORDINATESOUTPUTMAFITERATOR_H_
+#define _COORDINATESOUTPUTMAFITERATOR_H_
 
 #include "MafIterator.h"
 
 //From the STL:
 #include <iostream>
 #include <string>
-#include <deque>
 
 namespace bpp {
 
 /**
- * @brief Filter maf blocks to keep a the ones which display a specified combination of species.
+ * @brief Output each sequence coordinates for each block.
  *
- * This filter is typically used to retrieve "orphan" sequences, that is sequences only present in one (set of) species.
+ * The set of species for which coordinates are output is provided as argument.
+ * The current implementation outputs results as a table to a file. Later implementation
+ * may involve a dedicated data structure for other application usage (file indexing and so one).
  */
-class OrphanSequenceFilterMafIterator:
+class CoordinatesOutputMafIterator:
   public AbstractFilterMafIterator
 {
   private:
+    std::ostream* output_;
     std::vector<std::string> species_;
-    bool strict_;
-    bool rmDuplicates_;
 
   public:
     /**
+     * @brief Creates a new CoordinatesOutputMafIterator object.
+     *
      * @param iterator The input iterator.
-     * @param species The list of species names to be retained.
-     * @param strict If true, then block that do not contain all  of the specified species will be discarded.
-     * @param rmDuplicates If true, block that contain more than one instance for at least one species will be discarded.
+     * @param out A pointer toward the output stream. The stream will not be own by this instance, and will not be copied neither destroyed.
+     * @param species A vector of species names for which coordinates should be output. In case of missing species for one block, NA will be produced.
      */
-    OrphanSequenceFilterMafIterator(MafIterator* iterator, const std::vector<std::string>& species, bool strict = false, bool keep = false, bool rmDuplicates = false) :
-      AbstractFilterMafIterator(iterator),
-      species_(species),
-      strict_(strict),
-      rmDuplicates_(rmDuplicates)
-    {}
+    CoordinatesOutputMafIterator(MafIterator* iterator, std::ostream* out, const std::vector<std::string>& species):
+      AbstractFilterMafIterator(iterator), output_(out), species_(species)
+    {
+      if (output_)
+        writeHeader_(*output_);
+    }
 
   private:
-    OrphanSequenceFilterMafIterator(const OrphanSequenceFilterMafIterator& iterator) :
+    CoordinatesOutputMafIterator(const CoordinatesOutputMafIterator& iterator) :
       AbstractFilterMafIterator(0),
-      species_(iterator.species_),
-      strict_(iterator.strict_),
-      rmDuplicates_(iterator.rmDuplicates_)
+      output_(iterator.output_),
+      species_(iterator.species_)
     {}
     
-    OrphanSequenceFilterMafIterator& operator=(const OrphanSequenceFilterMafIterator& iterator)
+    CoordinatesOutputMafIterator& operator=(const CoordinatesOutputMafIterator& iterator)
     {
-      species_       = iterator.species_;
-      strict_        = iterator.strict_;
-      rmDuplicates_  = iterator.rmDuplicates_;
+      output_ = iterator.output_;
+      species_ = iterator.species_;
       return *this;
     }
 
   private:
+    void writeHeader_(std::ostream& out) const;
     MafBlock* analyseCurrentBlock_() throw (Exception);
 
 };
 
 } // end of namespace bpp.
 
-#endif //_ORPHANSEQUENCEFILTERMAFITERATOR_H_
+#endif //_COORDINATESOUTPUTMAFITERATOR_H_
diff --git a/src/Bpp/Seq/Io/Maf/EntropyFilterMafIterator.cpp b/src/Bpp/Seq/Io/Maf/EntropyFilterMafIterator.cpp
index 73dbdd3..9d5ae15 100644
--- a/src/Bpp/Seq/Io/Maf/EntropyFilterMafIterator.cpp
+++ b/src/Bpp/Seq/Io/Maf/EntropyFilterMafIterator.cpp
@@ -107,7 +107,7 @@ MafBlock* EntropyFilterMafIterator::analyseCurrentBlock_() throw (Exception)
         if (verbose_)
           ApplicationTools::displayGauge(i - windowSize_, nc - windowSize_ - 1, '>');
         //Evaluate current window:
-        unsigned int count = std::accumulate(window_.begin(), window_.end(), 0);
+        unsigned int count = std::accumulate(window_.begin(), window_.end(), 0u);
         if (count > maxPos_) {
           if (pos.size() == 0) {
             pos.push_back(i - windowSize_);
@@ -138,7 +138,7 @@ MafBlock* EntropyFilterMafIterator::analyseCurrentBlock_() throw (Exception)
       }
 
       //Evaluate last window:
-      unsigned int count = std::accumulate(window_.begin(), window_.end(), 0);
+      unsigned int count = std::accumulate(window_.begin(), window_.end(), 0u);
       if (count > maxPos_) {
         if (pos.size() == 0) {
           pos.push_back(i - windowSize_);
diff --git a/src/Bpp/Seq/Io/Maf/FeatureExtractorMafIterator.cpp b/src/Bpp/Seq/Io/Maf/FeatureExtractorMafIterator.cpp
index 1b9b2e8..721dae0 100644
--- a/src/Bpp/Seq/Io/Maf/FeatureExtractorMafIterator.cpp
+++ b/src/Bpp/Seq/Io/Maf/FeatureExtractorMafIterator.cpp
@@ -52,11 +52,12 @@ using namespace std;
 
 MafBlock* FeatureExtractor::analyseCurrentBlock_() throw (Exception)
 {
-  if (blockBuffer_.size() == 0) {
+  while (blockBuffer_.size() == 0) {
     //Unless there is no more block in the buffer, we need to parse more:
+    auto_ptr<MafBlock> block;
     START:
-    MafBlock* block = iterator_->nextBlock();
-    if (!block) return 0; //No more block.
+    block.reset(iterator_->nextBlock());
+    if (!block.get()) return 0; //No more block.
 
     //Check if the block contains the reference species:
     if (!block->hasSequenceForSpecies(refSpecies_))
@@ -71,12 +72,24 @@ MafBlock* FeatureExtractor::analyseCurrentBlock_() throw (Exception)
         
     RangeSet<size_t> ranges = mr->second;
     if (completeOnly_)
-      ranges.filterWithin(Range<size_t>(refSeq.start(), refSeq.stop()));
+      ranges.filterWithin(refSeq.getRange(true));
     else  
-      ranges.restrictTo(Range<size_t>(refSeq.start(), refSeq.stop()));
+      ranges.restrictTo(refSeq.getRange(true));
     if (ranges.isEmpty())
       goto START;
 
+    //If the reference sequence is on the negative strand, then we have to correct the coordinates:
+    if (refSeq.getStrand() == '-') {
+      RangeSet<size_t> cRanges;
+      for (set<Range<size_t>*>::iterator it = ranges.getSet().begin();
+          it !=  ranges.getSet().end();
+          ++it)
+      {
+        cRanges.addRange(Range<size_t>(refSeq.getSrcSize() - (**it).end(), refSeq.getSrcSize() - (**it).begin()));
+      }
+      ranges = cRanges;
+    }
+
     //We will need to convert to alignment positions, using a sequence walker:
     SequenceWalker walker(refSeq);
 
@@ -118,7 +131,6 @@ MafBlock* FeatureExtractor::analyseCurrentBlock_() throw (Exception)
     if (verbose_)
       ApplicationTools::displayTaskDone();
 
-    delete block;
   }
 
   MafBlock* nxtBlock = blockBuffer_.front();
diff --git a/src/Bpp/Seq/Io/Maf/FeatureFilterMafIterator.cpp b/src/Bpp/Seq/Io/Maf/FeatureFilterMafIterator.cpp
index 578ed83..1e4e674 100644
--- a/src/Bpp/Seq/Io/Maf/FeatureFilterMafIterator.cpp
+++ b/src/Bpp/Seq/Io/Maf/FeatureFilterMafIterator.cpp
@@ -75,15 +75,26 @@ MafBlock* FeatureFilterMafIterator::analyseCurrentBlock_() throw (Exception)
       }
       //else
       MultiRange<size_t> mRange = mr->second;
-      mRange.restrictTo(Range<size_t>(refSeq.start(), refSeq.stop() + 1));
+      //mRange.restrictTo(Range<size_t>(refSeq.start(), refSeq.stop() + 1)); jdutheil on 17/04/13: do we really need the +1 here?
+      mRange.restrictTo(refSeq.getRange(true));
       if (mRange.isEmpty()) {
         if (logstream_) {
           (*logstream_ << "FEATURE FILTER: block " << block->getDescription() << " does not contain any feature and was kept as is.").endLine(); 
         }
         return block;
       }
-      std::vector<size_t> tmp = mRange.getBounds(); 
-      std::deque<size_t> refBounds(tmp.begin(), tmp.end()); 
+      std::vector<size_t> tmp = mRange.getBounds();
+
+      //If the reference sequence is on the negative strand, then we have to correct the coordinates:
+      std::deque<size_t> refBounds;
+      if (refSeq.getStrand() == '-') {
+        for (size_t i = 0; i < tmp.size(); ++i)
+        {
+          refBounds.push_front(refSeq.getSrcSize() - tmp[i]);
+        }
+      } else {
+        refBounds = deque<size_t>(tmp.begin(), tmp.end());
+      }
 
       //Now extract corresponding alignments. We use the range to split the original block.
       //Only thing to watch out is the coordinates, refering to the ref species...
@@ -91,6 +102,7 @@ MafBlock* FeatureFilterMafIterator::analyseCurrentBlock_() throw (Exception)
 
       int gap = refSeq.getAlphabet()->getGapCharacterCode();
       long int refPos = static_cast<long int>(refSeq.start()) - 1;
+      //long int refPos = refSeq.getStrand() == '-' ? static_cast<long int>(refSeq.getSrcSize() - refSeq.start()) - 1 : static_cast<long int>(refSeq.start()) - 1;
       std::vector<size_t> pos;
       if (verbose_) {
         ApplicationTools::message->endLine();
@@ -98,7 +110,7 @@ MafBlock* FeatureFilterMafIterator::analyseCurrentBlock_() throw (Exception)
       }
       for (size_t alnPos = 0; alnPos < refSeq.size() && refBounds.size() > 0; ++alnPos) {
         if (verbose_)
-          ApplicationTools::displayGauge(alnPos, refSeq.size() - 1, '>');
+          ApplicationTools::displayGauge(alnPos, refBounds.back(), '>');
         if (refSeq[alnPos] != gap) {
           refPos++;
           //check if this position is a bound:
@@ -112,14 +124,14 @@ MafBlock* FeatureFilterMafIterator::analyseCurrentBlock_() throw (Exception)
         ApplicationTools::displayTaskDone();
 
       //Check if the last bound matches the end of the alignment:
-      if (refBounds.size() > 0 && refBounds.front() == refSeq.stop() + 1) {
+      if (refBounds.size() > 0 && refBounds.front() == refSeq.stop()) {
         pos.push_back(refSeq.size());
         refBounds.pop_front();
       }
 
       if (refBounds.size() > 0) {
         VectorTools::print(vector<size_t>(refBounds.begin(), refBounds.end()));
-        throw Exception("FeatureFilterMafIterator::nextBlock(). An error occurred here, " + TextTools::toString(refBounds.size()) + " coordinates are left... this is most likely a bug, please report!");
+        throw Exception("FeatureFilterMafIterator::nextBlock(). An error occurred here, " + TextTools::toString(refBounds.size()) + " coordinates are left, in sequence " + refSeq.getDescription() + "... this is most likely a bug, please report!");
       }
 
       //Next step is simply to split the black according to the translated coordinates:
diff --git a/src/Bpp/Seq/Io/Maf/IterationListener.cpp b/src/Bpp/Seq/Io/Maf/IterationListener.cpp
index 5e58ef4..703b765 100644
--- a/src/Bpp/Seq/Io/Maf/IterationListener.cpp
+++ b/src/Bpp/Seq/Io/Maf/IterationListener.cpp
@@ -57,7 +57,7 @@ void CsvStatisticsOutputIterationListener::iterationStarts()
 
 void CsvStatisticsOutputIterationListener::iterationMoves(const MafBlock& currentBlock)
 {
-  const vector<double>& values = statsIterator_->getResults();
+  const vector<const BppNumberI*>& values = statsIterator_->getResults();
   if (currentBlock.hasSequenceForSpecies(refSpecies_)) {
     const MafSequence& refSeq = currentBlock.getSequenceForSpecies(refSpecies_);
     if (refSeq.hasCoordinates()) 
@@ -68,7 +68,9 @@ void CsvStatisticsOutputIterationListener::iterationMoves(const MafBlock& curren
     *output_ << "NA" << sep_ << "NA" << sep_ << "NA";
   }
   for (size_t i = 0; i < values.size(); ++i) {
-    *output_ << sep_ << values[i];
+    *output_ << sep_ << (values[i] ? values[i]->toString() : "NA");
+    //Memory cleaning:
+    if (values[i]) delete values[i];
   }
   output_->endLine();
 }
diff --git a/src/Bpp/Seq/Io/Maf/MafParser.cpp b/src/Bpp/Seq/Io/Maf/MafParser.cpp
index 4043d51..8720977 100644
--- a/src/Bpp/Seq/Io/Maf/MafParser.cpp
+++ b/src/Bpp/Seq/Io/Maf/MafParser.cpp
@@ -88,7 +88,8 @@ MafBlock* MafParser::analyseCurrentBlock_() throw (Exception)
         KeyvalTools::multipleKeyvals(line.substr(2), args, " ");
 
         if (args.find("score") != args.end())
-          block->setScore(TextTools::toDouble(args["score"]));
+          if (args["score"] != "NA")
+            block->setScore(TextTools::toDouble(args["score"]));
     
         if (args.find("pass") != args.end())
           block->setPass(TextTools::to<unsigned int>(args["pass"]));
diff --git a/src/Bpp/Seq/Io/Maf/MafSequence.h b/src/Bpp/Seq/Io/Maf/MafSequence.h
index dc4bf4a..c5278e8 100644
--- a/src/Bpp/Seq/Io/Maf/MafSequence.h
+++ b/src/Bpp/Seq/Io/Maf/MafSequence.h
@@ -109,12 +109,23 @@ class MafSequence:
     }
 
     size_t stop() const { 
-      if (hasCoordinates_) return begin_ + size_ - 1;
+      if (hasCoordinates_) return begin_ + size_;
       else throw Exception("MafSequence::stop(). Sequence " + getName() + " does not have coordinates.");
     }
 
-    Range<size_t> getRange() const {
-      if (hasCoordinates_) return Range<size_t>(start(), stop());
+    /**
+     * @return A range with cooridinates from this sequence.
+     * @param origin Tell if coorinates according to original sequence should be used.
+     * If 'yes' and the sequence is on the negative strand, the returned rang will be computed as [SrcSize-Stop, SrcSize-Start[
+     */
+    Range<size_t> getRange(bool origin=true) const {
+      if (hasCoordinates_) {
+        if (origin && strand_ == '-') {
+          return Range<size_t>(srcSize_ - stop(), srcSize_ - start());
+        } else {
+          return Range<size_t>(start(), stop());
+        }
+      }
       else throw Exception("MafSequence::getRange(). Sequence " + getName() + " does not have coordinates.");
     }
 
diff --git a/src/Bpp/Seq/Io/Maf/MafStatistics.cpp b/src/Bpp/Seq/Io/Maf/MafStatistics.cpp
index f0194a5..01b2367 100644
--- a/src/Bpp/Seq/Io/Maf/MafStatistics.cpp
+++ b/src/Bpp/Seq/Io/Maf/MafStatistics.cpp
@@ -92,7 +92,7 @@ void CharacterCountsMafStatistics::compute(const MafBlock& block)
   result_.setValue("Unresolved", countUnres);
 }
 
-SiteContainer* AbstractSpeciesSelectionMafStatistics::getSiteContainer(const MafBlock& block)
+SiteContainer* AbstractSpeciesSelectionMafStatistics::getSiteContainer_(const MafBlock& block)
 {
   VectorSiteContainer* alignment = new VectorSiteContainer(block.getAlignment().getAlphabet());
   for (size_t i = 0; i < species_.size(); ++i) {
@@ -106,6 +106,35 @@ SiteContainer* AbstractSpeciesSelectionMafStatistics::getSiteContainer(const Maf
   return alignment;
 }
 
+AbstractSpeciesMultipleSelectionMafStatistics::AbstractSpeciesMultipleSelectionMafStatistics(const std::vector< std::vector<std::string> >& species):
+  species_(species)
+{
+  size_t n = VectorTools::vectorUnion(species).size();
+  size_t m = 0;
+  for (size_t i =  0; i < species.size(); ++i)
+    m += species_[i].size();
+  if (m != n)
+    throw Exception("AbstractSpeciesMultipleSelectionMafStatistics (constructor). Species selections must be fully distinct.");
+}
+
+vector<SiteContainer*> AbstractSpeciesMultipleSelectionMafStatistics::getSiteContainers_(const MafBlock& block)
+{
+  vector<SiteContainer*> alignments;
+  for (size_t k = 0; k < species_.size(); ++k) {
+    VectorSiteContainer* alignment = new VectorSiteContainer(block.getAlignment().getAlphabet());
+    for (size_t i = 0; i < species_[k].size(); ++i) {
+      if (block.hasSequenceForSpecies(species_[k][i])) {
+        vector<const MafSequence*> selection = block.getSequencesForSpecies(species_[k][i]);
+        for (size_t j = 0; j < selection.size(); ++j) {
+          alignment->addSequence(*selection[j]);
+        }
+      }
+    }
+    alignments.push_back(alignment);
+  }
+  return alignments;
+}
+
 vector<string> SiteFrequencySpectrumMafStatistics::getSupportedTags() const
 {
   vector<string> tags;
@@ -125,41 +154,86 @@ void SiteFrequencySpectrumMafStatistics::compute(const MafBlock& block)
   unsigned int nbIgnored = 0;
   counts_.assign(categorizer_.getNumberOfCategories(), 0);
   int state;
-  auto_ptr<SiteContainer> alignment(getSiteContainer(block));
-  if (alignment->getNumberOfSequences() > 0) {
-    for (size_t i = 0; i < block.getNumberOfSites(); ++i) {
+  bool hasOutgroup = (outgroup_ != "");
+  bool isAnalyzable;
+  auto_ptr<SiteContainer> alignment;
+  const Sequence* outgroupSeq = 0;
+  if (hasOutgroup) {
+    isAnalyzable = (block.hasSequenceForSpecies(outgroup_) && block.getNumberOfSequences() > 1);
+    if (isAnalyzable) {
+      //We need to extract the outgroup sequence:
+      outgroupSeq = &block.getSequenceForSpecies(outgroup_); //Here we assume there is only one! Otherwise we take the first one...
+      alignment.reset(getSiteContainer_(block));
+    }
+  } else {
+    isAnalyzable = (block.getNumberOfSequences() > 0);
+    if (isAnalyzable)
+      alignment.reset(getSiteContainer_(block));
+  }
+  if (isAnalyzable) {
+    for (size_t i = 0; i < alignment->getNumberOfSites(); ++i) {
       //Note: we do not rely on SiteTool::getCounts as it would be unefficient to count everything.
       const Site& site = alignment->getSite(i);
       map<int, unsigned int> counts;
-      for (unsigned int j = 0; j < site.size(); ++j) {
+      bool isUnresolved = false;
+      bool isSaturated = false;
+      for (size_t j = 0; !isUnresolved && !isSaturated && j < site.size(); ++j) {
         state = site[j];
         if (alphabet_->isGap(state) || alphabet_->isUnresolved(state)) {
-          nbUnresolved++;
-          break;
+          isUnresolved = true;
         } else {
           counts[state]++;
           if (counts.size() > 2) {
-            nbSaturated++;
-            break;
+            isSaturated = true;
           }
         }
       }
-      if (counts.size() > 0) {
+      if (isUnresolved) {
+        nbUnresolved++;
+      } else if (isSaturated) {
+        nbSaturated++;
+      } else if (hasOutgroup && (
+          alignment->getAlphabet()->isGap((*outgroupSeq)[i]) ||
+          alignment->getAlphabet()->isUnresolved((*outgroupSeq)[i]))) {
+        nbUnresolved++;
+      } else {
         //Determine frequency class:
         double count;
         if (counts.size() == 1) {
-          count = 0;
+          if (hasOutgroup) {
+            if (counts.begin()->first == (*outgroupSeq)[i])
+              count = 0; //This is the ancestral state.
+            else
+              count = counts.begin()->second; //This is a derived state.
+          } else {
+            count = 0; //In this case we do not know, so we put 0.
+          }
         } else {
           map<int, unsigned int>::iterator it = counts.begin();
           unsigned int count1 = it->second;
           it++;
           unsigned int count2 = it->second;
-          count = min(count1, count2);
+          if (hasOutgroup) {
+            if (counts.begin()->first == (*outgroupSeq)[i])
+              count = counts.rbegin()->second; //This is the ancestral state, therefore we other one is the derived state.
+            else if (counts.rbegin()->first == (*outgroupSeq)[i])
+              count = counts.begin()->second; //The second state is the ancestral one, therefore the first one is the derived state.
+            else {
+              //None of the two states are ancestral! The position is therefore discarded.
+              isSaturated = true;
+            }
+          } else {
+            count = min(count1, count2); //In this case we do not know, so we take the minimum of the two values.
+          }
         }
-        try {
-          counts_[categorizer_.getCategory(count) - 1]++;
-        } catch (OutOfRangeException& oof) {
-          nbIgnored++;
+        if (isSaturated)
+          nbSaturated++;
+        else {
+          try {
+            counts_[categorizer_.getCategory(count) - 1]++;
+          } catch (OutOfRangeException& oof) {
+            nbIgnored++;
+          }
         }
       }
     }
@@ -172,6 +246,53 @@ void SiteFrequencySpectrumMafStatistics::compute(const MafBlock& block)
   }
 }
 
+vector<string> FourSpeciesPatternCountsMafStatistics::getSupportedTags() const
+{
+  vector<string> tags;
+  tags.push_back("f1100");
+  tags.push_back("f0110");
+  tags.push_back("f1010");
+  tags.push_back("Ignored");
+  return tags;
+}
+
+void FourSpeciesPatternCountsMafStatistics::compute(const MafBlock& block)
+{
+  counts_.assign(6, 0);
+  auto_ptr<SiteContainer> alignment(getSiteContainer_(block));
+  if (alignment->getNumberOfSequences() == 4) {
+    unsigned int nbIgnored = 0;
+    for (size_t i = 0; i < block.getNumberOfSites(); ++i) {
+      const Site& site = alignment->getSite(i);
+      if (SiteTools::isComplete(site)) {
+        if (site[0] == site[1] &&
+            site[2] != site[1] &&
+            site[3] == site[2])
+          counts_[0]++;
+        else if (site[1] == site[2] &&
+            site[1] != site[0] &&
+            site[3] == site[0])
+          counts_[1]++;
+        else if (site[0] == site[2] &&
+            site[1] != site[0] &&
+            site[3] == site[1])
+          counts_[2]++;
+      } else {
+        nbIgnored++;
+      }
+    }
+    result_.setValue("f1100", counts_[0]);
+    result_.setValue("f0110", counts_[1]);
+    result_.setValue("f1010", counts_[2]);
+    result_.setValue("Ignored", nbIgnored);
+  } else {
+    result_.setValue("f1100", 0);
+    result_.setValue("f0110", 0);
+    result_.setValue("f1010", 0);
+    result_.setValue("Ignored", static_cast<double>(block.getNumberOfSites()));
+  }
+}
+
 vector<string> SiteMafStatistics::getSupportedTags() const
 {
   vector<string> tags;
@@ -183,12 +304,12 @@ vector<string> SiteMafStatistics::getSupportedTags() const
 
 void SiteMafStatistics::compute(const MafBlock& block)
 {
-  auto_ptr<SiteContainer> alignment(getSiteContainer(block));
+  auto_ptr<SiteContainer> alignment(getSiteContainer_(block));
   unsigned int nbNg = 0;
   unsigned int nbCo = 0;
   unsigned int nbPi = 0;
   if (alignment->getNumberOfSequences() > 0) {
-    for (unsigned int i = 0; i < alignment->getNumberOfSites(); ++i) {
+    for (size_t i = 0; i < alignment->getNumberOfSites(); ++i) {
       if (!SiteTools::hasGap(alignment->getSite(i)))
         nbNg++;
       if (SiteTools::isComplete(alignment->getSite(i)))
@@ -202,3 +323,155 @@ void SiteMafStatistics::compute(const MafBlock& block)
   result_.setValue("NbParsimonyInformative", nbPi);
 }
 
+vector<string> PolymorphismMafStatistics::getSupportedTags() const
+{
+  vector<string> tags;
+  tags.push_back("F");
+  tags.push_back("P");
+  tags.push_back("FP");
+  tags.push_back("PF");
+  tags.push_back("FF");
+  tags.push_back("X");
+  tags.push_back("FX");
+  tags.push_back("PX");
+  tags.push_back("XF");
+  tags.push_back("XP");
+  return tags;
+}
+
+vector<int> PolymorphismMafStatistics::getPatterns_(const SiteContainer& sites)
+{
+  vector<int> patterns(sites.getNumberOfSites());
+  for (size_t i = 0; i < sites.getNumberOfSites(); ++i) {
+    const Site& site = sites.getSite(i);
+    int s = -1; //Unresolved
+    if (SiteTools::isComplete(site)) {
+      if (SiteTools::isConstant(site)) {
+        s = site[0]; //The fixed state
+      } else {
+        s = -10; //Polymorphic.
+      }
+    }
+    patterns[i] = s;
+  }
+  return patterns;
+}
+
+void PolymorphismMafStatistics::compute(const MafBlock& block)
+{
+  vector<SiteContainer*> alignments(getSiteContainers_(block));
+  unsigned int nbF = 0;
+  unsigned int nbP = 0;
+  unsigned int nbFF = 0;
+  unsigned int nbFP = 0;
+  unsigned int nbPF = 0;
+  unsigned int nbX = 0;
+  unsigned int nbFX = 0;
+  unsigned int nbPX = 0;
+  unsigned int nbXF = 0;
+  unsigned int nbXP = 0;
+  //Get all patterns:
+  vector<int> patterns1(block.getNumberOfSites(), -1);
+  vector<int> patterns2(block.getNumberOfSites(), -1); 
+  if (alignments[0]->getNumberOfSequences() > 0) {
+    patterns1 = getPatterns_(*alignments[0]);
+  }
+  if (alignments[1]->getNumberOfSequences() > 0) {
+    patterns2 = getPatterns_(*alignments[1]);
+  }
+  //Compare patterns:
+  for (size_t i = 0; i < block.getNumberOfSites(); ++i) {
+    int p1 = patterns1[i];  
+    int p2 = patterns2[i];
+    switch (p1) {
+      case -1 :
+        switch (p2) {
+          case -1 :
+            nbX++;
+            break;
+          case -10 :
+            nbXP++;
+            break;
+          default :
+            nbXF++;
+        }
+        break;            
+      
+      case -10 :
+        switch (p2) {
+          case -1 :
+            nbPX++;
+            break;
+          case -10 :
+            nbP++;
+            break;
+          default :
+            nbPF++;
+        }
+        break;            
+
+      default :
+        switch (p2) {
+          case -1 :
+            nbFX++;
+            break;
+          case -10 :
+            nbFP++;
+            break;
+          default :
+            if (p1 == p2)
+              nbF++;
+            else
+              nbFF++;
+        }
+    }
+  }
+
+  //Set results:
+  result_.setValue("F", nbF);
+  result_.setValue("P", nbP);
+  result_.setValue("FF", nbFF);
+  result_.setValue("FP", nbFP);
+  result_.setValue("PF", nbPF);
+  result_.setValue("X", nbX);
+  result_.setValue("FX", nbFX);
+  result_.setValue("PX", nbPX);
+  result_.setValue("XF", nbXF);
+  result_.setValue("XP", nbXP);
+}
+
+vector<string> SequenceDiversityMafStatistics::getSupportedTags() const
+{
+  vector<string> tags;
+  tags.push_back("NbSeggregating");
+  tags.push_back("WattersonTheta");
+  return tags;
+}
+
+void SequenceDiversityMafStatistics::compute(const MafBlock& block)
+{
+  auto_ptr<SiteContainer> alignment(getSiteContainer_(block));
+  unsigned int nbSeg = 0;
+  unsigned int nbTot = 0;
+  if (alignment->getNumberOfSequences() > 0) {
+    for (size_t i = 0; i < alignment->getNumberOfSites(); ++i) {
+      const Site& site = alignment->getSite(i);
+      if (SiteTools::isComplete(site)) {
+        nbTot++;
+        if (!SiteTools::isConstant(site))
+          nbSeg++;
+      }
+    }
+  }
+  double wt = 0;
+  if (nbSeg > 0) {
+    size_t n = alignment->getNumberOfSequences();
+    double hf = 0;
+    for (double i = 1; i < n; ++i)
+      hf += 1. / i;
+    wt = static_cast<double>(nbSeg) / (static_cast<double>(nbTot) * hf);
+  }
+  result_.setValue("NbSeggregating", nbSeg);
+  result_.setValue("WattersonTheta", wt);
+}
+
diff --git a/src/Bpp/Seq/Io/Maf/MafStatistics.h b/src/Bpp/Seq/Io/Maf/MafStatistics.h
index cbb52ca..3c89894 100644
--- a/src/Bpp/Seq/Io/Maf/MafStatistics.h
+++ b/src/Bpp/Seq/Io/Maf/MafStatistics.h
@@ -44,6 +44,8 @@ knowledge of the CeCILL license and that you accept its terms.
 
 //From bpp-core:
 #include <Bpp/Utils/MapTools.h>
+#include <Bpp/Numeric/VectorTools.h>
+#include <Bpp/Numeric/Number.h>
 
 //From the STL:
 #include <map>
@@ -54,35 +56,74 @@ namespace bpp {
 /**
  * @brief General interface for storing statistical results.
  *
- * This interface will most likely be extended in the future...
- *
  * @author Julien Dutheil
  * @see MafStatistics
  */
 class MafStatisticsResult
 {
   protected:
-    mutable std::map<std::string, double> values_;
+    mutable std::map<std::string, BppNumberI*> values_;
 
   public:
     MafStatisticsResult(): values_() {}
     virtual ~MafStatisticsResult() {}
 
+    MafStatisticsResult(const MafStatisticsResult& msr): values_()
+    {
+      for (std::map<std::string, BppNumberI*>::const_iterator it = msr.values_.begin();
+          it != msr.values_.end();
+          ++it) {
+        values_[it->first] = it->second->clone();
+      }
+    }
+
   public:
-    virtual double getValue(const std::string& tag) const throw (Exception) {
-      std::map<std::string, double>::iterator it = values_.find(tag);
+    virtual const BppNumberI& getValue(const std::string& tag) const throw (Exception) {
+      std::map<std::string, BppNumberI*>::iterator it = values_.find(tag);
       if (it != values_.end())
-        return it->second;
+        return *it->second;
       else
         throw Exception("MafStatisticsResult::getValue(). No value found for tag: " + tag + ".");
     }
+
+    /**
+     * @brief Associate a value to a certain tag. Any existing tag will be overwritten
+     *
+     * @param tag The name of the value to associate.
+     * @param value The value to associate to the tag.
+     */
+    virtual void setValue(const std::string& tag, double value) throw (Exception) {
+      if (values_[tag]) {
+        delete values_[tag];
+      }
+      values_[tag] = new BppDouble(value);
+    }
+
+    /**
+     * @brief Associate a value to a certain tag. Any existing tag will be overwritten
+     *
+     * @param tag The name of the value to associate.
+     * @param value The value to associate to the tag.
+     */
+    virtual void setValue(const std::string& tag, int value) throw (Exception) {
+      if (values_[tag]) {
+        delete values_[tag];
+      }
+      values_[tag] = new BppInteger(value);
+    }
+
     /**
      * @brief Associate a value to a certain tag. Any existing tag will be overwritten
      *
      * @param tag The name of the value to associate.
      * @param value The value to associate to the tag.
      */
-    virtual void setValue(const std::string& tag, double value) throw (Exception) { values_[tag] = value; }
+    virtual void setValue(const std::string& tag, unsigned int value) throw (Exception) {
+      if (values_[tag]) {
+        delete values_[tag];
+      }
+      values_[tag] = new BppUnsignedInteger(value);
+    }
 
     /**
      * @return A boolean saying whether a value is available for the given tag.
@@ -114,22 +155,45 @@ class SimpleMafStatisticsResult:
     virtual ~SimpleMafStatisticsResult() {}
 
   public:
-    virtual double getValue() const { return values_[name_]; }
+    virtual const BppNumberI& getValue(const std::string& tag) const throw (Exception) { return SimpleMafStatisticsResult::getValue(tag); }
+    
+    virtual const BppNumberI& getValue() const { return *values_[name_]; }
 
-    /**
-     * @brief Associate a value to a certain tag. Any existing tag will be overwritten
-     *
-     * @param tag The name of the value to associate.
-     * @param value The value to associate to the tag.
-     */
     virtual void setValue(const std::string& tag, double value) throw (Exception) {
       if (tag == name_)
-        values_[tag] = value;
+        setValue(value);
       else
         throw Exception("SimpleMafStatisticsResult::setValue(). Unvalid tag name: " + tag + ".");
     }
-    
-    virtual void setValue(double value) { values_[name_] = value; }
+ 
+    virtual void setValue(const std::string& tag, int value) throw (Exception) {
+      if (tag == name_)
+        setValue(value);
+      else
+        throw Exception("SimpleMafStatisticsResult::setValue(). Unvalid tag name: " + tag + ".");
+    }
+ 
+    virtual void setValue(const std::string& tag, unsigned int value) throw (Exception) {
+      if (tag == name_)
+        setValue(value);
+      else
+        throw Exception("SimpleMafStatisticsResult::setValue(). Unvalid tag name: " + tag + ".");
+    }
+   
+    virtual void setValue(double value) {
+      if (values_[name_]) delete values_[name_];
+      values_[name_] = new BppDouble(value);
+    }
+
+    virtual void setValue(int value) {
+      if (values_[name_]) delete values_[name_];
+      values_[name_] = new BppInteger(value);
+    }
+
+    virtual void setValue(unsigned int value) {
+      if (values_[name_]) delete values_[name_];
+      values_[name_] = new BppUnsignedInteger(value);
+    }
 
 };
 
@@ -342,7 +406,7 @@ class CharacterCountsMafStatistics:
 /**
  * @brief Partial implementation of MafStatistics for method working on a subset of species, in a site-wise manner.
  *
- * This class stores a seleciton of species and create for each block the corresponding SiteContainer.
+ * This class stores a selection of species and create for each block the corresponding SiteContainer instance.
  */
 class AbstractSpeciesSelectionMafStatistics:
   public virtual MafStatistics
@@ -355,7 +419,27 @@ class AbstractSpeciesSelectionMafStatistics:
       species_(species) {}
 
   protected:
-    SiteContainer* getSiteContainer(const MafBlock& block);
+    SiteContainer* getSiteContainer_(const MafBlock& block);
+
+};
+
+
+/**
+ * @brief Partial implementation of MafStatistics for method working on multiple distinct subsets of species, in a site-wise manner.
+ *
+ * This class stores two non-overlapping selections of species and create for each block the corresponding SiteContainer instances.
+ */
+class AbstractSpeciesMultipleSelectionMafStatistics:
+  public virtual MafStatistics
+{
+  private:
+    std::vector< std::vector<std::string> > species_;
+
+  public:
+    AbstractSpeciesMultipleSelectionMafStatistics(const std::vector< std::vector<std::string> >& species);
+
+  protected:
+    std::vector<SiteContainer*> getSiteContainers_(const MafBlock& block);
 
 };
 
@@ -363,7 +447,8 @@ class AbstractSpeciesSelectionMafStatistics:
 /**
  * @brief Compute the Site Frequency Spectrum of a maf block.
  *
- * The ancestral states are considered as unknown, so that 10000 and 11110 sites are treated equally.
+ * If no outgroup is provided, the ancestral states are considered as unknown
+ * and the unfolded spectrum is computed, so that 10000 and 11110 sites are treated equally.
  */
 class SiteFrequencySpectrumMafStatistics:
   public AbstractMafStatistics,
@@ -375,7 +460,8 @@ class SiteFrequencySpectrumMafStatistics:
         std::vector<double> bounds_;
 
       public:
-        Categorizer(const std::vector<double>& bounds): bounds_(bounds) {
+        Categorizer(const std::vector<double>& bounds):
+          bounds_(bounds) {
           std::sort(bounds_.begin(), bounds_.end());
         }
 
@@ -398,14 +484,16 @@ class SiteFrequencySpectrumMafStatistics:
     const Alphabet* alphabet_;
     Categorizer categorizer_;
     std::vector<unsigned int> counts_;
+    std::string outgroup_;
 
   public:
-    SiteFrequencySpectrumMafStatistics(const Alphabet* alphabet, const std::vector<double>& bounds, const std::vector<std::string>& ingroup):
+    SiteFrequencySpectrumMafStatistics(const Alphabet* alphabet, const std::vector<double>& bounds, const std::vector<std::string>& ingroup, const std::string outgroup = ""):
       AbstractMafStatistics(),
       AbstractSpeciesSelectionMafStatistics(ingroup),
       alphabet_(alphabet),
       categorizer_(bounds),
-      counts_(bounds.size() - 1)
+      counts_(bounds.size() - 1),
+      outgroup_(outgroup)
     {}
 
     SiteFrequencySpectrumMafStatistics(const SiteFrequencySpectrumMafStatistics& stats):
@@ -413,7 +501,8 @@ class SiteFrequencySpectrumMafStatistics:
       AbstractSpeciesSelectionMafStatistics(stats),
       alphabet_(stats.alphabet_),
       categorizer_(stats.categorizer_),
-      counts_(stats.counts_)
+      counts_(stats.counts_),
+      outgroup_(stats.outgroup_)
     {}
 
     SiteFrequencySpectrumMafStatistics& operator=(const SiteFrequencySpectrumMafStatistics& stats) {
@@ -422,6 +511,7 @@ class SiteFrequencySpectrumMafStatistics:
       alphabet_    = stats.alphabet_;
       categorizer_ = stats.categorizer_;
       counts_      = stats.counts_;
+      outgroup_    = stats.outgroup_;
       return *this;
     }
 
@@ -434,6 +524,66 @@ class SiteFrequencySpectrumMafStatistics:
     std::vector<std::string> getSupportedTags() const;
 };
 
+
+/**
+ * @brief Compute the frequency of site patterns for a quadruplet of species.
+ *
+ * Only parsimony informative sites are categorized.
+ * Species: A B C D
+ * P1       1 1 0 0
+ * P2       0 1 1 0
+ * P3       1 0 1 0
+ * Sites with more than two states are ignored, as well as sites containing gaps or unresolved characters.
+ */
+class FourSpeciesPatternCountsMafStatistics:
+  public AbstractMafStatistics,
+  public AbstractSpeciesSelectionMafStatistics
+{
+  private:
+    const Alphabet* alphabet_;
+    std::vector<unsigned int> counts_;
+
+  public:
+    FourSpeciesPatternCountsMafStatistics(
+        const Alphabet* alphabet,
+        const std::vector<std::string>& species):
+      AbstractMafStatistics(),
+      AbstractSpeciesSelectionMafStatistics(species),
+      alphabet_(alphabet),
+      counts_(6)
+    {
+      if (species.size() != 4)
+        throw Exception("FourSpeciesPatternCountsMafStatistics, constructor: 4 species should be provided.");
+      if (VectorTools::unique(species).size() != 4)
+        throw Exception("FourSpeciesPatternCountsMafStatistics, constructor: duplicated species name!");
+    }
+
+    FourSpeciesPatternCountsMafStatistics(const FourSpeciesPatternCountsMafStatistics& stats):
+      AbstractMafStatistics(),
+      AbstractSpeciesSelectionMafStatistics(stats),
+      alphabet_(stats.alphabet_),
+      counts_(stats.counts_)
+    {}
+
+    FourSpeciesPatternCountsMafStatistics& operator=(const FourSpeciesPatternCountsMafStatistics& stats) {
+      AbstractMafStatistics::operator=(stats);
+      AbstractSpeciesSelectionMafStatistics::operator=(stats);
+      alphabet_    = stats.alphabet_;
+      counts_      = stats.counts_;
+      return *this;
+    }
+
+    virtual ~FourSpeciesPatternCountsMafStatistics() {}
+
+  public:
+    std::string getShortName() const { return "FourSpeciesPatternCounts"; }
+    std::string getFullName() const { return "FourSpecies pattern counts."; }
+    void compute(const MafBlock& block);
+    std::vector<std::string> getSupportedTags() const;
+};
+
+
+
 /**
  * @brief Compute a few site statistics in a maf block.
  *
@@ -461,6 +611,77 @@ class SiteMafStatistics:
     std::vector<std::string> getSupportedTags() const;
 };
 
+
+/**
+ * @brief Counts number of polymorphic / fixed sites in two populations.
+ *
+ * The two populations are defined as two distinct sets of species.
+ * The following counts are computed and returned:
+ * - P: number of sites polymorphic in both populations
+ * - F: number of sites fixed in both populations
+ * - FF: number of sites fixed in both populations, but with distinct states
+ * - PF / FP: number of sites polymorphic in one species and fixed in the other.
+ * - X: unresolved (because of gap or generic character)
+ * - FX / PX / XF / XP: unresolved in one population
+ */
+class PolymorphismMafStatistics:
+  public AbstractMafStatistics,
+  public AbstractSpeciesMultipleSelectionMafStatistics
+{
+  public:
+    PolymorphismMafStatistics(const std::vector< std::vector<std::string> >& species):
+      AbstractMafStatistics(),
+      AbstractSpeciesMultipleSelectionMafStatistics(species)
+    {
+      if (species.size() != 2)
+        throw Exception("PolymorphismStatistics: exactly two species selection should be provided.");
+    }
+
+    virtual ~PolymorphismMafStatistics() {}
+
+  public:
+    std::string getShortName() const { return "PolymorphismStatistics"; }
+    std::string getFullName() const { return "Polymorphism statistics."; }
+    void compute(const MafBlock& block);
+    std::vector<std::string> getSupportedTags() const;
+
+  private:
+    static std::vector<int> getPatterns_(const SiteContainer& sites); 
+};
+
+
+
+/**
+ * @brief Provide estimates of sequence diversity.
+ *
+ * - Number of segregating sites
+ * - Watterson's theta (per site)
+ *
+ * Only fully resolved sites are analyzed (no gap, no generic character).
+ */
+class SequenceDiversityMafStatistics:
+  public AbstractMafStatistics,
+  public AbstractSpeciesSelectionMafStatistics
+{
+  public:
+    SequenceDiversityMafStatistics(const std::vector<std::string>& ingroup):
+      AbstractMafStatistics(),
+      AbstractSpeciesSelectionMafStatistics(ingroup)
+    {}
+
+    virtual ~SequenceDiversityMafStatistics() {}
+
+  public:
+    std::string getShortName() const { return "SequenceDiversityStatistics"; }
+    std::string getFullName() const { return "Sequence diversity statistics."; }
+    void compute(const MafBlock& block);
+    std::vector<std::string> getSupportedTags() const;
+
+  private:
+    static std::vector<int> getPatterns_(const SiteContainer& sites); 
+};
+
+
 } // end of namespace bpp
 
 #endif //_MAFSTATISTICS_H_
diff --git a/src/Bpp/Seq/Io/Maf/OrphanSequenceFilterMafIterator.h b/src/Bpp/Seq/Io/Maf/OrphanSequenceFilterMafIterator.h
index 0bda4f5..7f37ffa 100644
--- a/src/Bpp/Seq/Io/Maf/OrphanSequenceFilterMafIterator.h
+++ b/src/Bpp/Seq/Io/Maf/OrphanSequenceFilterMafIterator.h
@@ -66,10 +66,15 @@ class OrphanSequenceFilterMafIterator:
     /**
      * @param iterator The input iterator.
      * @param species The list of species names to be retained.
-     * @param strict If true, then block that do not contain all  of the specified species will be discarded.
+     * @param strict If true, then block that do not contain all of the specified species will be discarded.
+     * @param keep If true, then additional species sequences will be kept.
      * @param rmDuplicates If true, block that contain more than one instance for at least one species will be discarded.
      */
-    OrphanSequenceFilterMafIterator(MafIterator* iterator, const std::vector<std::string>& species, bool strict = false, bool keep = false, bool rmDuplicates = false) :
+    OrphanSequenceFilterMafIterator(MafIterator* iterator,
+        const std::vector<std::string>& species,
+        bool strict = false,
+        bool keep = false,
+        bool rmDuplicates = false) :
       AbstractFilterMafIterator(iterator),
       species_(species),
       strict_(strict),
diff --git a/src/Bpp/Seq/Io/Maf/OutputAlignmentMafIterator.cpp b/src/Bpp/Seq/Io/Maf/OutputAlignmentMafIterator.cpp
index 94e086d..a8c4228 100644
--- a/src/Bpp/Seq/Io/Maf/OutputAlignmentMafIterator.cpp
+++ b/src/Bpp/Seq/Io/Maf/OutputAlignmentMafIterator.cpp
@@ -73,9 +73,12 @@ void OutputAlignmentMafIterator::writeBlock(std::ostream& out, const MafBlock& b
   SequenceContainerTools::convertContainer<AlignedSequenceContainer, AlignedSequenceContainer, BasicSequence>(block.getAlignment(), aln);
   //Format sequence names:
   vector<string> names(aln.getNumberOfSequences());
-  for (unsigned int i = 0; i < aln.getNumberOfSequences(); ++i) {
+  for (size_t i = 0; i < aln.getNumberOfSequences(); ++i) {
     const MafSequence& mafseq = block.getSequence(i);
-    names[i] = mafseq.getSpecies() + "-" + mafseq.getChromosome() + "(" + mafseq.getStrand() + ")/" + TextTools::toString(mafseq.start() + 1) + "-" + TextTools::toString(mafseq.stop() + 1);
+    if (mafseq.hasCoordinates())
+      names[i] = mafseq.getSpecies() + "-" + mafseq.getChromosome() + "(" + mafseq.getStrand() + ")/" + TextTools::toString(mafseq.start() + 1) + "-" + TextTools::toString(mafseq.stop() + 1);
+    else
+      names[i] = mafseq.getSpecies();
   }
   aln.setSequencesNames(names);
   writer_->writeAlignment(out, aln);
diff --git a/src/Bpp/Seq/Io/Maf/OutputAlignmentMafIterator.h b/src/Bpp/Seq/Io/Maf/OutputAlignmentMafIterator.h
index d1c2d4e..2954665 100644
--- a/src/Bpp/Seq/Io/Maf/OutputAlignmentMafIterator.h
+++ b/src/Bpp/Seq/Io/Maf/OutputAlignmentMafIterator.h
@@ -79,7 +79,7 @@ class OutputAlignmentMafIterator:
      * @param mask Tell if sequences should be printed masked (if applicable).
      */
     OutputAlignmentMafIterator(MafIterator* iterator, std::ostream* out, OAlignment* writer, bool mask = true) :
-      AbstractFilterMafIterator(iterator), output_(out), file_(), mask_(mask), writer_(writer), currentBlockIndex_(1)
+      AbstractFilterMafIterator(iterator), output_(out), file_(), mask_(mask), writer_(writer), currentBlockIndex_(0)
     {
       if (!writer)
         throw Exception("OutputAlignmentMafIterator (constructor 1): sequence writer should not be a NULL pointer!");
@@ -98,7 +98,7 @@ class OutputAlignmentMafIterator:
      * @param mask Tell if sequences should be printed masked (if applicable).
      */
     OutputAlignmentMafIterator(MafIterator* iterator, const std::string& file, OAlignment* writer, bool mask = true) :
-      AbstractFilterMafIterator(iterator), output_(0), file_(file), mask_(mask), writer_(writer), currentBlockIndex_(1)
+      AbstractFilterMafIterator(iterator), output_(0), file_(file), mask_(mask), writer_(writer), currentBlockIndex_(0)
     {
       if (!writer)
         throw Exception("OutputAlignmentMafIterator (constructor 2): sequence writer should not be a NULL pointer!");
diff --git a/src/Bpp/Seq/Io/Maf/SequenceStatisticsMafIterator.cpp b/src/Bpp/Seq/Io/Maf/SequenceStatisticsMafIterator.cpp
index df487c9..9aa27ea 100644
--- a/src/Bpp/Seq/Io/Maf/SequenceStatisticsMafIterator.cpp
+++ b/src/Bpp/Seq/Io/Maf/SequenceStatisticsMafIterator.cpp
@@ -80,9 +80,9 @@ MafBlock* SequenceStatisticsMafIterator::analyseCurrentBlock_() throw (Exception
       tags = statistics_[i]->getSupportedTags();
       for (size_t j = 0; j < tags.size(); ++j) {
         if (result.hasValue(tags[j])) {
-          results_[k] = result.getValue(tags[j]);
+          results_[k] = result.getValue(tags[j]).clone();
         } else {
-          results_[k] = NumConstants::NaN();
+          results_[k] = 0;
         }
         k++;
       }
diff --git a/src/Bpp/Seq/Io/Maf/SequenceStatisticsMafIterator.h b/src/Bpp/Seq/Io/Maf/SequenceStatisticsMafIterator.h
index e60ffba..0a23c29 100644
--- a/src/Bpp/Seq/Io/Maf/SequenceStatisticsMafIterator.h
+++ b/src/Bpp/Seq/Io/Maf/SequenceStatisticsMafIterator.h
@@ -67,13 +67,13 @@ class SequenceStatisticsMafIterator:
 {
   private:
     std::vector<MafStatistics*> statistics_;
-    std::vector<double> results_;
+    std::vector<const BppNumberI*> results_;
     std::vector<std::string> names_;
 
   public:
     /**
      * @param iterator The input iterator.
-     * @param statistics A vector of pointers toward MafStatistics, tobe computed simultaneously for each maf block.
+     * @param statistics A vector of pointers toward MafStatistics, to be computed simultaneously for each maf block.
      */
     SequenceStatisticsMafIterator(MafIterator* iterator, const std::vector<MafStatistics*> statistics);
 
@@ -94,7 +94,7 @@ class SequenceStatisticsMafIterator:
     }
 
   public:
-    const std::vector<double>& getResults() const { return results_; }
+    const std::vector<const BppNumberI*>& getResults() const { return results_; }
     const std::vector<std::string>& getResultsColumnNames() const { return names_; }
 
   private:
diff --git a/src/Bpp/Seq/Io/Maf/VcfOutputMafIterator.cpp b/src/Bpp/Seq/Io/Maf/VcfOutputMafIterator.cpp
index 6a5cd6d..54f8397 100644
--- a/src/Bpp/Seq/Io/Maf/VcfOutputMafIterator.cpp
+++ b/src/Bpp/Seq/Io/Maf/VcfOutputMafIterator.cpp
@@ -44,6 +44,7 @@ knowledge of the CeCILL license and that you accept its terms.
 #include <Bpp/Seq/SequenceWithQuality.h>
 #include <Bpp/Seq/Container/VectorSiteContainer.h>
 #include <Bpp/Seq/SiteTools.h>
+#include <Bpp/Seq/SequenceWalker.h>
 
 using namespace bpp;
 
@@ -54,7 +55,7 @@ using namespace bpp;
 
 using namespace std;
 
-void VcfOutputMafIterator::writeHeader(std::ostream& out) const
+void VcfOutputMafIterator::writeHeader_(std::ostream& out) const
 {
   time_t t = time(0); // get current time
   struct tm* ct = localtime(&t);
@@ -63,22 +64,33 @@ void VcfOutputMafIterator::writeHeader(std::ostream& out) const
   out << "##source=Bio++" << endl;  
   out << "##FILTER=<ID=gap,Description=\"At least one sequence contains a gap\">" << endl;
   out << "##FILTER=<ID=unk,Description=\"At least one sequence contains an unresolved character\">" << endl;
+  if (genotypes_.size() > 0)
+    out << "##FORMAT=<ID=GT,Number=1,Type=String,Description=\"Genotype\">" << endl;
   //There are more options in the header that we may want to support...
 
   //Now write the header line:
-  out << "#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO" << endl;
+  out << "#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO";
+  if (genotypes_.size() > 0) {
+    out << "\tFORMAT";
+    for (size_t i = 0; i < genotypes_.size(); ++i)
+      out << "\t" << genotypes_[i];
+  }
+  out << endl;
 }
 
-void VcfOutputMafIterator::writeBlock(std::ostream& out, const MafBlock& block) const
+void VcfOutputMafIterator::writeBlock_(std::ostream& out, const MafBlock& block) const
 {
   const MafSequence& refSeq = block.getSequenceForSpecies(refSpecies_);
   string chr = refSeq.getChromosome();
+  SequenceWalker walker(refSeq);
   size_t offset = refSeq.start();
   int gap = refSeq.getAlphabet()->getGapCharacterCode();
-  string chars = "";
+  map<int, string> chars;
   for (int i = 0; i < static_cast<int>(AlphabetTools::DNA_ALPHABET.getNumberOfTypes()); ++i)
-    chars += AlphabetTools::DNA_ALPHABET.intToChar(i);
+    chars[i] = AlphabetTools::DNA_ALPHABET.intToChar(i);
   VectorSiteContainer sites(block.getAlignment());
+  //Where to store genotype information, if any:
+  vector<int> gt(genotypes_.size());
   //Now we look all sites for SNPs:
   for (size_t i = 0; i < sites.getNumberOfSites(); i++) {
     if (refSeq[i] == gap)
@@ -100,6 +112,9 @@ void VcfOutputMafIterator::writeBlock(std::ostream& out, const MafBlock& block)
     int ref = refSeq[i];
     string alt = "";
     string ac = "";
+    
+    map<int, int> snps;
+    int c = 0;
     for (int x = 0; x < 4; ++x) {
       if (x != ref) {
         size_t f = counts[x];
@@ -108,13 +123,35 @@ void VcfOutputMafIterator::writeBlock(std::ostream& out, const MafBlock& block)
             alt += ",";
             ac += ",";
           }
-          alt += TextTools::toString<char>(chars[x]);
+          alt += chars[x];
           ac += TextTools::toString(f);
+          snps[x] = ++c;
         }
+      } else {
+        snps[x] = 0;
       }
     }
     if (ac != "") {
-      out << chr << "\t" << (offset + i + 1) << "\t.\t" << chars[refSeq[i]] << "\t" << alt << "\t.\t" << filter << "\tAC=" << ac << endl;
+      out << chr << "\t" << (offset + walker.getSequencePosition(i) + 1) << "\t.\t" << chars[refSeq[i]] << "\t" << alt << "\t.\t" << filter << "\tAC=" << ac;
+      //Write genotpyes:
+      if (genotypes_.size() > 0) {
+        out << "\tGT";
+        for (size_t g = 0; g < genotypes_.size(); ++g) {
+          vector<const MafSequence*> sequences = block.getSequencesForSpecies(genotypes_[g]);
+          if (sequences.size() == 0)
+            out << "\t.";
+          else if (sequences.size() > 1)
+            throw Exception("VcfOutputMafIterator::writeBlock(). Duplicated sequence for species '" + genotypes_[g] + ",.");
+          else {
+            int state = (*sequences[0])[i];
+            if (AlphabetTools::DNA_ALPHABET.isGap(state) || AlphabetTools::DNA_ALPHABET.isUnresolved(state))
+              out << "\t.";
+            else 
+              out << "\t" << snps[state];
+          }
+        }
+      }
+      out << endl;
     }
   }
 }
diff --git a/src/Bpp/Seq/Io/Maf/VcfOutputMafIterator.h b/src/Bpp/Seq/Io/Maf/VcfOutputMafIterator.h
index 7f34292..572ebbe 100644
--- a/src/Bpp/Seq/Io/Maf/VcfOutputMafIterator.h
+++ b/src/Bpp/Seq/Io/Maf/VcfOutputMafIterator.h
@@ -60,26 +60,37 @@ class VcfOutputMafIterator:
   private:
     std::ostream* output_;
     std::string refSpecies_;
+    std::vector<std::string> genotypes_;
 
   public:
-    VcfOutputMafIterator(MafIterator* iterator, std::ostream* out, const std::string& reference) :
-      AbstractFilterMafIterator(iterator), output_(out), refSpecies_(reference)
+    /**
+     * @brief Build a new VcfOutputMafIterator object.
+     *
+     * @param iterator The input iterator.
+     * @param out The output stream where to write the VCF file.
+     * @param reference The species to use as a reference.
+     * @param genotypes A list of species for which genotype information should be written in the VCF file. There will be one extra column per genotype, +1 format column.
+     */
+    VcfOutputMafIterator(MafIterator* iterator, std::ostream* out, const std::string& reference, const std::vector<std::string>& genotypes) :
+      AbstractFilterMafIterator(iterator), output_(out), refSpecies_(reference), genotypes_(genotypes)
     {
       if (output_)
-        writeHeader(*output_);
+        writeHeader_(*output_);
     }
 
   private:
     VcfOutputMafIterator(const VcfOutputMafIterator& iterator) :
       AbstractFilterMafIterator(0),
       output_(iterator.output_),
-      refSpecies_(iterator.refSpecies_)
+      refSpecies_(iterator.refSpecies_),
+      genotypes_(iterator.genotypes_)
     {}
     
     VcfOutputMafIterator& operator=(const VcfOutputMafIterator& iterator)
     {
       output_ = iterator.output_;
       refSpecies_ = iterator.refSpecies_;
+      genotypes_ = iterator.genotypes_;
       return *this;
     }
 
@@ -88,13 +99,13 @@ class VcfOutputMafIterator:
     MafBlock* analyseCurrentBlock_() throw (Exception) {
       currentBlock_ = iterator_->nextBlock();
       if (output_ && currentBlock_)
-        writeBlock(*output_, *currentBlock_);
+        writeBlock_(*output_, *currentBlock_);
       return currentBlock_;
     }
 
   private:
-    void writeHeader(std::ostream& out) const;
-    void writeBlock(std::ostream& out, const MafBlock& block) const;
+    void writeHeader_(std::ostream& out) const;
+    void writeBlock_(std::ostream& out, const MafBlock& block) const;
 };
 
 } // end of namespace bpp.
diff --git a/src/Bpp/Seq/Io/Maf/WindowSplitMafIterator.h b/src/Bpp/Seq/Io/Maf/WindowSplitMafIterator.h
index b904ce8..bce9a87 100644
--- a/src/Bpp/Seq/Io/Maf/WindowSplitMafIterator.h
+++ b/src/Bpp/Seq/Io/Maf/WindowSplitMafIterator.h
@@ -73,7 +73,7 @@ class WindowSplitMafIterator:
     {
       if (splitOption != RAGGED_LEFT && splitOption != RAGGED_RIGHT
           && splitOption != CENTER && splitOption != ADJUST)
-        throw Exception("WindowSplitMafIterator: unvalid split option: " + splitOption);
+        throw Exception("WindowSplitMafIterator: unvalid split option: " + TextTools::toString(splitOption));
     }
 
   private:
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index a1ed253..084c00d 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -24,6 +24,7 @@ SET(CPP_FILES
   Bpp/Seq/Io/Maf/OutputMafIterator.cpp
   Bpp/Seq/Io/Maf/OutputAlignmentMafIterator.cpp
   Bpp/Seq/Io/Maf/VcfOutputMafIterator.cpp
+  Bpp/Seq/Io/Maf/CoordinatesOutputMafIterator.cpp
   Bpp/Seq/Io/Maf/SequenceStatisticsMafIterator.cpp
   Bpp/Seq/Io/Maf/WindowSplitMafIterator.cpp
   Bpp/Seq/Io/Maf/MafSequence.cpp
@@ -59,6 +60,7 @@ SET(H_FILES
   Bpp/Seq/Io/Maf/OutputMafIterator.h
   Bpp/Seq/Io/Maf/OutputAlignmentMafIterator.h
   Bpp/Seq/Io/Maf/VcfOutputMafIterator.h
+  Bpp/Seq/Io/Maf/CoordinatesOutputMafIterator.h
   Bpp/Seq/Io/Maf/SequenceStatisticsMafIterator.h
   Bpp/Seq/Io/Maf/WindowSplitMafIterator.h
   Bpp/Seq/Io/Maf/MafStatistics.h

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/libbpp-seq-omics.git



More information about the debian-med-commit mailing list