[med-svn] [Git][med-team/bppsuite][master] 4 commits: New upstream version 2.4.0

Julien Y. Dutheil gitlab at salsa.debian.org
Sun Apr 8 10:30:11 BST 2018


Julien Y. Dutheil pushed to branch master at Debian Med / bppsuite


Commits:
27c31817 by Julien Y. Dutheil at 2018-04-08T08:31:08+02:00
New upstream version 2.4.0
- - - - -
d155f78c by Julien Y. Dutheil at 2018-04-08T08:31:09+02:00
Update upstream source from tag 'upstream/2.4.0'

Update to upstream version '2.4.0'
with Debian dir 47efa1483160d8041759560dadf5ccdda436a295
- - - - -
7fd56e9a by Julien Y. Dutheil at 2018-04-08T08:48:05+02:00
Drafted version 2.4.0.

Added full text of CeCILL license.

- - - - -
d2675e67 by Julien Y. Dutheil at 2018-04-08T11:28:57+02:00
Lintian warnings solved for v2.4.0.

- - - - -


28 changed files:

- CMakeLists.txt
- ChangeLog
- Examples/MaximumLikelihood/Codons/BranchModel/ML.bpp
- Examples/MaximumLikelihood/Codons/CladeModel/ML.bpp
- Examples/MaximumLikelihood/Codons/M0/ML.bpp
- Examples/MaximumLikelihood/Codons/M1/ML.bpp
- Examples/MaximumLikelihood/Codons/M2/ML.bpp
- Examples/MaximumLikelihood/Nucleotides/Homogeneous/ML.bpp
- Examples/MaximumLikelihood/Nucleotides/NonHomogeneousGG/MLNHGG.bpp
- Examples/MaximumLikelihood/Nucleotides/NonHomogeneousGeneral/MLNH.bpp
- Examples/MaximumLikelihood/Proteins/Homogeneous/ML.bpp
- README.md
- bppSuite/CMakeLists.txt
- bppSuite/bppDist.cpp
- bppSuite/bppPopStats.cpp
- bppSuite/bppSeqGen.cpp
- bppSuite/bppSeqMan.cpp
- bppsuite.spec
- debian/changelog
- debian/control
- debian/copyright
- − debian/patches/linkage.patch
- debian/patches/series
- − debian/patches/set_max_compression.patch
- − debian/patches/spelling.patch
- debian/rules
- doc/bppsuite.texi
- man/bppseqman.1


Changes:

=====================================
CMakeLists.txt
=====================================
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -61,7 +61,8 @@ else ()
   # Generate command line args (always add -c to output compressed file to stdout)
   if (${COMPRESS_PROGRAM} STREQUAL "gzip")
     # -n for no timestamp in files (reproducible builds)
-    set (COMPRESS_ARGS -c -n)
+    # -9 for maximum compression (lintian error)
+    set (COMPRESS_ARGS -c -n -9)
   else ()
     set (COMPRESS_ARGS -c)
   endif ()
@@ -74,8 +75,8 @@ if (CMAKE_INSTALL_PREFIX)
 endif (CMAKE_INSTALL_PREFIX)
 
 include (GNUInstallDirs)
-find_package (bpp-phyl 11.0.0 REQUIRED)
-find_package (bpp-popgen 7.0.0 REQUIRED)
+find_package (bpp-phyl 12.0.0 REQUIRED)
+find_package (bpp-popgen 8.0.0 REQUIRED)
 
 # Subdirectories
 add_subdirectory (bppSuite)
@@ -87,10 +88,10 @@ ENDIF(NO_DEP_CHECK)
 # Packager
 SET(CPACK_PACKAGE_NAME "bppsuite")
 SET(CPACK_PACKAGE_VENDOR "Bio++ Development Team")
-SET(CPACK_PACKAGE_VERSION "2.3.1")
+SET(CPACK_PACKAGE_VERSION "2.4.0")
 SET(CPACK_PACKAGE_VERSION_MAJOR "2")
-SET(CPACK_PACKAGE_VERSION_MINOR "3")
-SET(CPACK_PACKAGE_VERSION_PATCH "1")
+SET(CPACK_PACKAGE_VERSION_MINOR "4")
+SET(CPACK_PACKAGE_VERSION_PATCH "0")
 SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "The Bio++ Program Suite")
 SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/COPYING.txt")
 SET(CPACK_RESOURCE_FILE_AUTHORS "${CMAKE_SOURCE_DIR}/AUTHORS.txt")


=====================================
ChangeLog
=====================================
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+19/03/18 -*- Version 2.4.0 -*-
+
+19/02/18 Julien Dutheil
+* Bug fixed in bppPopStats: dN and dS were inverted!
+
+10/12/17 -*- Version 2.3.2 -*-
+
 06/11/17 Julien Dutheil
 * Added estimation of kappa to bppPopStats + bugs fixed
 


=====================================
Examples/MaximumLikelihood/Codons/BranchModel/ML.bpp
=====================================
--- a/Examples/MaximumLikelihood/Codons/BranchModel/ML.bpp
+++ b/Examples/MaximumLikelihood/Codons/BranchModel/ML.bpp
@@ -95,7 +95,7 @@ optimization.final = none
 optimization.verbose = 3
 
 # Parameters to ignore (for instance equilibrium frequencies)
-optimization.ignore_parameter = 
+optimization.ignore_parameters = 
 
 # Maximum number of likelihood evaluations:
 optimization.max_number_f_eval = 10000


=====================================
Examples/MaximumLikelihood/Codons/CladeModel/ML.bpp
=====================================
--- a/Examples/MaximumLikelihood/Codons/CladeModel/ML.bpp
+++ b/Examples/MaximumLikelihood/Codons/CladeModel/ML.bpp
@@ -102,7 +102,7 @@ optimization.final = none
 optimization.verbose = 3
 
 # Parameters to ignore (for instance equilibrium frequencies)
-optimization.ignore_parameter = 
+optimization.ignore_parameters = 
 
 # Maximum number of likelihood evaluations:
 optimization.max_number_f_eval = 10000


=====================================
Examples/MaximumLikelihood/Codons/M0/ML.bpp
=====================================
--- a/Examples/MaximumLikelihood/Codons/M0/ML.bpp
+++ b/Examples/MaximumLikelihood/Codons/M0/ML.bpp
@@ -87,7 +87,7 @@ optimization.final = none
 optimization.verbose = 3
 
 # Parameters to ignore (for instance equilibrium frequencies)
-optimization.ignore_parameter = 
+optimization.ignore_parameters = 
 
 # Maximum number of likelihood evaluations:
 optimization.max_number_f_eval = 10000


=====================================
Examples/MaximumLikelihood/Codons/M1/ML.bpp
=====================================
--- a/Examples/MaximumLikelihood/Codons/M1/ML.bpp
+++ b/Examples/MaximumLikelihood/Codons/M1/ML.bpp
@@ -85,7 +85,7 @@ optimization.final = none
 optimization.verbose = 3
 
 # Parameters to ignore (for instance equilibrium frequencies)
-optimization.ignore_parameter = YNGP_M1.*Full*
+optimization.ignore_parameters = YNGP_M1.*Full*
 
 # Maximum number of likelihood evaluations:
 optimization.max_number_f_eval = 10000


=====================================
Examples/MaximumLikelihood/Codons/M2/ML.bpp
=====================================
--- a/Examples/MaximumLikelihood/Codons/M2/ML.bpp
+++ b/Examples/MaximumLikelihood/Codons/M2/ML.bpp
@@ -85,7 +85,7 @@ optimization.final = none
 optimization.verbose = 3
 
 # Parameters to ignore (for instance equilibrium frequencies)
-optimization.ignore_parameter = YNGP_M1.*Full*
+optimization.ignore_parameters = YNGP_M1.*Full*
 
 # Maximum number of likelihood evaluations:
 optimization.max_number_f_eval = 10000


=====================================
Examples/MaximumLikelihood/Nucleotides/Homogeneous/ML.bpp
=====================================
--- a/Examples/MaximumLikelihood/Nucleotides/Homogeneous/ML.bpp
+++ b/Examples/MaximumLikelihood/Nucleotides/Homogeneous/ML.bpp
@@ -86,7 +86,7 @@ optimization.final = none
 optimization.verbose = 3
 
 # Parameters to ignore (for instance equilibrium frequencies)
-optimization.ignore_parameter =
+optimization.ignore_parameters =
 
 # Maximum number of likelihood evaluations:
 optimization.max_number_f_eval = 10000


=====================================
Examples/MaximumLikelihood/Nucleotides/NonHomogeneousGG/MLNHGG.bpp
=====================================
--- a/Examples/MaximumLikelihood/Nucleotides/NonHomogeneousGG/MLNHGG.bpp
+++ b/Examples/MaximumLikelihood/Nucleotides/NonHomogeneousGG/MLNHGG.bpp
@@ -100,7 +100,7 @@ optimization.topology.tolerance.before=100
 optimization.topology.tolerance.during=100
 optimization.scale_first=no
 optimization.verbose=3
-optimization.ignore_parameter=
+optimization.ignore_parameters=
 
 # Should we write the resulting tree? none or file name.
 output.tree.file = $(DATA).ML.dnd


=====================================
Examples/MaximumLikelihood/Nucleotides/NonHomogeneousGeneral/MLNH.bpp
=====================================
--- a/Examples/MaximumLikelihood/Nucleotides/NonHomogeneousGeneral/MLNH.bpp
+++ b/Examples/MaximumLikelihood/Nucleotides/NonHomogeneousGeneral/MLNH.bpp
@@ -102,7 +102,7 @@ likelihood.recursion_simple.compression = recursive
 optimization=FullD(derivatives=Newton)
 optimization.reparametrization=no
 optimization.verbose = 1
