summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Lecher <jlec@gentoo.org>2012-11-10 10:58:55 +0000
committerJustin Lecher <jlec@gentoo.org>2012-11-10 10:58:55 +0000
commit59410ee4ddc5b1b30955a2ac4f1367618dfd49e7 (patch)
treeb9f6e52d5c441970f0bb1b8e6197b285e2b8feed /sci-biology/cufflinks
parentCorrection to ChangeLog, 4.1.0 replaces 4.1.2 (diff)
downloadgentoo-2-59410ee4ddc5b1b30955a2ac4f1367618dfd49e7.tar.gz
gentoo-2-59410ee4ddc5b1b30955a2ac4f1367618dfd49e7.tar.bz2
gentoo-2-59410ee4ddc5b1b30955a2ac4f1367618dfd49e7.zip
sci-biology/cufflinks: Drop hard version dep for boost, #440630, and fix compatibility with version 1.5*; Fix gcc-4.7 problems
(Portage version: 2.2.0_alpha142/cvs/Linux x86_64, signed Manifest commit with key 70EB7916)
Diffstat (limited to 'sci-biology/cufflinks')
-rw-r--r--sci-biology/cufflinks/ChangeLog8
-rw-r--r--sci-biology/cufflinks/cufflinks-1.3.0.ebuild39
-rw-r--r--sci-biology/cufflinks/files/cufflinks-1.3.0-autotools.patch36
-rw-r--r--sci-biology/cufflinks/files/cufflinks-1.3.0-boost.patch1320
-rw-r--r--sci-biology/cufflinks/files/cufflinks-1.3.0-gcc-4.7.patch20
5 files changed, 1404 insertions, 19 deletions
diff --git a/sci-biology/cufflinks/ChangeLog b/sci-biology/cufflinks/ChangeLog
index f38eb484191f..70a444eb3eb2 100644
--- a/sci-biology/cufflinks/ChangeLog
+++ b/sci-biology/cufflinks/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for sci-biology/cufflinks
# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sci-biology/cufflinks/ChangeLog,v 1.2 2012/10/31 18:46:40 flameeyes Exp $
+# $Header: /var/cvsroot/gentoo-x86/sci-biology/cufflinks/ChangeLog,v 1.3 2012/11/10 10:58:55 jlec Exp $
+
+ 10 Nov 2012; Justin Lecher <jlec@gentoo.org> cufflinks-1.3.0.ebuild,
+ +files/cufflinks-1.3.0-autotools.patch, +files/cufflinks-1.3.0-boost.patch,
+ +files/cufflinks-1.3.0-gcc-4.7.patch:
+ Drop hard version dep for boost, #440630, and fix compatibility with version
+ 1.5*; Fix gcc-4.7 problems
31 Oct 2012; Diego E. Pettenò <flameeyes@gentoo.org> cufflinks-1.3.0.ebuild:
Avoid using a slot depend since now boost is unslotted; remove pointless
diff --git a/sci-biology/cufflinks/cufflinks-1.3.0.ebuild b/sci-biology/cufflinks/cufflinks-1.3.0.ebuild
index 9fafa4955cab..49a29ded8165 100644
--- a/sci-biology/cufflinks/cufflinks-1.3.0.ebuild
+++ b/sci-biology/cufflinks/cufflinks-1.3.0.ebuild
@@ -1,36 +1,39 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sci-biology/cufflinks/cufflinks-1.3.0.ebuild,v 1.2 2012/10/31 18:46:40 flameeyes Exp $
+# $Header: /var/cvsroot/gentoo-x86/sci-biology/cufflinks/cufflinks-1.3.0.ebuild,v 1.3 2012/11/10 10:58:55 jlec Exp $
EAPI=4
-inherit autotools
+AUTOTOOLS_AUTORECONF=yes
+
+inherit autotools-utils
DESCRIPTION="Transcript assembly, differential expression, and differential regulation for RNA-Seq"
HOMEPAGE="http://cufflinks.cbcb.umd.edu/"
SRC_URI="http://cufflinks.cbcb.umd.edu/downloads/${P}.tar.gz"
-LICENSE="Artistic"
SLOT="0"
-IUSE=""
+LICENSE="Artistic"
+IUSE="debug"
KEYWORDS="~amd64 ~x86"
-DEPEND="sci-biology/samtools
- =dev-libs/boost-1.46*"
+DEPEND="
+ sci-biology/samtools
+ dev-libs/boost"
RDEPEND="${DEPEND}"
-MAKEOPTS="${MAKEOPTS} -j1"
-
-src_prepare() {
- eautoreconf
-}
+PATCHES=(
+ "${FILESDIR}"/${P}-autotools.patch
+ "${FILESDIR}"/${P}-boost.patch
+ "${FILESDIR}"/${P}-gcc-4.7.patch
+ )
src_configure() {
- econf \
- --with-boost-libdir="${EPREFIX}/usr/$(get_libdir)/boost-1_46" || die
-}
-
-src_install() {
- emake DESTDIR="${D}" install || die
- dodoc README AUTHORS
+ local myeconfargs=(
+ --disable-optim
+ --with-boost-libdir="${EPREFIX}/usr/$(get_libdir)/"
+ --with-bam="${EPREFIX}/usr/"
+ $(use_enable debug)
+ )
+ autotools-utils_src_configure
}
diff --git a/sci-biology/cufflinks/files/cufflinks-1.3.0-autotools.patch b/sci-biology/cufflinks/files/cufflinks-1.3.0-autotools.patch
new file mode 100644
index 000000000000..72c643900ec4
--- /dev/null
+++ b/sci-biology/cufflinks/files/cufflinks-1.3.0-autotools.patch
@@ -0,0 +1,36 @@
+ configure.ac | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index b8a0b9b..b0a4635 100755
+--- a/configure.ac
++++ b/configure.ac
+@@ -27,6 +27,7 @@ AC_PROG_AWK
+ AC_PROG_CXX
+ AC_PROG_CC
+ AC_PROG_MAKE_SET
++AM_PROG_AR
+ AC_PROG_RANLIB
+ AC_PROG_INSTALL
+ AM_PATH_PYTHON([2.4])
+@@ -54,7 +55,7 @@ AC_CANONICAL_HOST
+
+ # set CFLAGS and CXXFLAGS
+ user_CFLAGS=${CFLAGS}
+-generic_CFLAGS="-Wall -Wno-strict-aliasing -g -gdwarf-2 -Wuninitialized"
++generic_CFLAGS="-Wall -Wno-strict-aliasing -Wuninitialized"
+ ext_CFLAGS=""
+ debug_CFLAGS=""
+ #echo "${host_cpu}-${host_os}"
+@@ -99,9 +100,9 @@ AC_ARG_ENABLE(profiling, [ --enable-profiling enable profiling with
+ [ext_LDFLAGS="-lprofiler -ltcmalloc"], [])
+
+ CFLAGS="${generic_CFLAGS} ${ext_CFLAGS} ${user_CFLAGS} ${debug_CFLAGS} ${OPENMP_CFLAGS}"
+-CXXFLAGS="$CFLAGS"
++CXXFLAGS="$CXXFLAGS"
+ CXXFLAGS="$CXXFLAGS $BOOST_CPPFLAGS $BAM_CPPFLAGS"
+-LDFLAGS="$ext_LDFLAGS"
++LDFLAGS="$LDFLAGS $ext_LDFLAGS"
+
+ # Checks for structures/functions that can be used to determine system memory
+ AC_CHECK_MEMBERS([struct sysinfo.totalram], [], [], [#include <sys/sysinfo.h>])
diff --git a/sci-biology/cufflinks/files/cufflinks-1.3.0-boost.patch b/sci-biology/cufflinks/files/cufflinks-1.3.0-boost.patch
new file mode 100644
index 000000000000..d45391bf4f3a
--- /dev/null
+++ b/sci-biology/cufflinks/files/cufflinks-1.3.0-boost.patch
@@ -0,0 +1,1320 @@
+ ax_boost_thread.m4 | 6 +++---
+ src/abundances.cpp | 56 +++++++++++++++++++++++++-------------------------
+ src/biascorrection.cpp | 2 +-
+ src/bundles.cpp | 10 ++++-----
+ src/bundles.h | 10 ++++-----
+ src/common.h | 4 ++--
+ src/compress_gtf.cpp | 12 +++++------
+ src/cuffdiff.cpp | 30 +++++++++++++--------------
+ src/cufflinks.cpp | 34 +++++++++++++++---------------
+ src/differential.cpp | 38 +++++++++++++++++-----------------
+ src/filters.cpp | 8 ++++----
+ src/genes.h | 6 +++---
+ src/gtf_to_sam.cpp | 8 ++++----
+ src/hits.cpp | 4 ++--
+ src/replicates.cpp | 6 +++---
+ src/replicates.h | 18 ++++++++--------
+ src/scaffolds.cpp | 28 ++++++++++++-------------
+ src/scaffolds.h | 2 +-
+ 18 files changed, 141 insertions(+), 141 deletions(-)
+
+diff --git a/ax_boost_thread.m4 b/ax_boost_thread.m4
+index d1d42f6..6f99f1b 100644
+--- a/ax_boost_thread.m4
++++ b/ax_boost_thread.m4
+@@ -105,20 +105,20 @@ AC_DEFUN([AX_BOOST_THREAD],
+ for libextension in `ls $BOOSTLIBDIR/libboost_thread*.so* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_thread.*\)\.so.*$;\1;'` `ls $BOOSTLIBDIR/libboost_thread*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^lib\(boost_thread.*\)\.a*$;\1;'`; do
+ ax_lib=${libextension}
+ AC_CHECK_LIB($ax_lib, exit,
+- [BOOST_THREAD_LIB="-l$ax_lib"; AC_SUBST(BOOST_THREAD_LIB) link_thread="yes"; break],
++ [BOOST_THREAD_LIB="-l$ax_lib -lboost_system"; AC_SUBST(BOOST_THREAD_LIB) link_thread="yes"; break],
+ [link_thread="no"])
+ done
+ if test "x$link_thread" != "xyes"; then
+ for libextension in `ls $BOOSTLIBDIR/boost_thread*.dll* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^\(boost_thread.*\)\.dll.*$;\1;'` `ls $BOOSTLIBDIR/boost_thread*.a* 2>/dev/null | sed 's,.*/,,' | sed -e 's;^\(boost_thread.*\)\.a*$;\1;'` ; do
+ ax_lib=${libextension}
+ AC_CHECK_LIB($ax_lib, exit,
+- [BOOST_THREAD_LIB="-l$ax_lib"; AC_SUBST(BOOST_THREAD_LIB) link_thread="yes"; break],
++ [BOOST_THREAD_LIB="-l$ax_lib -lboost_system"; AC_SUBST(BOOST_THREAD_LIB) link_thread="yes"; break],
+ [link_thread="no"])
+ done
+ fi
+
+ else
+- BOOST_THREAD_LIB="$ax_boost_user_thread_lib";
++ BOOST_THREAD_LIB="$ax_boost_user_thread_lib -lboost_system";
+ AC_SUBST(BOOST_THREAD_LIB)
+ link_thread="yes";
+
+diff --git a/src/abundances.cpp b/src/abundances.cpp
+index d8f81d0..6e717dc 100644
+--- a/src/abundances.cpp
++++ b/src/abundances.cpp
+@@ -140,7 +140,7 @@ AbundanceStatus AbundanceGroup::status() const
+ {
+ bool has_lowdata_member = false;
+ bool has_ok_member = false;
+- foreach(shared_ptr<Abundance> ab, _abundances)
++ for_each(shared_ptr<Abundance> ab, _abundances)
+ {
+ if (ab->status() == NUMERIC_FAIL)
+ {
+@@ -205,7 +205,7 @@ void TranscriptAbundance::FPKM_variance(double v)
+
+ bool AbundanceGroup::has_member_with_status(AbundanceStatus member_status)
+ {
+- foreach(shared_ptr<Abundance> ab, _abundances)
++ for_each(shared_ptr<Abundance> ab, _abundances)
+ {
+ if (ab->status() == member_status)
+ {
+@@ -219,7 +219,7 @@ double AbundanceGroup::num_fragments() const
+ {
+ double num_f = 0;
+
+- foreach(shared_ptr<Abundance> ab, _abundances)
++ for_each(shared_ptr<Abundance> ab, _abundances)
+ {
+ num_f += ab->num_fragments();
+ }
+@@ -231,7 +231,7 @@ double AbundanceGroup::mass_fraction() const
+ {
+ double mass = 0;
+
+- foreach(shared_ptr<Abundance> ab, _abundances)
++ for_each(shared_ptr<Abundance> ab, _abundances)
+ {
+ mass += ab->mass_fraction();
+ }
+@@ -242,7 +242,7 @@ double AbundanceGroup::mass_variance() const
+ {
+ double mass_var = 0;
+
+- foreach(shared_ptr<Abundance> ab, _abundances)
++ for_each(shared_ptr<Abundance> ab, _abundances)
+ {
+ mass_var += ab->mass_variance();
+ }
+@@ -253,7 +253,7 @@ double AbundanceGroup::FPKM() const
+ {
+ double fpkm = 0;
+
+- foreach(shared_ptr<Abundance> ab, _abundances)
++ for_each(shared_ptr<Abundance> ab, _abundances)
+ {
+ fpkm += ab->FPKM();
+ }
+@@ -265,7 +265,7 @@ double AbundanceGroup::gamma() const
+ {
+ double gamma = 0;
+
+- foreach(shared_ptr<Abundance> ab, _abundances)
++ for_each(shared_ptr<Abundance> ab, _abundances)
+ {
+ gamma += ab->gamma();
+ }
+@@ -281,7 +281,7 @@ void AbundanceGroup::filter_group(const vector<bool>& to_keep,
+ assert (to_keep.size() == _abundances.size());
+
+ size_t num_kept = 0;
+- foreach(bool keeper, to_keep)
++ for_each(bool keeper, to_keep)
+ {
+ num_kept += keeper;
+ }
+@@ -331,7 +331,7 @@ void AbundanceGroup::filter_group(const vector<bool>& to_keep,
+ void AbundanceGroup::get_transfrags(vector<shared_ptr<Abundance> >& transfrags) const
+ {
+ transfrags.clear();
+- foreach(shared_ptr<Abundance> pA, _abundances)
++ for_each(shared_ptr<Abundance> pA, _abundances)
+ {
+ shared_ptr<Scaffold> pS = pA->transfrag();
+ if (pS)
+@@ -345,7 +345,7 @@ set<string> AbundanceGroup::gene_id() const
+ {
+ set<string> s;
+
+- foreach (shared_ptr<Abundance> pA, _abundances)
++ for_each (shared_ptr<Abundance> pA, _abundances)
+ {
+ set<string> sub = pA->gene_id();
+ s.insert(sub.begin(), sub.end());
+@@ -358,7 +358,7 @@ set<string> AbundanceGroup::gene_name() const
+ {
+ set<string> s;
+
+- foreach (shared_ptr<Abundance> pA, _abundances)
++ for_each (shared_ptr<Abundance> pA, _abundances)
+ {
+ set<string> sub = pA->gene_name();
+ s.insert(sub.begin(), sub.end());
+@@ -372,7 +372,7 @@ set<string> AbundanceGroup::tss_id() const
+ {
+ set<string> s;
+
+- foreach (shared_ptr<Abundance> pA, _abundances)
++ for_each (shared_ptr<Abundance> pA, _abundances)
+ {
+ set<string> sub = pA->tss_id();
+ s.insert(sub.begin(), sub.end());
+@@ -385,7 +385,7 @@ set<string> AbundanceGroup::protein_id() const
+ {
+ set<string> s;
+
+- foreach (shared_ptr<Abundance> pA, _abundances)
++ for_each (shared_ptr<Abundance> pA, _abundances)
+ {
+ set<string> sub = pA->protein_id();
+ s.insert(sub.begin(), sub.end());
+@@ -398,7 +398,7 @@ const string& AbundanceGroup::locus_tag() const
+ {
+ static string default_locus_tag = "-";
+ const string* pLast = NULL;
+- foreach (shared_ptr<Abundance> pA, _abundances)
++ for_each (shared_ptr<Abundance> pA, _abundances)
+ {
+ if (pLast)
+ {
+@@ -422,7 +422,7 @@ const string& AbundanceGroup::reference_tag() const
+ {
+ static string default_reference_tag = "-";
+ const string* pLast = NULL;
+- foreach (shared_ptr<Abundance> pA, _abundances)
++ for_each (shared_ptr<Abundance> pA, _abundances)
+ {
+ if (pLast)
+ {
+@@ -448,7 +448,7 @@ double AbundanceGroup::effective_length() const
+ double group_fpkm = FPKM();
+ if (group_fpkm == 0)
+ return 0;
+- foreach (shared_ptr<Abundance> ab, _abundances)
++ for_each (shared_ptr<Abundance> ab, _abundances)
+ {
+ eff_len += (ab->effective_length() * (ab->FPKM() / group_fpkm));
+ }
+@@ -1216,7 +1216,7 @@ void AbundanceGroup::estimate_count_covariance()
+ {
+ // if the entire group is unstable, then set LOWDATA on all members of
+ // it to reduce false positives in differential expression analysis.
+- foreach(shared_ptr<Abundance> ab, _abundances)
++ for_each(shared_ptr<Abundance> ab, _abundances)
+ {
+ ab->status(NUMERIC_LOW_DATA);
+ }
+@@ -1468,7 +1468,7 @@ void AbundanceGroup::calculate_conf_intervals()
+ double sum_transfrag_FPKM_hi = 0;
+ double max_fpkm = 0.0;
+ //double min_fpkm = 1e100;
+- foreach(shared_ptr<Abundance> pA, _abundances)
++ for_each(shared_ptr<Abundance> pA, _abundances)
+ {
+ double FPKM_hi;
+ double FPKM_lo;
+@@ -1586,7 +1586,7 @@ void AbundanceGroup::calculate_conf_intervals()
+ // double sum_transfrag_FPKM_hi = 0;
+ // double max_fpkm = 0.0;
+ // //double min_fpkm = 1e100;
+-// foreach(shared_ptr<Abundance> pA, _abundances)
++// for_each(shared_ptr<Abundance> pA, _abundances)
+ // {
+ // double FPKM_hi;
+ // double FPKM_lo;
+@@ -1732,7 +1732,7 @@ bool AbundanceGroup::calculate_gammas(const vector<MateHit>& nr_alignments,
+ if (mapped_transcripts.empty())
+ {
+ //gammas = vector<double>(transfrags.size(), 0.0);
+- foreach (shared_ptr<Abundance> ab, _abundances)
++ for_each (shared_ptr<Abundance> ab, _abundances)
+ {
+ ab->gamma(0);
+ }
+@@ -1783,7 +1783,7 @@ bool AbundanceGroup::calculate_gammas(const vector<MateHit>& nr_alignments,
+ if (filtered_transcripts.empty())
+ {
+ //gammas = vector<double>(transfrags.size(), 0.0);
+- foreach (shared_ptr<Abundance> ab, _abundances)
++ for_each (shared_ptr<Abundance> ab, _abundances)
+ {
+ ab->gamma(0);
+ }
+@@ -2117,7 +2117,7 @@ void AbundanceGroup::calculate_kappas()
+ double S_FPKM = 0.0;
+ double Z_kappa = 0.0;
+ double X_S = 0.0;
+- foreach (shared_ptr<Abundance> pA, _abundances)
++ for_each (shared_ptr<Abundance> pA, _abundances)
+ {
+ if (pA->effective_length() > 0)
+ {
+@@ -2128,7 +2128,7 @@ void AbundanceGroup::calculate_kappas()
+ }
+
+ //fprintf (stderr, "*********\n");
+- foreach (shared_ptr<Abundance> pA, _abundances)
++ for_each (shared_ptr<Abundance> pA, _abundances)
+ {
+ if (S_FPKM > 0)
+ {
+@@ -2201,7 +2201,7 @@ void get_alignments_from_scaffolds(const vector<shared_ptr<Abundance> >& abundan
+ {
+ set<const MateHit*> hits_in_gene_set;
+
+- foreach(shared_ptr<Abundance> pA, abundances)
++ for_each(shared_ptr<Abundance> pA, abundances)
+ {
+ shared_ptr<Scaffold> pS = pA->transfrag();
+ assert (pS);
+@@ -2787,7 +2787,7 @@ AbundanceStatus empirical_mean_replicate_gamma_mle(const vector<shared_ptr<Abund
+ gamma_covariance = ublas::zero_matrix<double>(N,N);
+ ublas::vector<double> expected_mle_gamma = ublas::zero_vector<double>(N);
+ //
+- foreach(ublas::vector<double>& mle, mle_gammas)
++ for_each(ublas::vector<double>& mle, mle_gammas)
+ {
+ expected_mle_gamma += mle;
+ }
+@@ -3122,7 +3122,7 @@ AbundanceStatus bootstrap_gamma_mle(const vector<shared_ptr<Abundance> >& transc
+ gamma_covariance = ublas::zero_matrix<double>(N,N);
+ ublas::vector<double> expected_mle_gamma = ublas::zero_vector<double>(N);
+
+- foreach(ublas::vector<double>& mle, mle_gammas)
++ for_each(ublas::vector<double>& mle, mle_gammas)
+ {
+ //cerr << "MLE # "<< MLENUM++ << endl;
+ //cerr << mle << endl;
+@@ -3586,7 +3586,7 @@ AbundanceStatus gamma_mle(const vector<shared_ptr<Abundance> >& transcripts,
+
+ double round_err = 0.0;
+ double num_good = 0;
+- foreach (double& g, gammas)
++ for_each (double& g, gammas)
+ {
+ if (g < min_isoform_fraction)
+ {
+@@ -3598,7 +3598,7 @@ AbundanceStatus gamma_mle(const vector<shared_ptr<Abundance> >& transcripts,
+ num_good += 1;
+ }
+ }
+- foreach (double& g, gammas)
++ for_each (double& g, gammas)
+ {
+ if (g != 0)
+ {
+diff --git a/src/biascorrection.cpp b/src/biascorrection.cpp
+index 0d49851..55884f4 100644
+--- a/src/biascorrection.cpp
++++ b/src/biascorrection.cpp
+@@ -207,7 +207,7 @@ void BiasLearner::preProcessTranscript(const Scaffold& transcript)
+ vector<double> startHist(transcript.length()+1, 0.0); // +1 catches overhangs
+ vector<double> endHist(transcript.length()+1, 0.0);
+
+- foreach (const MateHit* hit_p, transcript.mate_hits())
++ for_each (const MateHit* hit_p, transcript.mate_hits())
+ {
+ const MateHit& hit = *hit_p;
+ if (!hit.left_alignment() && !hit.right_alignment())
+diff --git a/src/bundles.cpp b/src/bundles.cpp
+index ead07f2..a392514 100644
+--- a/src/bundles.cpp
++++ b/src/bundles.cpp
+@@ -228,7 +228,7 @@ void load_ref_rnas(FILE* ref_mRNA_file,
+ }
+ }
+
+- foreach (shared_ptr<Scaffold> s, ref_mRNAs)
++ for_each (shared_ptr<Scaffold> s, ref_mRNAs)
+ {
+ assert (s);
+ }
+@@ -418,7 +418,7 @@ void HitBundle::finalize_open_mates()
+
+ for(OpenMates::iterator itr = _open_mates.begin(); itr != _open_mates.end(); ++itr)
+ {
+- foreach (MateHit& hit, itr->second)
++ for_each (MateHit& hit, itr->second)
+ {
+ delete hit.left_alignment();
+ delete hit.right_alignment();
+@@ -438,7 +438,7 @@ void HitBundle::remove_hitless_scaffolds()
+ void HitBundle::remove_unmapped_hits()
+ {
+
+- foreach (MateHit& hit, _hits)
++ for_each (MateHit& hit, _hits)
+ {
+ if (unmapped_hit(hit))
+ {
+@@ -586,7 +586,7 @@ void HitBundle::finalize(bool is_combined)
+ }
+ else
+ {
+- foreach (MateHit& hit, _hits)
++ for_each (MateHit& hit, _hits)
+ {
+ hit.incr_collapse_mass(hit.common_scale_mass());
+ }
+@@ -1316,7 +1316,7 @@ void identify_bad_splices(const HitBundle& bundle,
+ ins_itr = bad_splice_ops.insert(make_pair(ref_id, vector<AugmentedCuffOp>()));
+ vector<AugmentedCuffOp>& bad_introns = ins_itr.first->second;
+
+- foreach (const MateHit& hit, bundle.hits())
++ for_each (const MateHit& hit, bundle.hits())
+ {
+ if (hit.left_alignment())
+ {
+diff --git a/src/bundles.h b/src/bundles.h
+index 15f51ee..aec725e 100644
+--- a/src/bundles.h
++++ b/src/bundles.h
+@@ -57,7 +57,7 @@ public:
+ ~HitBundle()
+ {
+ vector<shared_ptr<Scaffold> >& bundle_ref_scaffs = ref_scaffolds();
+- foreach(shared_ptr<Scaffold>& ref_scaff, bundle_ref_scaffs)
++ for_each(shared_ptr<Scaffold>& ref_scaff, bundle_ref_scaffs)
+ {
+ // This bundle and the factory that actually owns the ref_mRNAs
+ // are the only objects that should have access to these scaffolds
+@@ -73,7 +73,7 @@ public:
+ }
+ }
+
+- foreach (MateHit& hit, _hits)
++ for_each (MateHit& hit, _hits)
+ {
+ delete hit.left_alignment();
+ delete hit.right_alignment();
+@@ -81,7 +81,7 @@ public:
+
+ for(OpenMates::iterator itr = _open_mates.begin(); itr != _open_mates.end(); ++itr)
+ {
+- foreach (MateHit& hit, itr->second)
++ for_each (MateHit& hit, itr->second)
+ {
+ delete hit.left_alignment();
+ delete hit.right_alignment();
+@@ -113,7 +113,7 @@ public:
+ _hits.clear();
+ _non_redundant.clear();
+ vector<shared_ptr<Scaffold> >& bundle_ref_scaffs = ref_scaffolds();
+- foreach(shared_ptr<Scaffold>& ref_scaff, bundle_ref_scaffs)
++ for_each(shared_ptr<Scaffold>& ref_scaff, bundle_ref_scaffs)
+ {
+ if (ref_scaff.use_count() <= 3)
+ {
+@@ -250,7 +250,7 @@ public:
+ next_ref_scaff = ref_mRNAs.begin();
+ next_mask_scaff = mask_gtf_recs.begin();
+
+- foreach(shared_ptr<Scaffold> ref_scaff, ref_mRNAs)
++ for_each(shared_ptr<Scaffold> ref_scaff, ref_mRNAs)
+ {
+ ref_scaff->clear_hits();
+ }
+diff --git a/src/common.h b/src/common.h
+index b715e9c..1ed7d77 100644
+--- a/src/common.h
++++ b/src/common.h
+@@ -22,8 +22,8 @@
+ using boost::math::normal;
+
+ #include <boost/foreach.hpp>
+-#define foreach BOOST_FOREACH
+-#define reverse_foreach BOOST_REVERSE_FOREACH
++#define for_each BOOST_FOREACH
++#define reverse_for_each BOOST_REVERSE_FOREACH
+
+ #include <boost/thread.hpp>
+ #include <boost/shared_ptr.hpp>
+diff --git a/src/compress_gtf.cpp b/src/compress_gtf.cpp
+index a2cd10a..a3796fd 100644
+--- a/src/compress_gtf.cpp
++++ b/src/compress_gtf.cpp
+@@ -159,7 +159,7 @@ void compress_genes(FILE* ftranscripts,
+ vector<shared_ptr<Scaffold> >& gene = grouped_scaffolds[i];
+ vector<Scaffold> gene_scaffs;
+ string gene_id;
+- foreach (shared_ptr<Scaffold> s, gene)
++ for_each (shared_ptr<Scaffold> s, gene)
+ {
+ if (gene_id == "")
+ gene_id = s->annotated_gene_id();
+@@ -175,7 +175,7 @@ void compress_genes(FILE* ftranscripts,
+ Scaffold smashed_gene;
+ if (!proj_intersection && !proj_union)
+ {
+- foreach (shared_ptr<Scaffold> s, gene)
++ for_each (shared_ptr<Scaffold> s, gene)
+ {
+ /*
+ *transfrag,
+@@ -224,7 +224,7 @@ void compress_genes(FILE* ftranscripts,
+ int gmax = -1;
+ int gmin = numeric_limits<int>::max();
+
+- foreach (shared_ptr<Scaffold> s, gene)
++ for_each (shared_ptr<Scaffold> s, gene)
+ {
+ //iso_ops.push_back(s->augmented_ops());
+ //sort (iso_ops.back().begin(), iso_ops.back().end());
+@@ -234,7 +234,7 @@ void compress_genes(FILE* ftranscripts,
+ gmax = s->right();
+ }
+
+- foreach (shared_ptr<Scaffold> s, gene)
++ for_each (shared_ptr<Scaffold> s, gene)
+ {
+ if (s->left() > gmin)
+ {
+@@ -347,7 +347,7 @@ void driver(vector<FILE*> ref_gtf_files, FILE* gtf_out)
+ vector<vector<shared_ptr<Scaffold> > > ref_mRNA_table;
+ vector<pair<string, vector<double> > > sample_count_table;
+
+- foreach (FILE* ref_gtf, ref_gtf_files)
++ for_each (FILE* ref_gtf, ref_gtf_files)
+ {
+ vector<shared_ptr<Scaffold> > ref_mRNAs;
+ ::load_ref_rnas(ref_gtf, rt, ref_mRNAs, false, true);
+@@ -393,7 +393,7 @@ int main(int argc, char** argv)
+
+ vector<FILE*> ref_gtf_files;
+
+- foreach (const string& ref_gtf_in_filename, ref_gtf_filenames)
++ for_each (const string& ref_gtf_in_filename, ref_gtf_filenames)
+ {
+ FILE* ref_gtf = NULL;
+ if (ref_gtf_in_filename != "")
+diff --git a/src/cuffdiff.cpp b/src/cuffdiff.cpp
+index 575b064..7725910 100644
+--- a/src/cuffdiff.cpp
++++ b/src/cuffdiff.cpp
+@@ -490,7 +490,7 @@ void print_FPKM_tracking(FILE* fout,
+ const vector<FPKMContext>& fpkms = track.fpkm_series;
+
+ AbundanceStatus status = NUMERIC_OK;
+- foreach (const FPKMContext& c, fpkms)
++ for_each (const FPKMContext& c, fpkms)
+ {
+ if (c.status == NUMERIC_FAIL)
+ status = NUMERIC_FAIL;
+@@ -811,7 +811,7 @@ void driver(FILE* ref_gtf, FILE* mask_gtf, vector<string>& sam_hit_filename_list
+ ::load_ref_rnas(mask_gtf, rt, mask_rnas, false, false);
+ }
+
+- foreach (shared_ptr<ReplicatedBundleFactory> fac, bundle_factories)
++ for_each (shared_ptr<ReplicatedBundleFactory> fac, bundle_factories)
+ {
+ fac->set_ref_rnas(ref_mRNAs);
+ if (mask_gtf)
+@@ -826,7 +826,7 @@ void driver(FILE* ref_gtf, FILE* mask_gtf, vector<string>& sam_hit_filename_list
+ int tmp_max_frag_len = 0;
+
+ ProgressBar p_bar("Inspecting maps and determining fragment length distributions.",0);
+- foreach (shared_ptr<ReplicatedBundleFactory> fac, bundle_factories)
++ for_each (shared_ptr<ReplicatedBundleFactory> fac, bundle_factories)
+ {
+ #if ENABLE_THREADS
+ while(1)
+@@ -877,7 +877,7 @@ void driver(FILE* ref_gtf, FILE* mask_gtf, vector<string>& sam_hit_filename_list
+ {
+ long double total_mass = 0.0;
+ long double total_norm_mass = 0.0;
+- foreach (shared_ptr<ReadGroupProperties> rg, all_read_groups)
++ for_each (shared_ptr<ReadGroupProperties> rg, all_read_groups)
+ {
+ total_mass += rg->total_map_mass();
+ total_norm_mass += rg->normalized_map_mass();
+@@ -886,7 +886,7 @@ void driver(FILE* ref_gtf, FILE* mask_gtf, vector<string>& sam_hit_filename_list
+ if (total_mass > 0)
+ {
+ double scaling_factor = total_mass / total_norm_mass;
+- foreach (shared_ptr<ReadGroupProperties> rg, all_read_groups)
++ for_each (shared_ptr<ReadGroupProperties> rg, all_read_groups)
+ {
+ double scaled_mass = scaling_factor * rg->normalized_map_mass();
+
+@@ -916,7 +916,7 @@ void driver(FILE* ref_gtf, FILE* mask_gtf, vector<string>& sam_hit_filename_list
+
+ if (most_reps != 1 && poisson_dispersion == false)
+ {
+- foreach (shared_ptr<ReplicatedBundleFactory> fac, bundle_factories)
++ for_each (shared_ptr<ReplicatedBundleFactory> fac, bundle_factories)
+ {
+ if (fac->num_replicates() == 1)
+ {
+@@ -990,7 +990,7 @@ void driver(FILE* ref_gtf, FILE* mask_gtf, vector<string>& sam_hit_filename_list
+ shared_ptr<MassDispersionModel const> disperser;
+ disperser = fit_dispersion_model("pooled", scale_factors, sample_count_table);
+
+- foreach (shared_ptr<ReadGroupProperties> rg_props, all_read_groups)
++ for_each (shared_ptr<ReadGroupProperties> rg_props, all_read_groups)
+ {
+ rg_props->mass_dispersion_model(disperser);
+ }
+@@ -999,7 +999,7 @@ void driver(FILE* ref_gtf, FILE* mask_gtf, vector<string>& sam_hit_filename_list
+
+ long double total_norm_mass = 0.0;
+ long double total_mass = 0.0;
+- foreach (shared_ptr<ReadGroupProperties> rg_props, all_read_groups)
++ for_each (shared_ptr<ReadGroupProperties> rg_props, all_read_groups)
+ {
+ total_norm_mass += rg_props->normalized_map_mass();
+ total_mass += rg_props->total_map_mass();
+@@ -1007,7 +1007,7 @@ void driver(FILE* ref_gtf, FILE* mask_gtf, vector<string>& sam_hit_filename_list
+
+ // scale the normalized masses so that both quantile total count normalization
+ // are roughly on the same numerical scale
+- foreach (shared_ptr<ReadGroupProperties> rg_props, all_read_groups)
++ for_each (shared_ptr<ReadGroupProperties> rg_props, all_read_groups)
+ {
+ long double new_norm = rg_props->normalized_map_mass() * (total_mass / total_norm_mass);
+ rg_props->normalized_map_mass(new_norm);
+@@ -1039,7 +1039,7 @@ void driver(FILE* ref_gtf, FILE* mask_gtf, vector<string>& sam_hit_filename_list
+ shared_ptr<vector<shared_ptr<SampleAbundances> > > abundances(new vector<shared_ptr<SampleAbundances> >());
+ quantitate_next_locus(rt, bundle_factories, test_launcher);
+ bool more_loci_remain = false;
+- foreach (shared_ptr<ReplicatedBundleFactory> rep_fac, bundle_factories)
++ for_each (shared_ptr<ReplicatedBundleFactory> rep_fac, bundle_factories)
+ {
+ if (rep_fac->bundles_remain())
+ {
+@@ -1071,7 +1071,7 @@ void driver(FILE* ref_gtf, FILE* mask_gtf, vector<string>& sam_hit_filename_list
+ }
+ }
+
+- foreach (shared_ptr<ReplicatedBundleFactory> rep_fac, bundle_factories)
++ for_each (shared_ptr<ReplicatedBundleFactory> rep_fac, bundle_factories)
+ {
+ rep_fac->reset();
+ }
+@@ -1081,9 +1081,9 @@ void driver(FILE* ref_gtf, FILE* mask_gtf, vector<string>& sam_hit_filename_list
+ if (corr_bias)
+ {
+ p_bar = ProgressBar("Learning bias parameters.", 0);
+- foreach (shared_ptr<ReplicatedBundleFactory> rep_fac, bundle_factories)
++ for_each (shared_ptr<ReplicatedBundleFactory> rep_fac, bundle_factories)
+ {
+- foreach (shared_ptr<BundleFactory> fac, rep_fac->factories())
++ for_each (shared_ptr<BundleFactory> fac, rep_fac->factories())
+ {
+ #if ENABLE_THREADS
+ while(1)
+@@ -1124,7 +1124,7 @@ void driver(FILE* ref_gtf, FILE* mask_gtf, vector<string>& sam_hit_filename_list
+ boost::this_thread::sleep(boost::posix_time::milliseconds(5));
+ }
+ #endif
+- foreach (shared_ptr<ReplicatedBundleFactory> rep_fac, bundle_factories)
++ for_each (shared_ptr<ReplicatedBundleFactory> rep_fac, bundle_factories)
+ {
+ rep_fac->reset();
+ }
+@@ -1167,7 +1167,7 @@ void driver(FILE* ref_gtf, FILE* mask_gtf, vector<string>& sam_hit_filename_list
+ //shared_ptr<vector<shared_ptr<SampleAbundances> > > abundances(new vector<shared_ptr<SampleAbundances> >());
+ quantitate_next_locus(rt, bundle_factories, test_launcher);
+ bool more_loci_remain = false;
+- foreach (shared_ptr<ReplicatedBundleFactory> rep_fac, bundle_factories)
++ for_each (shared_ptr<ReplicatedBundleFactory> rep_fac, bundle_factories)
+ {
+ if (rep_fac->bundles_remain())
+ {
+diff --git a/src/cufflinks.cpp b/src/cufflinks.cpp
+index 796af98..1030ae8 100644
+--- a/src/cufflinks.cpp
++++ b/src/cufflinks.cpp
+@@ -471,7 +471,7 @@ void combine_strand_assemblies(vector<Scaffold>& lhs,
+ {
+ for(size_t l = 0; l < lhs.size(); ++l)
+ {
+- foreach(shared_ptr<Scaffold> ref_scaff, *ref_scaffs)
++ for_each(shared_ptr<Scaffold> ref_scaff, *ref_scaffs)
+ {
+ // if we're past all the overlaps, just stop
+ if (ref_scaff->left() >= lhs[l].right() + overhang_3)
+@@ -504,7 +504,7 @@ void combine_strand_assemblies(vector<Scaffold>& lhs,
+ }
+ for(size_t r = 0; r < rhs.size(); ++r)
+ {
+- foreach(shared_ptr<Scaffold> ref_scaff, *ref_scaffs)
++ for_each(shared_ptr<Scaffold> ref_scaff, *ref_scaffs)
+ {
+ if (ref_scaff->left() >= rhs[r].right() + overhang_3)
+ {
+@@ -665,7 +665,7 @@ bool scaffolds_for_bundle(const HitBundle& bundle,
+ if (ref_guided && enable_faux_reads && !hits.empty())
+ {
+ vector<Scaffold> pseudohits;
+- foreach(shared_ptr<Scaffold const> ref_scaff, *ref_scaffs)
++ for_each(shared_ptr<Scaffold const> ref_scaff, *ref_scaffs)
+ {
+ ref_scaff->tile_with_scaffs(pseudohits, tile_len, tile_off);
+ }
+@@ -842,7 +842,7 @@ bool scaffolds_for_bundle(const HitBundle& bundle,
+ }
+ if (assembled_successfully)
+ {
+- foreach(Scaffold& scaff, tmp_scaffs)
++ for_each(Scaffold& scaff, tmp_scaffs)
+ {
+ scaffolds.push_back(shared_ptr<Scaffold>(new Scaffold(scaff)));
+ }
+@@ -886,7 +886,7 @@ void quantitate_transcript_cluster(AbundanceGroup& transfrag_cluster,
+
+ // need the avg read length for depth of coverage calculation
+ double avg_read_length = 0;
+- foreach (MateHit& hit, hits_in_cluster)
++ for_each (MateHit& hit, hits_in_cluster)
+ {
+ if (hit.left_alignment())
+ avg_read_length += hit.left_alignment()->read_len();
+@@ -905,7 +905,7 @@ void quantitate_transcript_cluster(AbundanceGroup& transfrag_cluster,
+ }
+ else
+ {
+- foreach(shared_ptr<Abundance> ab, transfrag_cluster.abundances())
++ for_each(shared_ptr<Abundance> ab, transfrag_cluster.abundances())
+ {
+ ab->status(NUMERIC_HI_DATA);
+ }
+@@ -939,7 +939,7 @@ void quantitate_transcript_cluster(AbundanceGroup& transfrag_cluster,
+ {
+ shared_ptr<Abundance> ab_i = abundances[i];
+ bool found = false;
+- foreach (shared_ptr<Abundance> ab_j, filtered_transcripts)
++ for_each (shared_ptr<Abundance> ab_j, filtered_transcripts)
+ {
+ if (ab_i == ab_j)
+ {
+@@ -961,7 +961,7 @@ void quantitate_transcript_cluster(AbundanceGroup& transfrag_cluster,
+ transfrags_by_strand);
+
+
+- foreach (const AbundanceGroup& strand_group, transfrags_by_strand)
++ for_each (const AbundanceGroup& strand_group, transfrags_by_strand)
+ {
+ vector<AbundanceGroup> transfrags_by_gene;
+
+@@ -974,7 +974,7 @@ void quantitate_transcript_cluster(AbundanceGroup& transfrag_cluster,
+ cluster_transcripts<ConnectByExonOverlap>(strand_group, transfrags_by_gene);
+ }
+
+- foreach(const AbundanceGroup& gene, transfrags_by_gene)
++ for_each(const AbundanceGroup& gene, transfrags_by_gene)
+ {
+ const vector<shared_ptr<Abundance> >& iso_abundances = gene.abundances();
+ vector<Isoform> isoforms;
+@@ -985,7 +985,7 @@ void quantitate_transcript_cluster(AbundanceGroup& transfrag_cluster,
+ string ref_gene_id = "";
+
+ double major_isoform_FPKM = 0;
+- foreach (shared_ptr<Abundance> iso_ab, iso_abundances)
++ for_each (shared_ptr<Abundance> iso_ab, iso_abundances)
+ {
+ if (iso_ab->transfrag()->is_ref())
+ {
+@@ -1002,7 +1002,7 @@ void quantitate_transcript_cluster(AbundanceGroup& transfrag_cluster,
+ major_isoform_FPKM = max(iso_ab->FPKM(), major_isoform_FPKM);
+ }
+
+- foreach (shared_ptr<Abundance> iso_ab, iso_abundances)
++ for_each (shared_ptr<Abundance> iso_ab, iso_abundances)
+ {
+ // Calculate transcript depth of coverage and FMI from FPKM
+ double FPKM = iso_ab->FPKM();
+@@ -1067,7 +1067,7 @@ void quantitate_transcript_clusters(vector<shared_ptr<Scaffold> >& scaffolds,
+ {
+ vector<Scaffold> c;
+ scaffolds[i]->get_complete_subscaffolds(c);
+- foreach (Scaffold& s, c)
++ for_each (Scaffold& s, c)
+ {
+ split_partials.push_back(shared_ptr<Scaffold>(new Scaffold(s)));
+ }
+@@ -1076,7 +1076,7 @@ void quantitate_transcript_clusters(vector<shared_ptr<Scaffold> >& scaffolds,
+ scaffolds = split_partials;
+
+ vector<shared_ptr<Abundance> > abundances;
+- foreach(shared_ptr<Scaffold> s, scaffolds)
++ for_each(shared_ptr<Scaffold> s, scaffolds)
+ {
+ TranscriptAbundance* pT = new TranscriptAbundance;
+ pT->transfrag(s);
+@@ -1091,7 +1091,7 @@ void quantitate_transcript_clusters(vector<shared_ptr<Scaffold> >& scaffolds,
+ cluster_transcripts<ConnectByExonOverlap>(transfrags,
+ transfrags_by_cluster);
+
+- foreach(AbundanceGroup& cluster, transfrags_by_cluster)
++ for_each(AbundanceGroup& cluster, transfrags_by_cluster)
+ {
+ quantitate_transcript_cluster(cluster, total_map_mass, genes, bundle_too_large);
+ }
+@@ -1233,10 +1233,10 @@ void assemble_bundle(const RefSequenceTable& rt,
+ if (init_bundle_mode == REF_GUIDED)
+ {
+ hit_introns = new set<AugmentedCuffOp>();
+- foreach(const MateHit& h, bundle.non_redundant_hits())
++ for_each(const MateHit& h, bundle.non_redundant_hits())
+ {
+ Scaffold s(h);
+- foreach (AugmentedCuffOp a, s.augmented_ops())
++ for_each (AugmentedCuffOp a, s.augmented_ops())
+ {
+ if (a.opcode == CUFF_INTRON)
+ {
+@@ -1567,7 +1567,7 @@ void driver(const string& hit_file_name, FILE* ref_gtf, FILE* mask_gtf)
+ verbose_msg("%d ReadHits still live\n", num_deleted);
+ verbose_msg("Found %lu reference contigs\n", rt.size());
+
+- foreach(shared_ptr<Scaffold> ref_scaff, ref_mRNAs)
++ for_each(shared_ptr<Scaffold> ref_scaff, ref_mRNAs)
+ {
+ ref_scaff->clear_hits();
+ }
+diff --git a/src/differential.cpp b/src/differential.cpp
+index 3e5cff0..6b108cb 100644
+--- a/src/differential.cpp
++++ b/src/differential.cpp
+@@ -84,7 +84,7 @@ void TestLauncher::abundance_avail(const string& locus_id,
+ // acquire the lock itself.
+ bool TestLauncher::all_samples_reported_in(vector<shared_ptr<SampleAbundances> >& abundances)
+ {
+- foreach (shared_ptr<SampleAbundances> ab, abundances)
++ for_each (shared_ptr<SampleAbundances> ab, abundances)
+ {
+ if (!ab)
+ {
+@@ -436,7 +436,7 @@ pair<int, SampleDiffs::iterator> get_de_tests(const string& description,
+ // ublas::vector<double> null_kappa_mean;
+ // null_kappa_mean = ublas::zero_vector<double>(curr_kappa_cov.size1());
+ //
+-// foreach(ublas::vector<double>& sample, samples)
++// for_each(ublas::vector<double>& sample, samples)
+ // {
+ // null_kappa_mean += sample;
+ // }
+@@ -1056,7 +1056,7 @@ void sample_abundance_worker(const string& locus_tag,
+ {
+ vector<shared_ptr<Abundance> > abundances;
+
+- foreach(shared_ptr<Scaffold> s, sample_bundle->ref_scaffolds())
++ for_each(shared_ptr<Scaffold> s, sample_bundle->ref_scaffolds())
+ {
+ TranscriptAbundance* pT = new TranscriptAbundance;
+ pT->transfrag(s);
+@@ -1082,7 +1082,7 @@ void sample_abundance_worker(const string& locus_tag,
+ }
+ else
+ {
+- foreach(shared_ptr<Abundance> ab, abundances)
++ for_each(shared_ptr<Abundance> ab, abundances)
+ {
+ ab->status(NUMERIC_HI_DATA);
+ }
+@@ -1093,7 +1093,7 @@ void sample_abundance_worker(const string& locus_tag,
+ cluster_transcripts<ConnectByAnnotatedGeneId>(sample.transcripts,
+ transcripts_by_gene_id);
+
+- foreach(AbundanceGroup& ab_group, transcripts_by_gene_id)
++ for_each(AbundanceGroup& ab_group, transcripts_by_gene_id)
+ {
+ ab_group.locus_tag(locus_tag);
+ set<string> gene_ids = ab_group.gene_id();
+@@ -1119,7 +1119,7 @@ void sample_abundance_worker(const string& locus_tag,
+ &cds_count_cov,
+ &cds_fpkm_cov,
+ &cds_gamma_boot_cov);
+- foreach(AbundanceGroup& ab_group, transcripts_by_cds)
++ for_each(AbundanceGroup& ab_group, transcripts_by_cds)
+ {
+ ab_group.locus_tag(locus_tag);
+ set<string> protein_ids = ab_group.protein_id();
+@@ -1135,7 +1135,7 @@ void sample_abundance_worker(const string& locus_tag,
+ vector<shared_ptr<Abundance> > cds_abundances;
+ double max_cds_mass_variance = 0.0;
+ set<shared_ptr<ReadGroupProperties const> > rg_props;
+- foreach (AbundanceGroup& ab_group, sample.cds)
++ for_each (AbundanceGroup& ab_group, sample.cds)
+ {
+ cds_abundances.push_back(shared_ptr<Abundance>(new AbundanceGroup(ab_group)));
+ max_cds_mass_variance = max(ab_group.max_mass_variance(), max_cds_mass_variance);
+@@ -1155,7 +1155,7 @@ void sample_abundance_worker(const string& locus_tag,
+ cluster_transcripts<ConnectByAnnotatedGeneId>(cds,
+ cds_by_gene);
+
+- foreach(AbundanceGroup& ab_group, cds_by_gene)
++ for_each(AbundanceGroup& ab_group, cds_by_gene)
+ {
+ ab_group.locus_tag(locus_tag);
+ set<string> gene_ids = ab_group.gene_id();
+@@ -1185,7 +1185,7 @@ void sample_abundance_worker(const string& locus_tag,
+ &tss_gamma_boot_cov);
+
+
+- foreach(AbundanceGroup& ab_group, transcripts_by_tss)
++ for_each(AbundanceGroup& ab_group, transcripts_by_tss)
+ {
+ ab_group.locus_tag(locus_tag);
+ set<string> tss_ids = ab_group.tss_id();
+@@ -1202,7 +1202,7 @@ void sample_abundance_worker(const string& locus_tag,
+ // Group TSS clusters by gene
+ vector<shared_ptr<Abundance> > primary_transcript_abundances;
+ set<shared_ptr<ReadGroupProperties const> > rg_props;
+- foreach (AbundanceGroup& ab_group, sample.primary_transcripts)
++ for_each (AbundanceGroup& ab_group, sample.primary_transcripts)
+ {
+ primary_transcript_abundances.push_back(shared_ptr<Abundance>(new AbundanceGroup(ab_group)));
+ max_tss_mass_variance = max(max_tss_mass_variance, ab_group.max_mass_variance());
+@@ -1223,13 +1223,13 @@ void sample_abundance_worker(const string& locus_tag,
+ cluster_transcripts<ConnectByAnnotatedGeneId>(primary_transcripts,
+ primary_transcripts_by_gene);
+
+- foreach(AbundanceGroup& ab_group, primary_transcripts_by_gene)
++ for_each(AbundanceGroup& ab_group, primary_transcripts_by_gene)
+ {
+ ab_group.locus_tag(locus_tag);
+ set<string> gene_ids = ab_group.gene_id();
+ // if (gene_ids.size() > 1)
+ // {
+-// foreach (string st, gene_ids)
++// for_each (string st, gene_ids)
+ // {
+ // fprintf(stderr, "%s\n", st.c_str());
+ // }
+@@ -1314,7 +1314,7 @@ void sample_worker(const RefSequenceTable& rt,
+ bool perform_cds_analysis = final_est_run;
+ bool perform_tss_analysis = final_est_run;
+
+- foreach(shared_ptr<Scaffold> s, bundle.ref_scaffolds())
++ for_each(shared_ptr<Scaffold> s, bundle.ref_scaffolds())
+ {
+ if (s->annotated_tss_id() == "")
+ {
+@@ -1439,7 +1439,7 @@ void sample_worker(const RefSequenceTable& rt,
+ ///////////////////////////////////////////////
+
+
+- foreach(shared_ptr<Scaffold> ref_scaff, bundle.ref_scaffolds())
++ for_each(shared_ptr<Scaffold> ref_scaff, bundle.ref_scaffolds())
+ {
+ ref_scaff->clear_hits();
+ }
+@@ -1465,7 +1465,7 @@ void dump_locus_variance_info(const string& filename)
+
+ fprintf(fdump,
+ "condition\tdescription\tlocus_counts\tempir_var\tlocus_fit_var\tsum_iso_fit_var\tcross_replicate_js\tnum_transcripts\tbayes_gamma_trace\tempir_gamma_trace\tcount_mean\tgamma_var\tgamma_bootstrap_var\tlocus_salient_frags\tlocus_total_frags\tcount_sharing\n");
+- foreach (LocusVarianceInfo& L, locus_variance_info_table)
++ for_each (LocusVarianceInfo& L, locus_variance_info_table)
+ {
+ for (size_t i = 0; i < L.gamma.size(); ++i)
+ {
+@@ -1503,22 +1503,22 @@ void test_differential(const string& locus_tag,
+ for (size_t i = 0; i < samples.size(); ++i)
+ {
+ const AbundanceGroup& ab_group = samples[i]->transcripts;
+- foreach (shared_ptr<Abundance> ab, ab_group.abundances())
++ for_each (shared_ptr<Abundance> ab, ab_group.abundances())
+ {
+ add_to_tracking_table(i, *ab, tracking.isoform_fpkm_tracking);
+ }
+
+- foreach (AbundanceGroup& ab, samples[i]->cds)
++ for_each (AbundanceGroup& ab, samples[i]->cds)
+ {
+ add_to_tracking_table(i, ab, tracking.cds_fpkm_tracking);
+ }
+
+- foreach (AbundanceGroup& ab, samples[i]->primary_transcripts)
++ for_each (AbundanceGroup& ab, samples[i]->primary_transcripts)
+ {
+ add_to_tracking_table(i, ab, tracking.tss_group_fpkm_tracking);
+ }
+
+- foreach (AbundanceGroup& ab, samples[i]->genes)
++ for_each (AbundanceGroup& ab, samples[i]->genes)
+ {
+ add_to_tracking_table(i, ab, tracking.gene_fpkm_tracking);
+ }
+diff --git a/src/filters.cpp b/src/filters.cpp
+index 0a10b50..5ab31e0 100644
+--- a/src/filters.cpp
++++ b/src/filters.cpp
+@@ -752,7 +752,7 @@ void clip_by_3_prime_dropoff(vector<Scaffold>& scaffolds)
+
+ if (library_type != "transfrags")
+ {
+- foreach (Scaffold& scaff, scaffolds)
++ for_each (Scaffold& scaff, scaffolds)
+ {
+ if (!(scaff.strand() == CUFF_FWD || scaff.strand() == CUFF_REV))
+ continue;
+@@ -761,7 +761,7 @@ void clip_by_3_prime_dropoff(vector<Scaffold>& scaffolds)
+ vector<double> coverage(scaff_len, 0.0);
+
+ double total = 0;
+- foreach(const MateHit* hit, scaff.mate_hits())
++ for_each(const MateHit* hit, scaff.mate_hits())
+ {
+ int start, end, frag_len;
+ if (!scaff.map_frag(*hit, start, end, frag_len)) continue;
+@@ -906,7 +906,7 @@ void clip_by_3_prime_dropoff(vector<Scaffold>& scaffolds)
+ }
+ else
+ {
+- foreach (Scaffold& scaff, scaffolds)
++ for_each (Scaffold& scaff, scaffolds)
+ {
+ if (!(scaff.strand() == CUFF_FWD || scaff.strand() == CUFF_REV))
+ continue;
+@@ -915,7 +915,7 @@ void clip_by_3_prime_dropoff(vector<Scaffold>& scaffolds)
+ vector<double> coverage(scaff_len, 0.0);
+
+ double total = 0;
+- foreach(const MateHit* hit, scaff.mate_hits())
++ for_each(const MateHit* hit, scaff.mate_hits())
+ {
+ int start, end, frag_len;
+ if (!scaff.map_frag(*hit, start, end, frag_len)) continue;
+diff --git a/src/genes.h b/src/genes.h
+index 4dfa996..eb48a14 100644
+--- a/src/genes.h
++++ b/src/genes.h
+@@ -169,7 +169,7 @@ public:
+
+ bool has_ref_trans() const
+ {
+- foreach (const Isoform& iso, _isoforms)
++ for_each (const Isoform& iso, _isoforms)
+ {
+ if (iso.is_ref_trans())
+ return true;
+@@ -180,7 +180,7 @@ public:
+ double estimated_count() const
+ {
+ double est = 0.0;
+- foreach (const Isoform& iso, _isoforms)
++ for_each (const Isoform& iso, _isoforms)
+ {
+ est += iso.estimated_count();
+ }
+@@ -191,7 +191,7 @@ public:
+ {
+ double eff = 0.0;
+ double total_fpkm = 0;
+- foreach (const Isoform& iso, _isoforms)
++ for_each (const Isoform& iso, _isoforms)
+ {
+ eff += iso.FPKM() * iso.effective_length();
+ total_fpkm += iso.FPKM();
+diff --git a/src/gtf_to_sam.cpp b/src/gtf_to_sam.cpp
+index 12f70c1..f52d40a 100644
+--- a/src/gtf_to_sam.cpp
++++ b/src/gtf_to_sam.cpp
+@@ -241,13 +241,13 @@ void set_relative_fpkms(vector<shared_ptr<Scaffold> >& ref_mRNAs)
+ vector<shared_ptr<Scaffold> >& gene = grouped_scaffolds[i];
+
+ double total_fpkm = 0.0;
+- foreach(shared_ptr<Scaffold> scaff, gene)
++ for_each(shared_ptr<Scaffold> scaff, gene)
+ {
+ total_fpkm += scaff->fpkm();
+ }
+ if (total_fpkm > 0)
+ {
+- foreach (shared_ptr<Scaffold> scaff, gene)
++ for_each (shared_ptr<Scaffold> scaff, gene)
+ {
+ scaff->fpkm(scaff->fpkm() / total_fpkm);
+ }
+@@ -263,7 +263,7 @@ void driver(vector<FILE*> ref_gtf_files, FILE* sam_out)
+ vector<vector<shared_ptr<Scaffold> > > ref_mRNA_table;
+ vector<pair<string, vector<double> > > sample_count_table;
+
+- foreach (FILE* ref_gtf, ref_gtf_files)
++ for_each (FILE* ref_gtf, ref_gtf_files)
+ {
+ vector<shared_ptr<Scaffold> > ref_mRNAs;
+ ::load_ref_rnas(ref_gtf, rt, ref_mRNAs, false, true);
+@@ -314,7 +314,7 @@ int main(int argc, char** argv)
+
+ vector<FILE*> ref_gtf_files;
+
+- foreach (const string& ref_gtf_in_filename, ref_gtf_filenames)
++ for_each (const string& ref_gtf_in_filename, ref_gtf_filenames)
+ {
+ FILE* ref_gtf = NULL;
+ if (ref_gtf_in_filename != "")
+diff --git a/src/hits.cpp b/src/hits.cpp
+index 910ba0f..dc81813 100644
+--- a/src/hits.cpp
++++ b/src/hits.cpp
+@@ -233,7 +233,7 @@ void collapse_hits(const vector<MateHit>& hits,
+ non_redundant.erase(new_end, non_redundant.end());
+ non_redundant.resize(non_redundant.size());
+
+- foreach(MateHit& hit, non_redundant)
++ for_each(MateHit& hit, non_redundant)
+ hit.collapse_mass(0);
+
+ size_t curr_aln = 0;
+@@ -252,7 +252,7 @@ void collapse_hits(const vector<MateHit>& hits,
+ ++curr_aln;
+ }
+
+- //foreach(MateHit& hit, non_redundant)
++ //for_each(MateHit& hit, non_redundant)
+ //assert(hit.collapse_mass() <= 1 || !hit.is_multi());
+
+ //non_redundant.erase(remove_if(non_redundant.begin(),non_redundant.end(),has_no_collapse_mass), non_redundant.end());
+diff --git a/src/replicates.cpp b/src/replicates.cpp
+index 634f209..ec8ce9c 100644
+--- a/src/replicates.cpp
++++ b/src/replicates.cpp
+@@ -236,7 +236,7 @@ fit_dispersion_model_helper(const string& condition_name,
+ mean /= p.counts.size();
+
+ double var = 0.0;
+- foreach (double d, p.counts)
++ for_each (double d, p.counts)
+ {
+ var += (d - mean) * (d - mean);
+ }
+@@ -363,7 +363,7 @@ fit_dispersion_model(const string& condition_name,
+ ProgressBar p_bar("Modeling fragment count overdispersion.",0);
+
+ int max_transcripts = 0;
+- foreach(const LocusCountList& L, sample_count_table)
++ for_each(const LocusCountList& L, sample_count_table)
+ {
+ if (L.num_transcripts > max_transcripts)
+ {
+@@ -382,7 +382,7 @@ fit_dispersion_model(const string& condition_name,
+ if (i != 0)
+ {
+ // vector<LocusCountList> sample_count_subtable;
+-// foreach(const LocusCountList& L, sample_count_table)
++// for_each(const LocusCountList& L, sample_count_table)
+ // {
+ // if (L.num_transcripts == i)
+ // {
+diff --git a/src/replicates.h b/src/replicates.h
+index ca4484f..73d339c 100644
+--- a/src/replicates.h
++++ b/src/replicates.h
+@@ -99,7 +99,7 @@ public:
+ #if ENABLE_THREADS
+ boost::mutex::scoped_lock lock(_rep_factory_lock);
+ #endif
+- foreach (boost::shared_ptr<BundleFactory> fac, _factories)
++ for_each (boost::shared_ptr<BundleFactory> fac, _factories)
+ {
+ if (fac->bundles_remain())
+ return true;
+@@ -115,7 +115,7 @@ public:
+ std::vector<HitBundle*> bundles;
+
+ bool non_empty_bundle = false;
+- foreach (boost::shared_ptr<BundleFactory> fac, _factories)
++ for_each (boost::shared_ptr<BundleFactory> fac, _factories)
+ {
+ bundles.push_back(new HitBundle());
+ if (fac->next_bundle(*(bundles.back())))
+@@ -126,7 +126,7 @@ public:
+
+ if (non_empty_bundle == false)
+ {
+- foreach (HitBundle* in_bundle, bundles)
++ for_each (HitBundle* in_bundle, bundles)
+ {
+ in_bundle->ref_scaffolds().clear();
+ in_bundle->clear_hits();
+@@ -149,7 +149,7 @@ public:
+ // Merge the replicates into a combined bundle of hits.
+ HitBundle::combine(bundles, bundle_out);
+
+- foreach (HitBundle* in_bundle, bundles)
++ for_each (HitBundle* in_bundle, bundles)
+ {
+ in_bundle->ref_scaffolds().clear();
+ in_bundle->clear_hits();
+@@ -163,7 +163,7 @@ public:
+ #if ENABLE_THREADS
+ boost::mutex::scoped_lock lock(_rep_factory_lock);
+ #endif
+- foreach (shared_ptr<BundleFactory> fac, _factories)
++ for_each (shared_ptr<BundleFactory> fac, _factories)
+ {
+ fac->reset();
+ }
+@@ -246,7 +246,7 @@ public:
+ shared_ptr<MassDispersionModel const> disperser;
+ disperser = fit_dispersion_model(_condition_name,scale_factors, sample_count_table);
+
+- foreach (shared_ptr<BundleFactory> fac, _factories)
++ for_each (shared_ptr<BundleFactory> fac, _factories)
+ {
+ shared_ptr<ReadGroupProperties> rg_props = fac->read_group_properties();
+ rg_props->mass_dispersion_model(disperser);
+@@ -260,7 +260,7 @@ public:
+ #if ENABLE_THREADS
+ boost::mutex::scoped_lock lock(_rep_factory_lock);
+ #endif
+- foreach(shared_ptr<BundleFactory> fac, _factories)
++ for_each(shared_ptr<BundleFactory> fac, _factories)
+ {
+ fac->set_ref_rnas(mRNAs);
+ }
+@@ -271,7 +271,7 @@ public:
+ #if ENABLE_THREADS
+ boost::mutex::scoped_lock lock(_rep_factory_lock);
+ #endif
+- foreach(shared_ptr<BundleFactory> fac, _factories)
++ for_each(shared_ptr<BundleFactory> fac, _factories)
+ {
+ fac->set_mask_rnas(mRNAs);
+ }
+@@ -284,7 +284,7 @@ public:
+ #if ENABLE_THREADS
+ boost::mutex::scoped_lock lock(_rep_factory_lock);
+ #endif
+- foreach(shared_ptr<BundleFactory>& fac, _factories)
++ for_each(shared_ptr<BundleFactory>& fac, _factories)
+ {
+ fac->read_group_properties()->mass_dispersion_model(disperser);
+ }
+diff --git a/src/scaffolds.cpp b/src/scaffolds.cpp
+index 096f58a..c12118e 100644
+--- a/src/scaffolds.cpp
++++ b/src/scaffolds.cpp
+@@ -620,7 +620,7 @@ void Scaffold::tile_with_scaffs(vector<Scaffold>& tile_scaffs, int max_len, int
+
+ // genomic_offset actually could be zero - from an exon starting at coord
+ // 1 in some chromosome of the ref.
+-// foreach(const AugmentedCuffOp& op, ops)
++// for_each(const AugmentedCuffOp& op, ops)
+ // {
+ // assert (op.genomic_offset != 0);
+ // }
+@@ -819,7 +819,7 @@ void Scaffold::merge(const vector<Scaffold>& s,
+ if (library_type == "transfrags")
+ {
+ double avg_fpkm = 0.0;
+- foreach (const Scaffold& sc, s)
++ for_each (const Scaffold& sc, s)
+ {
+ avg_fpkm += sc.fpkm();
+ }
+@@ -871,7 +871,7 @@ void Scaffold::fill_gaps(const vector<AugmentedCuffOp>& filler)
+
+ vector<AugmentedCuffOp> tmp_filler = filler;
+
+- foreach(const AugmentedCuffOp& op, orig_ops)
++ for_each(const AugmentedCuffOp& op, orig_ops)
+ {
+ assert (op.g_left() < op.g_right());
+
+@@ -888,7 +888,7 @@ void Scaffold::fill_gaps(const vector<AugmentedCuffOp>& filler)
+ AugmentedCuffOp::merge_ops(tmp_filler, padded_filler, false);
+
+ vector<AugmentedCuffOp> overlapping;
+- foreach (const AugmentedCuffOp& op, padded_filler)
++ for_each (const AugmentedCuffOp& op, padded_filler)
+ {
+ //if (left() <= op.g_left() && right() >= op.g_right()
+ if(::overlap_in_genome(op.g_left(),op.g_right(), left(), right())
+@@ -1630,7 +1630,7 @@ void Scaffold::get_complete_subscaffolds(vector<Scaffold>& complete)
+
+ // const vector<const MateHit*>& hits = known.mate_hits();
+ // bool contains_spliced_hit = false;
+- // foreach (const MateHit* h, hits)
++ // for_each (const MateHit* h, hits)
+ // {
+ // const ReadHit* left = h->left_alignment();
+ // const ReadHit* right = h->right_alignment();
+@@ -1670,7 +1670,7 @@ double Scaffold::internal_exon_coverage() const
+ int left = augmented_ops()[2].g_left();
+ int right = augmented_ops()[augmented_ops().size() - 3].g_right();
+ vector<bool> covered(right-left, 0);
+- foreach(const MateHit* h, mate_hits())
++ for_each(const MateHit* h, mate_hits())
+ {
+ if (::overlap_in_genome(h->left(),h->right(), left, right))
+ {
+@@ -1694,7 +1694,7 @@ bool Scaffold::has_strand_support(vector<shared_ptr<Scaffold> >* ref_scaffs) con
+ if (has_intron())
+ return true;
+
+- foreach (const MateHit* h, mate_hits())
++ for_each (const MateHit* h, mate_hits())
+ {
+ if (h->strand() == strand())
+ return true;
+@@ -1704,7 +1704,7 @@ bool Scaffold::has_strand_support(vector<shared_ptr<Scaffold> >* ref_scaffs) con
+ if (ref_scaffs == NULL)
+ return false;
+
+- foreach (shared_ptr<Scaffold const> ref_scaff, *ref_scaffs)
++ for_each (shared_ptr<Scaffold const> ref_scaff, *ref_scaffs)
+ {
+ if (ref_scaff->strand() == strand() && exons_overlap(*this, *ref_scaff))
+ return true;
+@@ -1729,10 +1729,10 @@ bool Scaffold::hits_support_introns() const
+ {
+ set<AugmentedCuffOp> hit_introns;
+ set<AugmentedCuffOp> scaffold_introns;
+- foreach(const MateHit* h, _mates_in_scaff)
++ for_each(const MateHit* h, _mates_in_scaff)
+ {
+ Scaffold s(*h);
+- foreach (AugmentedCuffOp a, s.augmented_ops())
++ for_each (AugmentedCuffOp a, s.augmented_ops())
+ {
+ if (a.opcode == CUFF_INTRON)
+ {
+@@ -1740,7 +1740,7 @@ bool Scaffold::hits_support_introns() const
+ }
+ }
+ }
+- foreach (AugmentedCuffOp a, _augmented_ops)
++ for_each (AugmentedCuffOp a, _augmented_ops)
+ {
+ if (a.opcode == CUFF_INTRON)
+ {
+@@ -1751,13 +1751,13 @@ bool Scaffold::hits_support_introns() const
+ if (hit_introns != scaffold_introns)
+ {
+ fprintf(stderr, "********************\n");
+- foreach(const AugmentedCuffOp& a, hit_introns)
++ for_each(const AugmentedCuffOp& a, hit_introns)
+ {
+ fprintf(stderr, "%d - %d\n", a.g_left(), a.g_right());
+ }
+
+ fprintf(stderr, "####################\n");
+- foreach(const AugmentedCuffOp& a, scaffold_introns)
++ for_each(const AugmentedCuffOp& a, scaffold_introns)
+ {
+ fprintf(stderr, "%d - %d\n", a.g_left(), a.g_right());
+ }
+@@ -1770,7 +1770,7 @@ bool Scaffold::hits_support_introns(set<AugmentedCuffOp>& hit_introns) const
+ {
+ set<AugmentedCuffOp> scaffold_introns;
+
+- foreach (AugmentedCuffOp a, _augmented_ops)
++ for_each (AugmentedCuffOp a, _augmented_ops)
+ {
+ if (a.opcode == CUFF_INTRON)
+ {
+diff --git a/src/scaffolds.h b/src/scaffolds.h
+index 0f29e80..f8410f7 100644
+--- a/src/scaffolds.h
++++ b/src/scaffolds.h
+@@ -314,7 +314,7 @@ public:
+ if (library_type == "transfrags")
+ {
+ double avg_fpkm = 0.0;
+- foreach (const Scaffold& sc, hits)
++ for_each (const Scaffold& sc, hits)
+ {
+ avg_fpkm += sc.fpkm();
+ }
diff --git a/sci-biology/cufflinks/files/cufflinks-1.3.0-gcc-4.7.patch b/sci-biology/cufflinks/files/cufflinks-1.3.0-gcc-4.7.patch
new file mode 100644
index 000000000000..360e9c1a11b8
--- /dev/null
+++ b/sci-biology/cufflinks/files/cufflinks-1.3.0-gcc-4.7.patch
@@ -0,0 +1,20 @@
+ src/lemon/bits/base_extender.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/lemon/bits/base_extender.h b/src/lemon/bits/base_extender.h
+index 84bb242..b812247 100644
+--- a/src/lemon/bits/base_extender.h
++++ b/src/lemon/bits/base_extender.h
+@@ -359,10 +359,10 @@ namespace lemon {
+ }
+
+ Node source(const UEdge& edge) const {
+- return aNode(edge);
++ return this->aNode(edge);
+ }
+ Node target(const UEdge& edge) const {
+- return bNode(edge);
++ return this->bNode(edge);
+ }
+
+ void firstInc(UEdge& edge, bool& dir, const Node& node) const {