Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: unblock
Please unblock package fasttree The patch fixes bug #781259 which rendered the package unusable. Debdiff is attached. unblock fasttree/2.1.7-2 -- System Information: Debian Release: 7.8 APT prefers stable APT policy: (500, 'stable') Architecture: amd64 (x86_64) Kernel: Linux 3.2.0-4-amd64 (SMP w/1 CPU core) Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash
diff -Nru fasttree-2.1.7/debian/changelog fasttree-2.1.7/debian/changelog --- fasttree-2.1.7/debian/changelog 2013-05-06 20:40:37.000000000 +0200 +++ fasttree-2.1.7/debian/changelog 2015-03-27 11:53:35.000000000 +0100 @@ -1,3 +1,14 @@ +fasttree (2.1.7-2) unstable; urgency=low + + * Team upload + * Modify/add patches to use double precision and increase branch + length precision. This is absolutely crucial to prevent flawed datas + analysis as described e.g. in + http://darlinglab.org/blog/2015/03/23/not-so-fast-fasttree.html + Closes: #781259 + + -- Roland Fehrenbacher <r...@q-leap.de> Tue, 24 Mar 2015 18:37:23 +0000 + fasttree (2.1.7-1) unstable; urgency=low * New upstream version diff -Nru fasttree-2.1.7/debian/patches/increase-branch-length-precision.patch fasttree-2.1.7/debian/patches/increase-branch-length-precision.patch --- fasttree-2.1.7/debian/patches/increase-branch-length-precision.patch 1970-01-01 01:00:00.000000000 +0100 +++ fasttree-2.1.7/debian/patches/increase-branch-length-precision.patch 2015-03-26 17:22:50.000000000 +0100 @@ -0,0 +1,65 @@ +From 66d0f73b44065272ddefc71870156d35aad4df64 Mon Sep 17 00:00:00 2001 +From: Roland Fehrenbacher <r...@q-leap.de> +Date: Tue, 24 Mar 2015 18:21:03 +0000 +Subject: [PATCH] Use double precision and increase branch length precision + +This is absolutely crucial to prevent flawed data analysis as +described e.g. in +http://darlinglab.org/blog/2015/03/23/not-so-fast-fasttree.html +--- + fasttree.c | 19 ++++++++++++++----- + 1 file changed, 14 insertions(+), 5 deletions(-) + +diff --git a/fasttree.c b/fasttree.c +index 12862e2..a8426ab 100644 +--- a/fasttree.c ++++ b/fasttree.c +@@ -1,4 +1,10 @@ + /* ++ * 2014/12/11 - Modifications to raise the precision of branch length ++ * estimation. This should accompany setting USE_DOUBLE. ++ * Search tolerances have been decreased to 1e-9 from ++ * their original 1e-4. ++ * ++ * + * FastTree -- inferring approximately-maximum-likelihood trees for large + * multiple sequence alignments. + * +@@ -852,10 +858,13 @@ const double Log2 = 0.693147180559945; + were increased to prevent numerical problems in rare cases. + If compiled with -DUSE_DOUBLE then these minimums could be decreased. + */ +-const double MLMinBranchLengthTolerance = 1.0e-4; /* absolute tolerance for optimizing branch lengths */ ++const double MLMinBranchLengthTolerance = 1.0e-9; /* absolute tolerance for optimizing branch lengths */ + const double MLFTolBranchLength = 0.001; /* fractional tolerance for optimizing branch lengths */ +-const double MLMinBranchLength = 5.0e-4; +-const double MLMinRelBranchLength = 2.5e-4; /* minimum of rate * length */ ++const double MLMinBranchLength = 5.0e-9; ++const double MLMinRelBranchLength = 2.5e-9; /* minimum of rate * length */ ++ ++const double fPostTotalTolerance = 1.0e-20; /* mzd 2015/01/06, added as original assertion is violated when ++ MLMMinBranchLengthTolerance is decreased to 1e-9. */ + + int mlAccuracy = 1; /* Rounds of optimization of branch lengths; 1 means do 2nd round only if close */ + double closeLogLkLimit = 5.0; /* If partial optimization of an NNI looks like it would decrease the log likelihood +@@ -4962,7 +4971,7 @@ profile_t *PosteriorProfile(profile_t *p1, profile_t *p2, + double fPostTot = 0; + for (j = 0; j < 4; j++) + fPostTot += fPost[j]; +- assert(fPostTot > 1e-10); ++ assert(fPostTot > fPostTotalTolerance); + double fPostInv = 1.0/fPostTot; + #if 0 /* SSE3 is slower */ + vector_multiply_by(fPost, fPostInv, 4); +@@ -5025,7 +5034,7 @@ profile_t *PosteriorProfile(profile_t *p1, profile_t *p2, + fPost[j] = value >= 0 ? value : 0; + } + double fPostTot = vector_sum(fPost, 20); +- assert(fPostTot > 1e-10); ++ assert(fPostTot > fPostTotalTolerance); + double fPostInv = 1.0/fPostTot; + vector_multiply_by(/*IN/OUT*/fPost, fPostInv, 20); + int ch = -1; /* the dominant character, if any */ +-- +2.1.4 + diff -Nru fasttree-2.1.7/debian/patches/Makefile.patch fasttree-2.1.7/debian/patches/Makefile.patch --- fasttree-2.1.7/debian/patches/Makefile.patch 2012-06-15 12:00:58.000000000 +0200 +++ fasttree-2.1.7/debian/patches/Makefile.patch 2015-03-26 17:22:50.000000000 +0100 @@ -1,18 +1,34 @@ -Description: As the original source is just a c-file, the Makefile - needs to be created. -Index: fasttree-2.1.0.c/Makefile -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ fasttree-2.1.0.c/Makefile 2011-03-02 19:07:11.000000000 +0100 -@@ -0,0 +1,11 @@ +From 183c0d979cae6199e89ad11df1956e7f8dce13b0 Mon Sep 17 00:00:00 2001 +From: Roland Fehrenbacher <r...@q-leap.de> +Date: Tue, 24 Mar 2015 18:25:21 +0000 +Subject: [PATCH] Create a Makefile + +Description: +As the original source is just a c-file, a Makefile needs to be +created. Also use double precision to prevent analysis flaws. +--- + Makefile | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + create mode 100644 Makefile + +diff --git a/Makefile b/Makefile +new file mode 100644 +index 0000000..599e62b +--- /dev/null ++++ b/Makefile +@@ -0,0 +1,12 @@ ++ADD_CPPFLAGS = -DUSE_DOUBLE + +all: fasttree fasttreeMP + +fasttree: fasttree.c -+ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ $< -lm ++ $(CC) $(CFLAGS) $(CPPFLAGS) $(ADD_CPPFLAGS) $(LDFLAGS) -o $@ $< -lm + +fasttreeMP: fasttree.c -+ $(CC) -DOPENMP -fopenmp $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ $< -lm ++ $(CC) -DOPENMP -fopenmp $(CFLAGS) $(CPPFLAGS) $(ADD_CPPFLAGS) $(LDFLAGS) -o $@ $< -lm + +distclean clean: + rm -f fasttree +-- +2.1.4 + diff -Nru fasttree-2.1.7/debian/patches/series fasttree-2.1.7/debian/patches/series --- fasttree-2.1.7/debian/patches/series 2012-04-02 10:15:17.000000000 +0200 +++ fasttree-2.1.7/debian/patches/series 2015-03-26 17:22:50.000000000 +0100 @@ -1 +1,2 @@ Makefile.patch +increase-branch-length-precision.patch