-optimization.ignore_parameter =
+optimization.ignore_parameters =
 optimization.max_number_f_eval = 10000
 optimization.tolerance = 0.000001
 optimization.message_handler = $(DATA).messages


=====================================
Examples/MaximumLikelihood/Proteins/Homogeneous/ML.bpp
=====================================
--- a/Examples/MaximumLikelihood/Proteins/Homogeneous/ML.bpp
+++ b/Examples/MaximumLikelihood/Proteins/Homogeneous/ML.bpp
@@ -85,7 +85,7 @@ optimization.final = none
 optimization.verbose = 3
 
 # Parameters to ignore (for instance equilibrium frequencies)
-optimization.ignore_parameter =
+optimization.ignore_parameters =
 
 # Maximum number of likelihood evaluations:
 optimization.max_number_f_eval = 10000


=====================================
README.md
=====================================
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@ BppSuite is a suite of ready-to-use programs for phylogenetic and sequence analy
 
 ### Standalone executables 
 
-Standalone executables are available for [linux64](http://biopp.univ-montp2.fr/repos/exe/lin64/).
+Standalone executables are available for [linux64](https://github.com/BioPP/bppsuite/releases/tag/v2.3.2)
 
 [//]: [win32](http://biopp.univ-montp2.fr/repos/exe/win32/), [win64](http://biopp.univ-montp2.fr/repos/exe/win64/) and [Mac](http://biopp.univ-montp2.fr/repos/exe/mac/)
 
@@ -78,5 +78,5 @@ Many examples are available in the subdirectory of <tt>Examples</tt>.
 
 ### Documentation 
 
-Documentation can be found at http://github.com/bppsuite/releases in pdf or html.
+Documentation can be found at https://github.com/BioPP/bppsuite/releases/tag/v2.3.2 in pdf or html.
  
\ No newline at end of file


=====================================
bppSuite/CMakeLists.txt
=====================================
--- a/bppSuite/CMakeLists.txt
+++ b/bppSuite/CMakeLists.txt
@@ -41,6 +41,7 @@ foreach (target ${bppsuite-targets})
     set_target_properties (${target} PROPERTIES LINK_SEARCH_END_STATIC TRUE)
   else (BUILD_STATIC)
     target_link_libraries (${target} ${BPP_LIBS_SHARED})
+    set_target_properties (${target} PROPERTIES POSITION_INDEPENDENT_CODE TRUE)
   endif (BUILD_STATIC)
 endforeach (target)
 


=====================================
bppSuite/bppDist.cpp
=====================================
--- a/bppSuite/bppDist.cpp
+++ b/bppSuite/bppDist.cpp
@@ -182,14 +182,14 @@ int main(int args, char ** argv)
   string mhPath = ApplicationTools::getAFilePath("optimization.message_handler", bppdist.getParams(), false, false);
   OutputStream* messenger = 
     (mhPath == "none") ? 0 :
-      (mhPath == "std") ? ApplicationTools::message :
+      (mhPath == "std") ? ApplicationTools::message.get() :
         new StlOutputStream(new ofstream(mhPath.c_str(), ios::out));
   ApplicationTools::displayResult("Message handler", mhPath);
 
   string prPath = ApplicationTools::getAFilePath("optimization.profiler", bppdist.getParams(), false, false);
   OutputStream* profiler = 
     (prPath == "none") ? 0 :
-      (prPath == "std") ? ApplicationTools::message :
+      (prPath == "std") ? ApplicationTools::message.get() :
         new StlOutputStream(new ofstream(prPath.c_str(), ios::out));
   if(profiler) profiler->setPrecision(20);
   ApplicationTools::displayResult("Profiler", prPath);
@@ -232,11 +232,11 @@ int main(int args, char ** argv)
   
   //Here it is:
   ofstream warn("warnings", ios::out);
-  ApplicationTools::warning = new StlOutputStreamWrapper(&warn);
+  shared_ptr<OutputStream> wout = ApplicationTools::warning;
+  ApplicationTools::warning.reset(new StlOutputStreamWrapper(&warn));
   tree = OptimizationTools::buildDistanceTree(distEstimation, *distMethod, parametersToIgnore, !ignoreBrLen, type, tolerance, nbEvalMax, profiler, messenger, optVerbose);
   warn.close();
-  delete ApplicationTools::warning;
-  ApplicationTools::warning = ApplicationTools::message;
+  ApplicationTools::warning = wout;
 
   string matrixPath = ApplicationTools::getAFilePath("output.matrix.file", bppdist.getParams(), false, false, "", false);
   if (matrixPath != "none")


=====================================
bppSuite/bppPopStats.cpp
=====================================
--- a/bppSuite/bppPopStats.cpp
+++ b/bppSuite/bppPopStats.cpp
@@ -42,6 +42,7 @@
 #include <fstream>
 #include <iomanip>
 #include <memory>
+#include <cmath>
 
 using namespace std;
 
@@ -152,6 +153,7 @@ int main(int args, char** argv)
       if (ApplicationTools::parameterExists("input.sequence.outgroup.name", bpppopstats.getParams())) {
         vector<string> outgroups = ApplicationTools::getVectorParameter<string>("input.sequence.outgroup.name", bpppopstats.getParams(), ',', "");
         for (auto g : outgroups) {
+          ApplicationTools::displayResult("Sequence from outgroup", g);
           psc->setAsOutgroupMember(g);
         }
       }
@@ -270,7 +272,7 @@ int main(int args, char** argv)
       // Create a likelihood object:
       treeLik = new DRHomogeneousTreeLikelihood(*tree, *aln, model.get(), rDist.get());
       treeLik->initialize();
-      if (isinf(treeLik->getValue()))
+      if (std::isinf(treeLik->getValue()))
         throw Exception("Error: null likelihood. Possible cause: stop codon or numerical underflow (too many sequences).");
       // Optimize parameters:
       treeLik = dynamic_cast<DRTreeLikelihood*>(PhylogeneticsApplicationTools::optimizeParameters(treeLik, treeLik->getParameters(), bpppopstats.getParams(), "", true, true, 2));
@@ -431,8 +433,8 @@ int main(int args, char** argv)
         }
         double piS = SequenceStatistics::piSynonymous(*pscIn, *gCode);
         double piN = SequenceStatistics::piNonSynonymous(*pscIn, *gCode);
-        double nbS = SequenceStatistics::meanNumberOfSynonymousSites(*pscIn, *gCode);
-        double nbN = SequenceStatistics::meanNumberOfNonSynonymousSites(*pscIn, *gCode);
+        double nbS = SequenceStatistics::meanNumberOfSynonymousSites(*pscIn, *gCode, kappa);
+        double nbN = SequenceStatistics::meanNumberOfNonSynonymousSites(*pscIn, *gCode, kappa);
         double r = (piN / nbN) / (piS / nbS);
         ApplicationTools::displayResult("PiN:", piN);
         ApplicationTools::displayResult("PiS:", piS);
@@ -597,27 +599,22 @@ int main(int args, char** argv)
             if (codonAlphabet->isUnresolved(outgroupState) || codonAlphabet->isGap(outgroupState)) {
               out << "\tNA\tNA\tNA";
             } else {
-              if (estimateAncestor) {
-                //This is the same value as for polymorphism, we add it for having consistent output format
-                out << "\t" << CodonSiteTools::numberOfSynonymousPositions(ancestralSequence->getValue(i), *gCode, kappa);
-              } else {
-                //Also average over outgroup (Note: minState and maxState are identical in this case)
-                out << "\t" << (CodonSiteTools::numberOfSynonymousPositions(outgroupState, *gCode, kappa) +
-                                       CodonSiteTools::numberOfSynonymousPositions(minState, *gCode, kappa)) / 2.;
-              }
+              //Average over outgroup (Note: minState and maxState are identical in this case)
+              out << "\t" << (CodonSiteTools::numberOfSynonymousPositions(outgroupState, *gCode, kappa) +
+                                     CodonSiteTools::numberOfSynonymousPositions(minState, *gCode, kappa)) / 2.;
               if (nbAlleles == 1) {
                 //Compare with outgroup:
                 if (site[0] == outgroupState) {
-                  out << "\t0\t0" << endl;
+                  out << "\t0\t0";
                 } else {
                   //This is a real substitution:
-                  int nt = (int)CodonSiteTools::numberOfDifferences(outgroupState, minState, *codonAlphabet);
+                  double nt = static_cast<double>(CodonSiteTools::numberOfDifferences(outgroupState, minState, *codonAlphabet));
                   double ns = CodonSiteTools::numberOfSynonymousDifferences(outgroupState, minState, *gCode); 
-                  out << "\t" << ns << "\t" << (nt - ns);
+                  out << "\t" << (nt - ns) << "\t" << ns;
                 }
               } else {
                 //Site is polymorphic, this is not a substitution    
-                out << "\t0\t0" << endl;
+                out << "\t0\t0";
               }
             }
           }


=====================================
bppSuite/bppSeqGen.cpp
=====================================
--- a/bppSuite/bppSeqGen.cpp
+++ b/bppSuite/bppSeqGen.cpp
@@ -79,7 +79,7 @@ using namespace bpp;
 /**
  * @brief Read trees from an input file, with segment annotations. Hudson's MS format.
  */
-void readTreesMs(ifstream& file, vector<Tree*>& trees, vector<double>& pos, unsigned int totPos) throw (Exception)
+void readTreesMs(ifstream& file, vector<Tree*>& trees, vector<double>& pos, unsigned int totPos)
 {
   string line = "";
   unsigned int segsize;
@@ -131,7 +131,7 @@ void readTreesMs(ifstream& file, vector<Tree*>& trees, vector<double>& pos, unsi
 /**
  * @brief Read trees from an input file, with segment annotations. Mailund's CoaSim format.
  */
-void readTreesCoaSim(ifstream& file, vector<Tree*>& trees, vector<double>& pos) throw (Exception)
+void readTreesCoaSim(ifstream& file, vector<Tree*>& trees, vector<double>& pos) 
 {
   string line = "";
   double begin, end;


=====================================
bppSuite/bppSeqMan.cpp
=====================================
--- a/bppSuite/bppSeqMan.cpp
+++ b/bppSuite/bppSeqMan.cpp
@@ -298,6 +298,8 @@ int main(int args, char** argv)
     // +--------------+
     else if (cmdName == "RemoveStops")
     {
+      if (!codonAlphabet)
+        throw Exception("RemoveStops: requires a codon alphabet.");
       if (!gCode.get()) {
         string codeDesc = ApplicationTools::getStringParameter("genetic_code", bppseqman.getParams(), "Standard", "", true, 1);
         ApplicationTools::displayResult("Genetic Code", codeDesc);
@@ -338,6 +340,8 @@ int main(int args, char** argv)
       {
         throw Exception("'RemoveColumnsWithStops' can only be used on alignment. You may consider using the 'CoerceToAlignment' command.");
       }
+      if (!codonAlphabet)
+        throw Exception("RemoveColumnsWithStops: requires a codon alphabet.");
       if (!gCode.get()) {
         string codeDesc = ApplicationTools::getStringParameter("genetic_code", bppseqman.getParams(), "Standard", "", true, 1);
         ApplicationTools::displayResult("Genetic Code", codeDesc);
@@ -356,6 +360,8 @@ int main(int args, char** argv)
     // +---------+
     else if (cmdName == "GetCDS")
     {
+      if (!codonAlphabet)
+        throw Exception("GetCDS: requires a codon alphabet.");
       if (!gCode.get()) {
         string codeDesc = ApplicationTools::getStringParameter("genetic_code", bppseqman.getParams(), "Standard", "", true, 1);
         ApplicationTools::displayResult("Genetic Code", codeDesc);


=====================================
bppsuite.spec
=====================================
--- a/bppsuite.spec
+++ b/bppsuite.spec
@@ -1,36 +1,34 @@
-%define _basename bppsuite
-%define _version 2.3.2
-%define _release 1
 %define _prefix /usr
 
 URL: https://github.com/BioPP
 
-Name: %{_basename}
-Version: %{_version}
-Release: %{_release}
+Name: bppsuite
+Version: 2.4.0
+Release: 1%{?dist}
 License: CECILL-2.0
 Vendor: The Bio++ Project
-Source: %{_basename}-%{_version}.tar.gz
+Source: %{name}-%{version}.tar.gz
 Summary: The Bio++ Program Suite
 Group: Productivity/Scientific/Other
 
-Requires: libbpp-phyl11 = %{_version}
-Requires: libbpp-seq11 = %{_version}
-Requires: libbpp-core3 = %{_version}
+Requires: libbpp-popgen8 = %{version}
+Requires: libbpp-phyl12 = %{version}
+Requires: libbpp-seq12 = %{version}
+Requires: libbpp-core4 = %{version}
 
-BuildRoot: %{_builddir}/%{_basename}-root
+BuildRoot: %{_builddir}/%{name}-root
 BuildRequires: cmake >= 2.8.11
 BuildRequires: gcc-c++ >= 4.7.0
 BuildRequires: groff
 BuildRequires: texinfo >= 4.0.0
-BuildRequires: libbpp-core3 = %{_version}
-BuildRequires: libbpp-core-devel = %{_version}
-BuildRequires: libbpp-seq11 = %{_version}
-BuildRequires: libbpp-seq-devel = %{_version}
-BuildRequires: libbpp-phyl11 = %{_version}
-BuildRequires: libbpp-phyl-devel = %{_version}
-BuildRequires: libbpp-popgen7 = %{_version}
-BuildRequires: libbpp-popgen-devel = %{_version}
+BuildRequires: libbpp-core4 = %{version}
+BuildRequires: libbpp-core-devel = %{version}
+BuildRequires: libbpp-seq12 = %{version}
+BuildRequires: libbpp-seq-devel = %{version}
+BuildRequires: libbpp-phyl12 = %{version}
+BuildRequires: libbpp-phyl-devel = %{version}
+BuildRequires: libbpp-popgen8 = %{version}
+BuildRequires: libbpp-popgen-devel = %{version}
 
 
 AutoReq: yes
@@ -90,12 +88,13 @@ rm -rf $RPM_BUILD_ROOT
 %{_prefix}/share/man/man1/*.1*
 
 %changelog
+* Mon Mar 12 2018 Julien Dutheil <julien.dutheil at univ-montp2.fr> 2.4.0-1
 * Tue Jun 06 2017 Julien Dutheil <julien.dutheil at univ-montp2.fr> 2.3.1-1
 * Wed May 10 2017 Julien Dutheil <julien.dutheil at univ-montp2.fr> 2.3.0-1
 - New BppPopStats program
 - BppPhySamp is now distributed separately
 - Several bugs fixed and improvements
-* Mon Sep 28 2014 Julien Dutheil <julien.dutheil at univ-montp2.fr> 2.2.0-1
+* Mon Sep 29 2014 Julien Dutheil <julien.dutheil at univ-montp2.fr> 2.2.0-1
 - Compatibility update. Bio++ Program Suite version number is now indexed
   on Bio++'s version.
 - Programs support the --seed argument for setting the random seed.
@@ -112,5 +111,5 @@ rm -rf $RPM_BUILD_ROOT
 * Thu Mar 25 2010 Julien Dutheil <julien.dutheil at univ-montp2.fr> 0.5.0-1
 * Wed Jun 10 2009 Julien Dutheil <jdutheil at birc.au.dk> 0.4.0-1
 * Thu Dec 11 2008 Julien Dutheil <jdutheil at birc.au.dk> 0.3.1-1
-* Thu Sep 23 2008 Julien Dutheil <jdutheil at birc.au.dk> 0.3.0-1
+* Tue Sep 23 2008 Julien Dutheil <jdutheil at birc.au.dk> 0.3.0-1
 - Initial spec file.


=====================================
debian/changelog
=====================================
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,14 @@
+bppsuite (2.4.0-1) UNRELEASED; urgency=medium
+
+  * New upstream version
+  * Added full text of CeCILL license.
+  * Compiles with -DCMAKE_BUILD_TYPE=RelWithDebInfo to generate debug info
+    (lintian warning)
+  * Removed Vcs-Git and Vcs-Browser entries
+    (vcs-deprecated-in-debian-infrastructure)
+
+ -- Julien Dutheil <julien.dutheil at univ-montp2.fr>  Sun, 08 Apr 2018 08:46:29 +0200
+
 bppsuite (2.3.2-1) unstable; urgency=medium
 
   [ Julien Dutheil ]


=====================================
debian/control
=====================================
--- a/debian/control
+++ b/debian/control
@@ -7,11 +7,9 @@ Priority: optional
 Build-Depends: debhelper (>= 11~),
                cmake,
                texinfo,
-               libbpp-phyl-dev (>= 2.3.2),
-               libbpp-popgen-dev (>= 2.3.2)
+               libbpp-phyl-dev (>= 2.4.0),
+               libbpp-popgen-dev (>= 2.4.0)
 Standards-Version: 4.1.3
-Vcs-Browser: https://anonscm.debian.org/cgit/debian-med/bppsuite.git
-Vcs-Git: https://anonscm.debian.org/git/debian-med/bppsuite.git
 Homepage: http://biopp.univ-montp2.fr/wiki/index.php/Main_Page
 
 Package: bppsuite


=====================================
debian/copyright
=====================================
--- a/debian/copyright
+++ b/debian/copyright
@@ -4,39 +4,9 @@ Upstream-Contact: Julien Yann Dutheil <julien.dutheil at univ-montp2.fr>
 Source: https://github.com/BioPP/bppsuite
 
 Files: *
-Copyright: 2010-2017 Julien Yann Dutheil <julien.dutheil at univ-montp2.fr>
-           Bio++ Development Team
+Copyright: 2010-2018 Julien Yann Dutheil <julien.dutheil at univ-montp2.fr>
+                     Bio++ Development Team
 License: CeCILL
- The provided software is distributed under the CeCILL license:
- .
-    This software is governed by the CeCILL license under French law and
-    abiding by the rules of distribution of free software.  You can  use, 
-    modify and/ or redistribute the software under the terms of the CeCILL
-    license as circulated by CEA, CNRS and INRIA at the following URL
-    "http://www.cecill.info". 
- .
-    As a counterpart to the access to the source code and  rights to copy,
-    modify and redistribute granted by the license, users are provided only
-    with a limited warranty  and the software's author,  the holder of the
-    economic rights,  and the successive licensors  have only  limited
-    liability. 
- .
-    In this respect, the user's attention is drawn to the risks associated
-    with loading,  using,  modifying and/or developing or reproducing the
-    software by the user in light of its specific status of free software,
-    that may mean  that it is complicated to manipulate,  and  that  also
-    therefore means  that it is reserved for developers  and  experienced
-    professionals having in-depth computer knowledge. Users are therefore
-    encouraged to load and test the software's suitability as regards their
-    requirements in conditions enabling the security of their systems and/or 
-    data to be ensured and,  more generally, to use and operate it in the 
-    same conditions as regards security. 
- .
-    The fact that you are presently reading this means that you have had
-    knowledge of the CeCILL license and that you accept its terms.
- .    
- The complete text of the license may be found here:
- http://www.cecill.info/licences/Licence_CeCILL_V2-en.html
 
 Files: debian/*
 Copyright: 2014 Julien Yann Dutheil <julien.dutheil at univ-montp2.fr>
@@ -62,3 +32,507 @@ License: GPL-2+
  On Debian systems, the complete text of the GNU General
  Public License can be found in `/usr/share/common-licenses/GPL'.
 
+License: CeCILL
+                CeCILL FREE SOFTWARE LICENSE AGREEMENT
+ .
+     Notice
+ .
+ This Agreement is a Free Software license agreement that is the result
+ of discussions between its authors in order to ensure compliance with
+ the two main principles guiding its drafting:
+ .
+     * firstly, compliance with the principles governing the distribution
+       of Free Software: access to source code, broad rights granted to
+       users,
+     * secondly, the election of a governing law, French law, with which
+       it is conformant, both as regards the law of torts and
+       intellectual property law, and the protection that it offers to
+       both authors and holders of the economic rights over software.
+ .
+ The authors of the CeCILL (for Ce[a] C[nrs] I[nria] L[logiciel] L[ibre])
+ license are:
+ .
+ Commissariat à l'Energie Atomique - CEA, a public scientific, technical
+ and industrial establishment, having its principal place of business at
+ 31-33 rue de la Fédération, 75752 Paris cedex 15, France.
+ .
+ Centre National de la Recherche Scientifique - CNRS, a public scientific
+ and technological establishment, having its principal place of business
+ at 3 rue Michel-Ange 75794 Paris cedex 16, France.
+ .
+ Institut National de Recherche en Informatique et en Automatique -
+ INRIA, a public scientific and technological establishment, having its
+ principal place of business at Domaine de Voluceau, Rocquencourt, BP
+ 105, 78153 Le Chesnay cedex, France.
+ .
+ .
+     Preamble
+ .
+ The purpose of this Free Software license agreement is to grant users
+ the right to modify and redistribute the software governed by this
+ license within the framework of an open source distribution model.
+ .
+ The exercising of these rights is conditional upon certain obligations
+ for users so as to preserve this status for all subsequent redistributions.
+ .
+ In consideration of access to the source code and the rights to copy,
+ modify and redistribute granted by the license, users are provided only
+ with a limited warranty and the software's author, the holder of the
+ economic rights, and the successive licensors only have limited liability.
+ .
+ In this respect, the risks associated with loading, using, modifying
+ and/or developing or reproducing the software by the user are brought to
+ the user's attention, given its Free Software status, which may make it
+ complicated to use, with the result that its use is reserved for
+ developers and experienced professionals having in-depth computer
+ knowledge. Users are therefore encouraged to load and test the
+ Software's suitability as regards their requirements in conditions
+ enabling the security of their systems and/or data to be ensured and,
+ more generally, to use and operate it in the same conditions of
+ security. This Agreement may be freely reproduced and published,
+ provided it is not altered, and that no provisions are either added or
+ removed herefrom.
+ .
+ This Agreement may apply to any or all software for which the holder of
+ the economic rights decides to submit the use thereof to its provisions.
+ .
+ .
+     Article 1 - DEFINITIONS
+ .
+ For the purpose of this Agreement, when the following expressions
+ commence with a capital letter, they shall have the following meaning:
+ .
+ Agreement: means this license agreement, and its possible subsequent
+ versions and annexes.
+ .
+ Software: means the software in its Object Code and/or Source Code form
+ and, where applicable, its documentation, "as is" when the Licensee
+ accepts the Agreement.
+ .
+ Initial Software: means the Software in its Source Code and possibly its
+ Object Code form and, where applicable, its documentation, "as is" when
+ it is first distributed under the terms and conditions of the Agreement.
+ .
+ Modified Software: means the Software modified by at least one
+ Contribution.
+ .
+ Source Code: means all the Software's instructions and program lines to
+ which access is required so as to modify the Software.
+ .
+ Object Code: means the binary files originating from the compilation of
+ the Source Code.
+ .
+ Holder: means the holder(s) of the economic rights over the Initial
+ Software.
+ .
+ Licensee: means the Software user(s) having accepted the Agreement.
+ .
+ Contributor: means a Licensee having made at least one Contribution.
+ .
+ Licensor: means the Holder, or any other individual or legal entity, who
+ distributes the Software under the Agreement.
+ .
+ Contribution: means any or all modifications, corrections, translations,
+ adaptations and/or new functions integrated into the Software by any or
+ all Contributors, as well as any or all Internal Modules.
+ .
+ Module: means a set of sources files including their documentation that
+ enables supplementary functions or services in addition to those offered
+ by the Software.
+ .
+ External Module: means any or all Modules, not derived from the
+ Software, so that this Module and the Software run in separate address
+ spaces, with one calling the other when they are run.
+ .
+ Internal Module: means any or all Module, connected to the Software so
+ that they both execute in the same address space.
+ .
+ GNU GPL: means the GNU General Public License version 2 or any
+ subsequent version, as published by the Free Software Foundation Inc.
+ .
+ Parties: mean both the Licensee and the Licensor.
+ .
+ These expressions may be used both in singular and plural form.
+ .
+ .
+     Article 2 - PURPOSE
+ .
+ The purpose of the Agreement is the grant by the Licensor to the
+ Licensee of a non-exclusive, transferable and worldwide license for the
+ Software as set forth in Article 5 hereinafter for the whole term of the 
+ protection granted by the rights over said Software.
+ .
+ .
+     Article 3 - ACCEPTANCE
+ .
+ 3.1 The Licensee shall be deemed as having accepted the terms and
+ conditions of this Agreement upon the occurrence of the first of the
+ following events:
+ .
+     * (i) loading the Software by any or all means, notably, by
+       downloading from a remote server, or by loading from a physical
+       medium;
+     * (ii) the first time the Licensee exercises any of the rights
+       granted hereunder.
+ .
+ 3.2 One copy of the Agreement, containing a notice relating to the
+ characteristics of the Software, to the limited warranty, and to the
+ fact that its use is restricted to experienced users has been provided
+ to the Licensee prior to its acceptance as set forth in Article 3.1
+ hereinabove, and the Licensee hereby acknowledges that it has read and 
+ understood it.
+ .
+ .
+     Article 4 - EFFECTIVE DATE AND TERM
+ .
+ .
+       4.1 EFFECTIVE DATE
+ .
+ The Agreement shall become effective on the date when it is accepted by
+ the Licensee as set forth in Article 3.1.
+ .
+ .
+       4.2 TERM
+ .
+ The Agreement shall remain in force for the entire legal term of
+ protection of the economic rights over the Software.
+ .
+ .
+     Article 5 - SCOPE OF RIGHTS GRANTED
+ .
+ The Licensor hereby grants to the Licensee, who accepts, the following
+ rights over the Software for any or all use, and for the term of the
+ Agreement, on the basis of the terms and conditions set forth hereinafter.
+ .
+ Besides, if the Licensor owns or comes to own one or more patents
+ protecting all or part of the functions of the Software or of its
+ components, the Licensor undertakes not to enforce the rights granted by
+ these patents against successive Licensees using, exploiting or
+ modifying the Software. If these patents are transferred, the Licensor
+ undertakes to have the transferees subscribe to the obligations set
+ forth in this paragraph.
+ .
+ .
+       5.1 RIGHT OF USE
+ .
+ The Licensee is authorized to use the Software, without any limitation
+ as to its fields of application, with it being hereinafter specified
+ that this comprises:
+ .
+    1. permanent or temporary reproduction of all or part of the Software
+       by any or all means and in any or all form.
+ .
+    2. loading, displaying, running, or storing the Software on any or
+       all medium.
+ .
+    3. entitlement to observe, study or test its operation so as to
+       determine the ideas and principles behind any or all constituent
+       elements of said Software. This shall apply when the Licensee
+       carries out any or all loading, displaying, running, transmission
+       or storage operation as regards the Software, that it is entitled
+       to carry out hereunder.
+ .
+ .
+       5.2 ENTITLEMENT TO MAKE CONTRIBUTIONS
+ .
+ The right to make Contributions includes the right to translate, adapt,
+ arrange, or make any or all modifications to the Software, and the right
+ to reproduce the resulting Software.
+ .
+ The Licensee is authorized to make any or all Contributions to the
+ Software provided that it includes an explicit notice that it is the
+ author of said Contribution and indicates the date of the creation thereof.
+ .
+ .
+       5.3 RIGHT OF DISTRIBUTION
+ .
+ In particular, the right of distribution includes the right to publish,
+ transmit and communicate the Software to the general public on any or
+ all medium, and by any or all means, and the right to market, either in
+ consideration of a fee, or free of charge, one or more copies of the
+ Software by any means.
+ .
+ The Licensee is further authorized to distribute copies of the modified
+ or unmodified Software to third parties according to the terms and
+ conditions set forth hereinafter.
+ .
+ .
+         5.3.1 DISTRIBUTION OF SOFTWARE WITHOUT MODIFICATION
+ .
+ The Licensee is authorized to distribute true copies of the Software in
+ Source Code or Object Code form, provided that said distribution
+ complies with all the provisions of the Agreement and is accompanied by:
+ .
+    1. a copy of the Agreement,
+ .
+    2. a notice relating to the limitation of both the Licensor's
+       warranty and liability as set forth in Articles 8 and 9,
+ .
+ and that, in the event that only the Object Code of the Software is
+ redistributed, the Licensee allows future Licensees unhindered access to
+ the full Source Code of the Software by indicating how to access it, it
+ being understood that the additional cost of acquiring the Source Code
+ shall not exceed the cost of transferring the data.
+ .
+ .
+         5.3.2 DISTRIBUTION OF MODIFIED SOFTWARE
+ .
+ When the Licensee makes a Contribution to the Software, the terms and
+ conditions for the distribution of the Modified Software become subject
+ to all the provisions of this Agreement.
+ .
+ The Licensee is authorized to distribute the Modified Software, in
+ Source Code or Object Code form, provided that said distribution
+ complies with all the provisions of the Agreement and is accompanied by:
+ .
+    1. a copy of the Agreement,
+ .
+    2. a notice relating to the limitation of both the Licensor's
+       warranty and liability as set forth in Articles 8 and 9,
+ .
+ and that, in the event that only the Object Code of the Modified
+ Software is redistributed, the Licensee allows future Licensees
+ unhindered access to the full Source Code of the Modified Software by
+ indicating how to access it, it being understood that the additional
+ cost of acquiring the Source Code shall not exceed the cost of
+ transferring the data.
+ .
+ .
+         5.3.3 DISTRIBUTION OF EXTERNAL MODULES
+ .
+ When the Licensee has developed an External Module, the terms and
+ conditions of this Agreement do not apply to said External Module, that
+ may be distributed under a separate license agreement.
+ .
+ .
+         5.3.4 COMPATIBILITY WITH THE GNU GPL
+ .
+ The Licensee can include a code that is subject to the provisions of one
+ of the versions of the GNU GPL in the Modified or unmodified Software,
+ and distribute that entire code under the terms of the same version of
+ the GNU GPL.
+ .
+ The Licensee can include the Modified or unmodified Software in a code
+ that is subject to the provisions of one of the versions of the GNU GPL,
+ and distribute that entire code under the terms of the same version of
+ the GNU GPL.
+ .
+ .
+     Article 6 - INTELLECTUAL PROPERTY
+ .
+ .
+       6.1 OVER THE INITIAL SOFTWARE
+ .
+ The Holder owns the economic rights over the Initial Software. Any or
+ all use of the Initial Software is subject to compliance with the terms
+ and conditions under which the Holder has elected to distribute its work
+ and no one shall be entitled to modify the terms and conditions for the
+ distribution of said Initial Software.
+ .
+ The Holder undertakes that the Initial Software will remain ruled at
+ least by the current license, for the duration set forth in article 4.2.
+ .
+ .
+       6.2 OVER THE CONTRIBUTIONS
+ .
+ A Licensee who develops a Contribution is the owner of the intellectual
+ property rights over this Contribution as defined by applicable law.
+ .
+ .
+       6.3 OVER THE EXTERNAL MODULES
+ .
+ A Licensee who develops an External Module is the owner of the
+ intellectual property rights over this External Module as defined by
+ applicable law and is free to choose the type of agreement that shall
+ govern its distribution.
+ .
+ .
+       6.4 JOINT PROVISIONS
+ .
+ The Licensee expressly undertakes:
+ .
+    1. not to remove, or modify, in any manner, the intellectual property
+       notices attached to the Software;
+ .
+    2. to reproduce said notices, in an identical manner, in the copies
+       of the Software modified or not.
+ .
+ The Licensee undertakes not to directly or indirectly infringe the
+ intellectual property rights of the Holder and/or Contributors on the
+ Software and to take, where applicable, vis-à-vis its staff, any and all
+ measures required to ensure respect of said intellectual property rights
+ of the Holder and/or Contributors.
+ .
+ .
+     Article 7 - RELATED SERVICES
+ .
+ 7.1 Under no circumstances shall the Agreement oblige the Licensor to
+ provide technical assistance or maintenance services for the Software.
+ .
+ However, the Licensor is entitled to offer this type of services. The
+ terms and conditions of such technical assistance, and/or such
+ maintenance, shall be set forth in a separate instrument. Only the
+ Licensor offering said maintenance and/or technical assistance services
+ shall incur liability therefor.
+ .
+ 7.2 Similarly, any Licensor is entitled to offer to its licensees, under
+ its sole responsibility, a warranty, that shall only be binding upon
+ itself, for the redistribution of the Software and/or the Modified
+ Software, under terms and conditions that it is free to decide. Said
+ warranty, and the financial terms and conditions of its application,
+ shall be subject of a separate instrument executed between the Licensor
+ and the Licensee.
+ .
+ .
+     Article 8 - LIABILITY
+ .
+ 8.1 Subject to the provisions of Article 8.2, the Licensee shall be
+ entitled to claim compensation for any direct loss it may have suffered
+ from the Software as a result of a fault on the part of the relevant
+ Licensor, subject to providing evidence thereof.
+ .
+ 8.2 The Licensor's liability is limited to the commitments made under
+ this Agreement and shall not be incurred as a result of in particular:
+ (i) loss due the Licensee's total or partial failure to fulfill its
+ obligations, (ii) direct or consequential loss that is suffered by the
+ Licensee due to the use or performance of the Software, and (iii) more
+ generally, any consequential loss. In particular the Parties expressly
+ agree that any or all pecuniary or business loss (i.e. loss of data,
+ loss of profits, operating loss, loss of customers or orders,
+ opportunity cost, any disturbance to business activities) or any or all
+ legal proceedings instituted against the Licensee by a third party,
+ shall constitute consequential loss and shall not provide entitlement to
+ any or all compensation from the Licensor.
+ .
+ .
+     Article 9 - WARRANTY
+ .
+ 9.1 The Licensee acknowledges that the scientific and technical
+ state-of-the-art when the Software was distributed did not enable all
+ possible uses to be tested and verified, nor for the presence of
+ possible defects to be detected. In this respect, the Licensee's
+ attention has been drawn to the risks associated with loading, using,
+ modifying and/or developing and reproducing the Software which are
+ reserved for experienced users.
+ .
+ The Licensee shall be responsible for verifying, by any or all means,
+ the product's suitability for its requirements, its good working order,
+ and for ensuring that it shall not cause damage to either persons or
+ properties.
+ .
+ 9.2 The Licensor hereby represents, in good faith, that it is entitled
+ to grant all the rights over the Software (including in particular the
+ rights set forth in Article 5).
+ .
+ 9.3 The Licensee acknowledges that the Software is supplied "as is" by
+ the Licensor without any other express or tacit warranty, other than
+ that provided for in Article 9.2 and, in particular, without any warranty
+ as to its commercial value, its secured, safe, innovative or relevant 
+ nature.
+ .
+ Specifically, the Licensor does not warrant that the Software is free
+ from any error, that it will operate without interruption, that it will
+ be compatible with the Licensee's own equipment and software
+ configuration, nor that it will meet the Licensee's requirements.
+ .
+ 9.4 The Licensor does not either expressly or tacitly warrant that the
+ Software does not infringe any third party intellectual property right
+ relating to a patent, software or any other property right. Therefore,
+ the Licensor disclaims any and all liability towards the Licensee
+ arising out of any or all proceedings for infringement that may be
+ instituted in respect of the use, modification and redistribution of the
+ Software. Nevertheless, should such proceedings be instituted against
+ the Licensee, the Licensor shall provide it with technical and legal
+ assistance for its defense. Such technical and legal assistance shall be
+ decided on a case-by-case basis between the relevant Licensor and the
+ Licensee pursuant to a memorandum of understanding. The Licensor
+ disclaims any and all liability as regards the Licensee's use of the
+ name of the Software. No warranty is given as regards the existence of
+ prior rights over the name of the Software or as regards the existence
+ of a trademark.
+ .
+ .
+     Article 10 - TERMINATION
+ .
+ 10.1 In the event of a breach by the Licensee of its obligations
+ hereunder, the Licensor may automatically terminate this Agreement
+ thirty (30) days after notice has been sent to the Licensee and has
+ remained ineffective.
+ .
+ 10.2 A Licensee whose Agreement is terminated shall no longer be
+ authorized to use, modify or distribute the Software. However, any
+ licenses that it may have granted prior to termination of the Agreement
+ shall remain valid subject to their having been granted in compliance
+ with the terms and conditions hereof.
+ .
+ .
+     Article 11 - MISCELLANEOUS
+ .
+ .
+       11.1 EXCUSABLE EVENTS
+ .
+ Neither Party shall be liable for any or all delay, or failure to
+ perform the Agreement, that may be attributable to an event of force
+ majeure, an act of God or an outside cause, such as defective
+ functioning or interruptions of the electricity or telecommunications
+ networks, network paralysis following a virus attack, intervention by
+ government authorities, natural disasters, water damage, earthquakes,
+ fire, explosions, strikes and labor unrest, war, etc.
+ .
+ 11.2 Any Failure by either Party, on one or more occasions, to invoke
+ one or more of the provisions hereof, shall under no circumstances be
+ interpreted as being a waiver by the interested Party of its right to
+ invoke said provision(s) subsequently.
+ .
+ 11.3 The Agreement cancels and replaces any or all previous agreements,
+ whether written or oral, between the Parties and having the same
+ purpose, and constitutes the entirety of the agreement between said
+ Parties concerning said purpose. No supplement or modification to the
+ terms and conditions hereof shall be effective as between the Parties
+ unless it is made in writing and signed by their duly authorized
+ representatives.
+ .
+ 11.4 In the event that one or more of the provisions hereof were to
+ conflict with a current or future applicable act or legislative text,
+ said act or legislative text shall prevail, and the Parties shall make
+ the necessary amendments so as to comply with said act or legislative
+ text. All other provisions shall remain effective. Similarly, invalidity
+ of a provision of the Agreement, for any reason whatsoever, shall not
+ cause the Agreement as a whole to be invalid.
+ .
+ .
+       11.5 LANGUAGE
+ .
+ The Agreement is drafted in both French and English and both versions
+ are deemed authentic.
+ .
+ .
+     Article 12 - NEW VERSIONS OF THE AGREEMENT
+ .
+ 12.1 Any person is authorized to duplicate and distribute copies of this
+ Agreement.
+ .
+ 12.2 So as to ensure coherence, the wording of this Agreement is
+ protected and may only be modified by the authors of the License, who
+ reserve the right to periodically publish updates or new versions of the
+ Agreement, each with a separate number. These subsequent versions may
+ address new issues encountered by Free Software.
+ .
+ 12.3 Any Software distributed under a given version of the Agreement may
+ only be subsequently distributed under the same version of the Agreement
+ or a subsequent version, subject to the provisions of Article 5.3.4.
+ .
+ .
+     Article 13 - GOVERNING LAW AND JURISDICTION
+ .
+ 13.1 The Agreement is governed by French law. The Parties agree to
+ endeavor to seek an amicable solution to any disagreements or disputes
+ that may arise during the performance of the Agreement.
+ .
+ 13.2 Failing an amicable solution within two (2) months as from their
+ occurrence, and unless emergency proceedings are necessary, the
+ disagreements or disputes shall be referred to the Paris Courts having
+ jurisdiction, by the more diligent Party.
+ .
+ .
+ Version 2.0 dated 2005-05-21.


=====================================
debian/patches/linkage.patch deleted
=====================================
--- a/debian/patches/linkage.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Author: Julien Y. Dutheil <dutheil at evolbio.mpg.de>
-Last-Update: Tue Jul 18 21:47:58 2017 +0200
-Description: Fixed linkage issue on x32 arch.
-
---- a/bppSuite/CMakeLists.txt
-+++ b/bppSuite/CMakeLists.txt
-@@ -41,6 +41,7 @@ foreach (target ${bppsuite-targets})
-     set_target_properties (${target} PROPERTIES LINK_SEARCH_END_STATIC TRUE)
-   else (BUILD_STATIC)
-     target_link_libraries (${target} ${BPP_LIBS_SHARED})
-+    set_target_properties (${target} PROPERTIES POSITION_INDEPENDENT_CODE TRUE)
-   endif (BUILD_STATIC)
- endforeach (target)
- 


=====================================
debian/patches/series
=====================================
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,3 +0,0 @@
-spelling.patch
-linkage.patch
-set_max_compression.patch


=====================================
debian/patches/set_max_compression.patch deleted
=====================================
--- a/debian/patches/set_max_compression.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Author: Julien Y. Dutheil
-Last-Update: 2018-02-07 11:49:10 +0100
-Description: Set maximal compression
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 011e25b..f94e92b 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -60,8 +60,8 @@ else ()
-   endif ()
-   # Generate command line args (always add -c to output compressed file to stdout)
-   if (${COMPRESS_PROGRAM} STREQUAL "gzip")
--    # -n for no timestamp in files (reproducible builds)
--    set (COMPRESS_ARGS -c -n)
-+    # -n for no timestamp in files (reproducible builds) -9n for maximal compression
-+    set (COMPRESS_ARGS -c -n -9n)
-   else ()
-     set (COMPRESS_ARGS -c)
-   endif ()


=====================================
debian/patches/spelling.patch deleted
=====================================
--- a/debian/patches/spelling.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Author: Andreas Tille <tille at debian.org>
-Last-Update: Wed, 14 Jun 2017 15:12:35 +0200
-Description: Fix spelling
-
---- a/man/bppseqman.1
-+++ b/man/bppseqman.1
-@@ -14,7 +14,7 @@ All UNIX flavors
- 
- .SH DESCRIPTION
- 
--bppseqman performs several in silico molecular biology operations like transcription, translation or traduction. It also allows conversion between various file format, and bioinformatics tasks like removing of gaps, unknow characters or stop codons.
-+bppseqman performs several in silico molecular biology operations like transcription, translation or traduction. It also allows conversion between various file format, and bioinformatics tasks like removing of gaps, unknown characters or stop codons.
- 
- .SH OPTIONS
- 


=====================================
debian/rules
=====================================
--- a/debian/rules
+++ b/debian/rules
@@ -7,6 +7,9 @@ export DEB_BUILD_MAINT_OPTIONS = hardening=+all
 %:
 	dh $@
 
+override_dh_auto_configure:
+	dh_auto_configure -- -DCMAKE_BUILD_TYPE=RelWithDebInfo
+
 override_dh_fixperms:
 	dh_fixperms
 	find debian -name "*.dnd" -exec chmod -x \{\} \;


=====================================
doc/bppsuite.texi
=====================================
--- a/doc/bppsuite.texi
+++ b/doc/bppsuite.texi
@@ -1,7 +1,7 @@
 \input texinfo   @c -*-texinfo-*-
 @c %**start of header
 @setfilename bppsuite.info
- at settitle BppSuite Manual 2.3.2
+ at settitle BppSuite Manual 2.4.0
 @documentencoding UTF-8
 @afourpaper
 @dircategory Science Biology Genetics
@@ -21,15 +21,15 @@
 @c %**end of header
 
 @copying
-This is the manual of the Bio++ Program Suite, version 2.3.2.
+This is the manual of the Bio++ Program Suite, version 2.4.0.
 
-Copyright @copyright{} 2007-2017 Bio++ development team
+Copyright @copyright{} 2007-2018 Bio++ development team
 @end copying
 
 @titlepage
 @title BppSuite Manual
 @author Julien Dutheil, Laurent Guéguen
- at author @email{julien.dutheil@@univ-montp2.fr}
+ at author @email{dutheil@@evolbio.mpg.de}
 
 @c The following two commands start the copyright page.
 @page
@@ -97,8 +97,8 @@ Bio++ Program Suite Reference
 * bppconsense::                 Bio++ Consensus Trees.
 * bppreroot::                   Bio++ Serial Tree Re-rooting.
 * bppseqman::                   Bio++ Sequences Manipulation.
-* bppalnscore::                 Bio++ Alignment Scoring
-* bpppopstats::
+* bppalnscore::                 Bio++ Alignment Scoring.
+* bpppopstats::                 Bio++ Population Genetics Statistics.
 * bpptreedraw::                 Bio++ Tree Drawing.
 
 @end detailmenu
@@ -1000,30 +1000,38 @@ Arguments @var{relrate@{i@}} stands for the relative substitution rates
 of the sites. Default: @var{relrate@{i@}=1/@{4-i@}}, such that the rate
 of each site is 1/3.
 
+ at cartouche
 @example
 alphabet=Codon(letter=DNA)
 genetic_code=Standard
 model=CodonRate(model=T92)
 @end example
+ at end cartouche
+
 builds a model on codons, such all sites follow the same T92 model.
 The parameters names are @var{CodonRate.123_T92.kappa},
 @var{CodonRate.relrate1}, @var{CodonRate.relrate2}.
 
+ at cartouche
 @example
 alphabet=Codon(letter=DNA)
 genetic_code=Standard
 model=CodonRate(model1=T92, model2=T92, model3=JC69)
 @end example
+ at end cartouche
+
 builds a model on codons, such that first and second sites follow
 independent T92 models, and third site follows a JC69 model. Then the
 parameters names are @var{CodonRate.1_T92.kappa},
 @var{CodonRate.2_T92.kappa}, @var{CodonRate.relrate1},
 @var{CodonRate.relrate2}, and can be initialized as is:
 
+ at cartouche
 @example
 model=CodonRate(model1=T92(theta=0.5, kappa=2), \
                 model2=T92(theta=0.4, kappa=2), model3=JC69)
 @end example
+ at end cartouche
 
 See the
 @uref{http://bioweb.me/bpp-phyl-doc/classbpp_1_1CodonRateSubstitutionModel.html#details, Bio++ description, Bio++ description}.
@@ -1037,19 +1045,24 @@ between synonymous and non-synonymous substitutions.
 Optional argument @var{beta} is the ratio between non-synonymous
 substitution rate and synonymous substitution rate. Default value: 1.
 
+ at cartouche
 @example
 alphabet=Codon(letter=DNA)
-
 model=CodonDist(model=T92)
 @end example
+ at end cartouche
+
 builds a model on codons, such all sites follow the same T92 model.
 The parameters names are @var{CodonDist.123_T92.kappa} and 
 @var{CodonDist.beta}.
 
+ at cartouche 
 @example
 alphabet=Codon(letter=DNA, type=Standard)
 model=CodonDist(model1=T92, model2=T92, model3=JC69)
 @end example
+ at end cartouche
+
 builds a model on codons, such that first and second sites follow
 independent T92 models, and third site follows a JC69 model. Then the
 parameters names are @var{CodonDist.1_T92.kappa},
@@ -1072,11 +1085,14 @@ Optional argument @var{beta} is the ratio between average substitution
 rate between amino-acids and synonymous substitution rate. Default
 value: 1.
 
+ at cartouche
 @example
 alphabet=Codon(letter=DNA)
 genetic_code=Standard
 model=CodonProt(model=T92, protmodel=LG08)
 @end example
+ at end cartouche
+
 builds a model on codons, such all sites follow the same T92 model,
 and amino-acid rates are proportional to LG08 substition matrice.
 The parameters names are @var{CodonProt.123_T92.kappa} and 
@@ -1098,11 +1114,14 @@ in the given frequencies set. This factor is described by the
 below.
 
 
+ at cartouche
 @example
 alphabet=Codon(letter=DNA)
 genetic_code=Standard
 model=CodonDistFreq(frequencies=Full())
 @end example
+ at end cartouche
+
 has parameters @var{CodonDistFreq.012_T92.kappa},
 @var{CodonDistFreq.Full.theta_1}, ...,
 @var{CodonDistFreq.Full.theta_60},
@@ -1195,19 +1214,25 @@ Arguments @var{relrate@{i@}} stands for the relative substitution rates
 of the sites. Default: @var{relrate@{i@}=1/@{n-i+1@}}, such that the rate
 of each site is 1/n.
 
+ at cartouche
 @example
 alphabet=Word(letter=DNA,length=4)
 model=Word(model=T92())
 @end example
+ at end cartouche
+
 builds a model on 4 bases words, such all sites follow the same T92
 model. The parameters names are @var{Word.1234_T92.kappa},
 @var{Word.relrate1}, @var{Word.relrate2}, @var{Word.relrate3}.
 
+ at cartouche
 @example
 alphabet=Word(letter=DNA,length=4)
 model=Word(model1=T92(), model2=T92(), model3=JC69(), \
            model4=HKY85())
 @end example
+ at end cartouche
+
 builds a model on 4 bases words, such first and second sites follow
 independent T92 models, third site follows a JC69 model, and fourth
 site follows a HKY85 model. Then the parameters names are
@@ -1253,25 +1278,33 @@ allowed).
 
 As examples, on a DNA word with 3 positions:
 
+ at cartouche
 @example
 model=Kron(model=K80(), positions=1*2*3)
 @end example
+ at end cartouche
 allows only substitutions that change the 3 positions.
 
+ at cartouche
 @example
 model=Kron(model=K80(), positions=1*2+3)
 @end example
+ at end cartouche
 allows only substitutions that change the positions 1 and 2, and the
 ones that change position 3 alone.
 
+ at cartouche
 @example
 model=Kron(model=K80(), positions=1*2+2*3)
 @end example
+ at end cartouche
 allows only substitutions that change two neighbor positions.
 
+ at cartouche
 @example
 model=Kron(model=K80(), positions=1+2+3)
 @end example
+ at end cartouche
 allows only substitutions that change one position, i.e. @var{Word}
 model.
 
@@ -1304,19 +1337,23 @@ Arguments @var{relrate@{i@}} stands for the relative substitution rates
 of the sites. Default: @var{relrate@{i@}=1/@{4-i@}}, such that the rate
 of each site is 1/3.
 
+ at cartouche
 @example
 alphabet=Codon(letter=DNA)
 genetic_code=Standard
 model=Triplet(model=T92)
 @end example
+ at end cartouche
 builds a model on codons, such all sites follow the same T92 model.
 The parameters names are @var{Triplet.123_T92.kappa},
 @var{Triplet.relrate1}, @var{Triplet.relrate2}.
 
+ at cartouche
 @example
 alphabet=Word(letter=DNA, length=3)
 model=Triplet(model1=T92, model2=T92, model3=JC69)
 @end example
+ at end cartouche
 builds a model on 3 bases words, such first and second sites follow
 independent T92 models, and third site follows a JC69 model. Then the
 parameters names are @var{Triplet.1_T92.kappa},
@@ -1427,11 +1464,13 @@ parameters distributions is described below. In case the range of a
 parameter is limited, the domain of the corresponding distribution is
 truncated accordingly.
 
+ at cartouche
 @example
 model=MixedModel(model=TN93(kappa1=Gamma(n=4,alpha=3,beta=1),\
                             kappa2=Exponential(lambda=2),\
                             theta=0.5,theta1=0.2,theta2=0.1))
 @end example
+ at end cartouche
 has parameters @var{TN93.kappa1_Gamma.alpha},
 @var{TN93.kappa1_Gamma.beta},
 @var{TN93.kappa2_Exponential.lamba},
@@ -1451,9 +1490,11 @@ order the models are given). Default: @var{relproba@{i@}=1/@{n-i+1@}},
 such that the probabilty of each site is 1/n, and
 @var{relrate@{i@}=1/@{n-i+1@}} such that the rate of each site is 1.
 
+ at cartouche
 @example
 model=Mixture(model1=GY94(), model2=YN98(), relrate1=0.1)
 @end example
+ at end cartouche
 has parameters at var{Mixture.relrate1}, @var{Mixture.relproba1},
 @var{Mixture.1_GY94.kappa}, @var{Mixture.1_GY94.V},
 @var{Mixture.2_YN98.kappa}, @var{Mixture.2_YN98.omega}.
@@ -1520,9 +1561,11 @@ Set the number of distinct models to use.
 
 You now have to configure each model individually, using the syntax introduced for the homogeneous case, excepted that model will be numbered, for instance:
 
+ at cartouche
 @example
 model1 = T92(theta=0.39, kappa=2.79)
 @end example
+ at end cartouche
 
 The additional option is available to attach the model to branches in the tree, specified by the id of the upper node in the tree:
 
@@ -1552,18 +1595,22 @@ file.
 To define constraints for sites between submodels, we can set "paths"
 that any site must follow. For example, in the following description:
 
+ at cartouche
 @example
 nonhomogeneous = general
 nonhomogeneous.number_of_models = 3
 
 model1=T92()
-model2=MixedModel(model=T92(kappa=Simple(values=(4,10,20),probas=(0.1,0.5,0.4))))
-model3=MixedModel(model=TN93(theta1=Simple(values=(0.1,0.5,0.9),probas=(0.3,0.2,0.5))))
+model2=MixedModel(model=T92(kappa=Simple(values=(4,10,20),\
+                                probas=(0.1,0.5,0.4))))
+model3=MixedModel(model=TN93(theta1=Simple(values=(0.1,0.5,0.9),\
+                                probas=(0.3,0.2,0.5))))
 
 model1.nodes_id=0:1
 model2.nodes_id=2:3
 model3.nodes_id=4:5
 @end example
+ at end cartouche
 
 In this case, on branches 2 & 3 a site follows any submodel of model 2
 (but the same submodel on both branches), and on branches 4 & 5, a
@@ -1579,20 +1626,25 @@ are free (in this case it means that @var{T92.kappa=20} in model 2 is
 linked with @var{TN93.theta1=0.5} in model 3), then we can use the
 declarations:
 
+ at cartouche
 @example
 site.number_of_paths=2
 site.path1=model2[T92.kappa_1] & model3[TN93.theta1_2]
 site.path2=model2[T92.kappa_2] & model3[TN93.theta1_3]
 @end example
+ at end cartouche
 
 The third path (for the remaining submodels) is automatically
 computed.
 
 It is possible to link mixtures of submodels. For example,
 
+ at cartouche
 @example 
-site.path1=model2[T92.kappa_1] & model3[TN93.theta1_2] & model3[TN93.theta1_3]
+site.path1=model2[T92.kappa_1] & model3[TN93.theta1_2]\
+                               & model3[TN93.theta1_3]
 @end example
+ at end cartouche
 
 means that a site that has @var{T92.kappa=4} in model2 has either
 @var{TN93.theta1=0.5} or @var{TN93.theta1=0.9} in model3.
@@ -1618,6 +1670,7 @@ identifiability of several parameters (here the probabilities in model
 Another example in the case of mixtures of mixed models, where the
 submodels are defined by their names;
 
+ at cartouche
 @example
 nonhomogeneous = general
 nonhomogeneous.number_of_models = 2
@@ -1627,8 +1680,10 @@ model2=LLG08_UL3()
 
 site.number_of_paths=2
 site.path1=model1[LLG08_UL2.M2] & model2[LLG08_UL3.Q1]
-site.path2=model1[LLG08_UL2.M1] & model2[LLG08_UL3.Q2] & model2[LLG08_UL3.Q3]
+site.path2=model1[LLG08_UL2.M1] & model2[LLG08_UL3.Q2] \
+                                & model2[LLG08_UL3.Q3]
 @end example
+ at end cartouche
 
 When nonhomogeneity option is @option{one_per_branch}, each site is
 constrained to follow the same submodel from leaves to root.
@@ -1696,19 +1751,23 @@ length of the words in the alphabet must be @var{n}, and all single
 site frequency sets are independent. In that case, all single site
 frequency set parameters are position dependent.
 
+ at cartouche
 @example
 alphabet=Word(letter=DNA,length=4)
 nonhomogeneous.root_freq=Word(frequency=GC())
 @end example
+ at end cartouche
 builds a root frequency set on 4 bases words, such that all sites
 frequencies follow the same GC frequency set model. The parameter
 name is @var{1234_GC.theta}.
 
+ at cartouche
 @example
 alphabet=Word(letter=DNA,length=4)
 nonhomogeneous.root_freq=Word(frequency1=GC(),frequency2=GC(),\
                       frequency3=Fixed(),frequency4=Full())
 @end example
+ at end cartouche
 builds a root frequency set on 4 bases words, such first and second sites
 follow independent GC frequency sets, third site follows a Fixed
 frequency set, and fourth site follows a Full frequency set. Then the
@@ -1736,20 +1795,25 @@ If the arguments are @var{frequency1}, @var{frequency2},
 that case, all single site frequency set parameters are position
 dependent.
 
+ at cartouche
 @example
 alphabet=Codon(letter=DNA)
 genetic_code=Standard
 nonhomogeneous.root_freq=Codon(frequency=GC())
 @end example
+ at end cartouche
 builds a frequency set on codons, such that all sites frequencies
 follow the same GC frequency set model. The parameter name is
 @var{123_GC.theta}.
 
+ at cartouche
 @example
 alphabet=Codon(letter=DNA)
 genetic_code=Standard
-nonhomogeneous.root_freq=Codon(frequency1=GC(),frequency2=GC(),frequency3=Fixed())
+nonhomogeneous.root_freq=Codon(frequency1=GC(),frequency2=GC(),\
+                               frequency3=Fixed())
 @end example
+ at end cartouche
 
 builds a frequency set on codons, such that first and second sites
 follow independent GC frequency sets, third site follows a Fixed
@@ -1815,9 +1879,11 @@ with a probability @var{p}.
 It is possible to reduce the parameter space by putting extra
 constraints on parameters, using for instance
 
+ at cartouche
 @example
 model=TN93(kappa1=1.0, kappa2=kappa1, theta=0.5)
 @end example
+ at end cartouche
 
 In that particular case the resulting model is strictly equivalent to
 the HKY85 model. This syntax however allows to define a larger set of
@@ -1827,33 +1893,41 @@ As long as their range match, parameters of several objects (models,
 root frequencies, rates, etc) can be linked.
 
 For instance:
+ at cartouche
 @example
 model1 = T92(theta=GC.theta, kappa=3)
 model2 = T92(theta=0.39, kappa=T92.kappa_1)
 
 nonhomogeneous.root_freq=GC
 @end example
+ at end cartouche
 
 In the case of nonhomogeneous modelling, a specific syntax is available:
 
+ at cartouche
 @example
 nonhomogeneous.alias = @{list of aliases@}
 @end example
+ at end cartouche
 
 where each alias is described as `param1->param2'. The full name of the parameters have to be used, see for example:
 
+ at cartouche
 @example
 model1 = T92(theta=0.4, kappa=4)
 model2 = GTR(theta=0.4, a = 1.1, b=0.4, c=0.4, d=0.25, e=0.1)
 nonhomogeneous.alias=GTR.theta1->T92.theta1
 @end example
+ at end cartouche
 
 This option can be used to link parameters of the root frequencies if the model is non-stationary:
+ at cartouche
 @example
 model1=GTR(theta1=0.7)
 nonhomogeneous.root_freq=Full(init=balanced)
 nonhomogeneous.alias=Full.theta1->GTR.theta1_1
 @end example
+ at end cartouche
 
 Note that this option is only available with the 'general' nonhomogeneous substitution models and will be ignored if used with "one_per_branch".
 
@@ -1920,9 +1994,11 @@ a Mixture of a given discrete distributution and a 0 Dirac. @var{p} is
 the probability of this 0 Dirac.
 
 For example :
+ at cartouche
 @example
 Invariant(dist=Gaussian(n=4,2,0.5),p=0.1)
 @end example
+ at end cartouche
 builds a mixture of a gaussian distribution with 4 categories (and
 probability 0.9) and a 0 Dirac with probability 0.1. Overall, there
 are 5 categories. The parameters names are
@@ -1939,10 +2015,12 @@ distributions prefixed by @var{Mixture.i_} where @var{i} is the order
 of the distribution.
 
 For example:
+ at cartouche
 @example
 Mixture(probas=(0.3,0.7),dist1=Beta(n=5,alpha=2,beta=3),\
                        dist2=Gamma(n=10,alpha=9,beta=2)) 
 @end example
+ at end cartouche
 builds a mixture of a discrete beta distribution and of a discrete
 gamma distribution, with a total of 15 classes. The parameters names
 are @var{Mixture.theta1}, @var{Mixture.1_Beta.alpha},
@@ -2048,9 +2126,12 @@ parameters whose name has @command{theta} in it.
 A list of parameters on which the authorized values are limited to a
 given interval. 
 
+ at cartouche
 @example
-optimization.constrain_parameter = YN98.omega = [-inf;1.9[, *theta* = [0.1;0.7[, BrLen*=[0.01;inf]
- at end example 
+optimization.constrain_parameter = YN98.omega = [-inf;1.9[,\
+                       *theta* = [0.1;0.7[, BrLen*=[0.01;inf]
+ at end example
+ at end cartouche 
 
 @item optimization.tolerance = @{float>0@}
 The precision on the log-likelihood to reach.
@@ -2128,8 +2209,8 @@ This section now details the specific options for each program in the Bio++ Prog
 * bppconsense::                 Bio++ Consensus Trees.
 * bppreroot::                   Bio++ Serial Tree Re-rooting.
 * bppseqman::                   Bio++ Sequences Manipulation.
-* bppalnscore::                 Bio++ Alignment Scoring
-* bpppopstats::
+* bppalnscore::                 Bio++ Alignment Scoring.
+* bpppopstats::                 Bio++ Population Genetics Statistics.
 * bpptreedraw::                 Bio++ Tree Drawing.
 @end menu
 
@@ -2640,29 +2721,39 @@ Examples of use:
 @itemize @bullet
 
 @item Just change file format:
+ at cartouche
 @example
 sequence.manip=
 @end example
+ at end cartouche
 
 @item Change DNA to RNA:
+ at cartouche
 @example
 sequence.manip=Switch
 @end example
+ at end cartouche
 
 @item Unalign sequences, perform transcription and translate to proteins:
+ at cartouche
 @example
 sequence.manip=RemoveGaps,Transcript,Translate
 @end example
+ at end cartouche
 
 @item Change all unresolved characters to gaps and keep only positions with less than 5 gaps:
+ at cartouche
 @example
 sequence.manip=UnknownToGap,KeepComplete(maxGapAllowed=5)
 @end example
+ at end cartouche
 
 @item Keep only positions with less than 30% of gaps, and change them to unresolved characters:
+ at cartouche
 @example
 sequence.manip=KeepComplete(maxGapAllowed=30%),GapToUnknown
 @end example
+ at end cartouche
 
 @end itemize
 
@@ -2767,6 +2858,19 @@ This option is only recognized if @command{input.sequence.file.ingroup} was not 
 @item input.sequence.stop_codons_policy = Keep|RemoveIfLast|RemoveAll
 Tells what to do with positions containing at least one stop codon: keep them, remove them only if they are at the end of the alignment, or remove them all.
 
+ at item estimate.kappa = @{[boolean]@}
+Tells if the ratio of transitions / transversion should be estimated from the data and used for further analyses. If yes, kappa will be estimated by maximum likelihood using a model of (codon) sequence evolution.
+
+ at item estimate.ancestor = @{[boolean]@}
+If an outgroup sequence is present, it will be used to estimate the ancestral allele for each polymorphic position.
+A model of (codon) sequence evolution will be used with a marginal ancestral state reconstruction method.
+
+ at item estimate.sample_ingroup = @{[bollean]@}
+Tell if a random subset of ingroup sequences should be used to fit model (speeds up calculations in case of large data sets).
+
+ at item estimate.sample_ingroup.size = @{[integer]@}
+Number of ingroup sequences to sample.
+
 @item pop.stats = @{[string]@}
 The list of statistics to compute. The next section describes all available statistics.
 
@@ -2802,6 +2906,10 @@ then the total number of mutations is used in the calculation, instead of the nu
 For codon sequences only, obviously. Compute nucleotide diversity at synonymous and non-synonymous site,
 the number of synonymous and non-synonymous sites, as well as the weighted ratio (PiN / NbN) / (PiS / NbS). 
 
+ at item dN_dS
+For codon sequences only. Build the consensus sequence of both ingroup and outgroup alignments and fit a Yang and Nielsen model of codon sequence evolution with a maximum likelihood approach.
+Reports the estimated parameters omega (dN / dS ratio) and kappa (transitions / transversions ratio), as well as the divergence between the two sequences. 
+
 @item MKT
 Compute the MacDonald-Kreitman table, for codon sequences with outgroup.
 
@@ -2824,7 +2932,9 @@ Generate a table with codon-site specifics statistics, including:
 
 @item State in the first outgroup sequence, if any
 
- at item Mean number of synonymous positions
+ at item Ancestral state, if computed
+
+ at item Mean number of synonymous positions for polymorphism
 
 @item Whether the site is synonymous polymorphic
 
@@ -2834,6 +2944,12 @@ Generate a table with codon-site specifics statistics, including:
 
 @item Synonymous diversity (piS)
 
+ at item Mean number of synonymous positions for divergence
+
+ at item dN, if an outgroup is available
+
+ at item dS, if an outgroup is available
+
 @end itemize
 
 The @command{output.file} argument allows to specify the output file (mandatory).


=====================================
man/bppseqman.1
=====================================
--- a/man/bppseqman.1
+++ b/man/bppseqman.1
@@ -14,7 +14,7 @@ All UNIX flavors
 
 .SH DESCRIPTION
 
-bppseqman performs several in silico molecular biology operations like transcription, translation or traduction. It also allows conversion between various file format, and bioinformatics tasks like removing of gaps, unknow characters or stop codons.
+bppseqman performs several in silico molecular biology operations like transcription, translation or traduction. It also allows conversion between various file formats, and bioinformatics tasks like removing of gaps, unknown characters or stop codons.
 
 .SH OPTIONS
 



View it on GitLab: https://salsa.debian.org/med-team/bppsuite/compare/9e3c9eb8d619651d033956fd53b3c159061a514c...d2675e67e052a46b5ed3161798d5d84b9cd4b73c

---
View it on GitLab: https://salsa.debian.org/med-team/bppsuite/compare/9e3c9eb8d619651d033956fd53b3c159061a514c...d2675e67e052a46b5ed3161798d5d84b9cd4b73c
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/debian-med-commit/attachments/20180408/1e3bd7f9/attachment-0001.html>


More information about the debian-med-commit mailing list