Skip to content
Commits on Source (4)
......@@ -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")
......
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
......
......@@ -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
......
......@@ -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
......
......@@ -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
......
......@@ -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
......
......@@ -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
......
......@@ -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
......
......@@ -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
......
......@@ -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
......
......@@ -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
......
......@@ -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
......@@ -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)
......
......@@ -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")
......
......@@ -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";
}
}
}
......
......@@ -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;
......
......@@ -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);
......
%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@univ-montp2.fr> 2.4.0-1
* Tue Jun 06 2017 Julien Dutheil <julien.dutheil@univ-montp2.fr> 2.3.1-1
* Wed May 10 2017 Julien Dutheil <julien.dutheil@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@univ-montp2.fr> 2.2.0-1
* Mon Sep 29 2014 Julien Dutheil <julien.dutheil@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@univ-montp2.fr> 0.5.0-1
* Wed Jun 10 2009 Julien Dutheil <jdutheil@birc.au.dk> 0.4.0-1
* Thu Dec 11 2008 Julien Dutheil <jdutheil@birc.au.dk> 0.3.1-1
* Thu Sep 23 2008 Julien Dutheil <jdutheil@birc.au.dk> 0.3.0-1
* Tue Sep 23 2008 Julien Dutheil <jdutheil@birc.au.dk> 0.3.0-1
- Initial spec file.
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@univ-montp2.fr> Sun, 08 Apr 2018 08:46:29 +0200
bppsuite (2.3.2-1) unstable; urgency=medium
[ Julien Dutheil ]
......
......@@ -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
......