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 ab, _abundances) + for_each(shared_ptr 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 ab, _abundances) + for_each(shared_ptr ab, _abundances) { if (ab->status() == member_status) { @@ -219,7 +219,7 @@ double AbundanceGroup::num_fragments() const { double num_f = 0; - foreach(shared_ptr ab, _abundances) + for_each(shared_ptr ab, _abundances) { num_f += ab->num_fragments(); } @@ -231,7 +231,7 @@ double AbundanceGroup::mass_fraction() const { double mass = 0; - foreach(shared_ptr ab, _abundances) + for_each(shared_ptr ab, _abundances) { mass += ab->mass_fraction(); } @@ -242,7 +242,7 @@ double AbundanceGroup::mass_variance() const { double mass_var = 0; - foreach(shared_ptr ab, _abundances) + for_each(shared_ptr ab, _abundances) { mass_var += ab->mass_variance(); } @@ -253,7 +253,7 @@ double AbundanceGroup::FPKM() const { double fpkm = 0; - foreach(shared_ptr ab, _abundances) + for_each(shared_ptr ab, _abundances) { fpkm += ab->FPKM(); } @@ -265,7 +265,7 @@ double AbundanceGroup::gamma() const { double gamma = 0; - foreach(shared_ptr ab, _abundances) + for_each(shared_ptr ab, _abundances) { gamma += ab->gamma(); } @@ -281,7 +281,7 @@ void AbundanceGroup::filter_group(const vector& 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& to_keep, void AbundanceGroup::get_transfrags(vector >& transfrags) const { transfrags.clear(); - foreach(shared_ptr pA, _abundances) + for_each(shared_ptr pA, _abundances) { shared_ptr pS = pA->transfrag(); if (pS) @@ -345,7 +345,7 @@ set AbundanceGroup::gene_id() const { set s; - foreach (shared_ptr pA, _abundances) + for_each (shared_ptr pA, _abundances) { set sub = pA->gene_id(); s.insert(sub.begin(), sub.end()); @@ -358,7 +358,7 @@ set AbundanceGroup::gene_name() const { set s; - foreach (shared_ptr pA, _abundances) + for_each (shared_ptr pA, _abundances) { set sub = pA->gene_name(); s.insert(sub.begin(), sub.end()); @@ -372,7 +372,7 @@ set AbundanceGroup::tss_id() const { set s; - foreach (shared_ptr pA, _abundances) + for_each (shared_ptr pA, _abundances) { set sub = pA->tss_id(); s.insert(sub.begin(), sub.end()); @@ -385,7 +385,7 @@ set AbundanceGroup::protein_id() const { set s; - foreach (shared_ptr pA, _abundances) + for_each (shared_ptr pA, _abundances) { set 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 pA, _abundances) + for_each (shared_ptr 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 pA, _abundances) + for_each (shared_ptr 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 ab, _abundances) + for_each (shared_ptr 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 ab, _abundances) + for_each(shared_ptr 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 pA, _abundances) + for_each(shared_ptr 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 pA, _abundances) +// for_each(shared_ptr pA, _abundances) // { // double FPKM_hi; // double FPKM_lo; @@ -1732,7 +1732,7 @@ bool AbundanceGroup::calculate_gammas(const vector& nr_alignments, if (mapped_transcripts.empty()) { //gammas = vector(transfrags.size(), 0.0); - foreach (shared_ptr ab, _abundances) + for_each (shared_ptr ab, _abundances) { ab->gamma(0); } @@ -1783,7 +1783,7 @@ bool AbundanceGroup::calculate_gammas(const vector& nr_alignments, if (filtered_transcripts.empty()) { //gammas = vector(transfrags.size(), 0.0); - foreach (shared_ptr ab, _abundances) + for_each (shared_ptr 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 pA, _abundances) + for_each (shared_ptr pA, _abundances) { if (pA->effective_length() > 0) { @@ -2128,7 +2128,7 @@ void AbundanceGroup::calculate_kappas() } //fprintf (stderr, "*********\n"); - foreach (shared_ptr pA, _abundances) + for_each (shared_ptr pA, _abundances) { if (S_FPKM > 0) { @@ -2201,7 +2201,7 @@ void get_alignments_from_scaffolds(const vector >& abundan { set hits_in_gene_set; - foreach(shared_ptr pA, abundances) + for_each(shared_ptr pA, abundances) { shared_ptr pS = pA->transfrag(); assert (pS); @@ -2787,7 +2787,7 @@ AbundanceStatus empirical_mean_replicate_gamma_mle(const vector(N,N); ublas::vector expected_mle_gamma = ublas::zero_vector(N); // - foreach(ublas::vector& mle, mle_gammas) + for_each(ublas::vector& mle, mle_gammas) { expected_mle_gamma += mle; } @@ -3122,7 +3122,7 @@ AbundanceStatus bootstrap_gamma_mle(const vector >& transc gamma_covariance = ublas::zero_matrix(N,N); ublas::vector expected_mle_gamma = ublas::zero_vector(N); - foreach(ublas::vector& mle, mle_gammas) + for_each(ublas::vector& mle, mle_gammas) { //cerr << "MLE # "<< MLENUM++ << endl; //cerr << mle << endl; @@ -3586,7 +3586,7 @@ AbundanceStatus gamma_mle(const vector >& 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 >& 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 startHist(transcript.length()+1, 0.0); // +1 catches overhangs vector 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 s, ref_mRNAs) + for_each (shared_ptr 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())); vector& 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 >& bundle_ref_scaffs = ref_scaffolds(); - foreach(shared_ptr& ref_scaff, bundle_ref_scaffs) + for_each(shared_ptr& 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 >& bundle_ref_scaffs = ref_scaffolds(); - foreach(shared_ptr& ref_scaff, bundle_ref_scaffs) + for_each(shared_ptr& 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 ref_scaff, ref_mRNAs) + for_each(shared_ptr 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 -#define foreach BOOST_FOREACH -#define reverse_foreach BOOST_REVERSE_FOREACH +#define for_each BOOST_FOREACH +#define reverse_for_each BOOST_REVERSE_FOREACH #include #include 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 >& gene = grouped_scaffolds[i]; vector gene_scaffs; string gene_id; - foreach (shared_ptr s, gene) + for_each (shared_ptr 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 s, gene) + for_each (shared_ptr s, gene) { /* *transfrag, @@ -224,7 +224,7 @@ void compress_genes(FILE* ftranscripts, int gmax = -1; int gmin = numeric_limits::max(); - foreach (shared_ptr s, gene) + for_each (shared_ptr 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 s, gene) + for_each (shared_ptr s, gene) { if (s->left() > gmin) { @@ -347,7 +347,7 @@ void driver(vector ref_gtf_files, FILE* gtf_out) vector > > ref_mRNA_table; vector > > sample_count_table; - foreach (FILE* ref_gtf, ref_gtf_files) + for_each (FILE* ref_gtf, ref_gtf_files) { vector > ref_mRNAs; ::load_ref_rnas(ref_gtf, rt, ref_mRNAs, false, true); @@ -393,7 +393,7 @@ int main(int argc, char** argv) vector 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& 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& sam_hit_filename_list ::load_ref_rnas(mask_gtf, rt, mask_rnas, false, false); } - foreach (shared_ptr fac, bundle_factories) + for_each (shared_ptr 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& sam_hit_filename_list int tmp_max_frag_len = 0; ProgressBar p_bar("Inspecting maps and determining fragment length distributions.",0); - foreach (shared_ptr fac, bundle_factories) + for_each (shared_ptr fac, bundle_factories) { #if ENABLE_THREADS while(1) @@ -877,7 +877,7 @@ void driver(FILE* ref_gtf, FILE* mask_gtf, vector& sam_hit_filename_list { long double total_mass = 0.0; long double total_norm_mass = 0.0; - foreach (shared_ptr rg, all_read_groups) + for_each (shared_ptr 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& sam_hit_filename_list if (total_mass > 0) { double scaling_factor = total_mass / total_norm_mass; - foreach (shared_ptr rg, all_read_groups) + for_each (shared_ptr 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& sam_hit_filename_list if (most_reps != 1 && poisson_dispersion == false) { - foreach (shared_ptr fac, bundle_factories) + for_each (shared_ptr fac, bundle_factories) { if (fac->num_replicates() == 1) { @@ -990,7 +990,7 @@ void driver(FILE* ref_gtf, FILE* mask_gtf, vector& sam_hit_filename_list shared_ptr disperser; disperser = fit_dispersion_model("pooled", scale_factors, sample_count_table); - foreach (shared_ptr rg_props, all_read_groups) + for_each (shared_ptr rg_props, all_read_groups) { rg_props->mass_dispersion_model(disperser); } @@ -999,7 +999,7 @@ void driver(FILE* ref_gtf, FILE* mask_gtf, vector& sam_hit_filename_list long double total_norm_mass = 0.0; long double total_mass = 0.0; - foreach (shared_ptr rg_props, all_read_groups) + for_each (shared_ptr 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& 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 rg_props, all_read_groups) + for_each (shared_ptr 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& sam_hit_filename_list shared_ptr > > abundances(new vector >()); quantitate_next_locus(rt, bundle_factories, test_launcher); bool more_loci_remain = false; - foreach (shared_ptr rep_fac, bundle_factories) + for_each (shared_ptr rep_fac, bundle_factories) { if (rep_fac->bundles_remain()) { @@ -1071,7 +1071,7 @@ void driver(FILE* ref_gtf, FILE* mask_gtf, vector& sam_hit_filename_list } } - foreach (shared_ptr rep_fac, bundle_factories) + for_each (shared_ptr rep_fac, bundle_factories) { rep_fac->reset(); } @@ -1081,9 +1081,9 @@ void driver(FILE* ref_gtf, FILE* mask_gtf, vector& sam_hit_filename_list if (corr_bias) { p_bar = ProgressBar("Learning bias parameters.", 0); - foreach (shared_ptr rep_fac, bundle_factories) + for_each (shared_ptr rep_fac, bundle_factories) { - foreach (shared_ptr fac, rep_fac->factories()) + for_each (shared_ptr fac, rep_fac->factories()) { #if ENABLE_THREADS while(1) @@ -1124,7 +1124,7 @@ void driver(FILE* ref_gtf, FILE* mask_gtf, vector& sam_hit_filename_list boost::this_thread::sleep(boost::posix_time::milliseconds(5)); } #endif - foreach (shared_ptr rep_fac, bundle_factories) + for_each (shared_ptr rep_fac, bundle_factories) { rep_fac->reset(); } @@ -1167,7 +1167,7 @@ void driver(FILE* ref_gtf, FILE* mask_gtf, vector& sam_hit_filename_list //shared_ptr > > abundances(new vector >()); quantitate_next_locus(rt, bundle_factories, test_launcher); bool more_loci_remain = false; - foreach (shared_ptr rep_fac, bundle_factories) + for_each (shared_ptr 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& lhs, { for(size_t l = 0; l < lhs.size(); ++l) { - foreach(shared_ptr ref_scaff, *ref_scaffs) + for_each(shared_ptr 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& lhs, } for(size_t r = 0; r < rhs.size(); ++r) { - foreach(shared_ptr ref_scaff, *ref_scaffs) + for_each(shared_ptr 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 pseudohits; - foreach(shared_ptr ref_scaff, *ref_scaffs) + for_each(shared_ptr 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(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 ab, transfrag_cluster.abundances()) + for_each(shared_ptr ab, transfrag_cluster.abundances()) { ab->status(NUMERIC_HI_DATA); } @@ -939,7 +939,7 @@ void quantitate_transcript_cluster(AbundanceGroup& transfrag_cluster, { shared_ptr ab_i = abundances[i]; bool found = false; - foreach (shared_ptr ab_j, filtered_transcripts) + for_each (shared_ptr 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 transfrags_by_gene; @@ -974,7 +974,7 @@ void quantitate_transcript_cluster(AbundanceGroup& transfrag_cluster, cluster_transcripts(strand_group, transfrags_by_gene); } - foreach(const AbundanceGroup& gene, transfrags_by_gene) + for_each(const AbundanceGroup& gene, transfrags_by_gene) { const vector >& iso_abundances = gene.abundances(); vector isoforms; @@ -985,7 +985,7 @@ void quantitate_transcript_cluster(AbundanceGroup& transfrag_cluster, string ref_gene_id = ""; double major_isoform_FPKM = 0; - foreach (shared_ptr iso_ab, iso_abundances) + for_each (shared_ptr 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 iso_ab, iso_abundances) + for_each (shared_ptr 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 >& scaffolds, { vector c; scaffolds[i]->get_complete_subscaffolds(c); - foreach (Scaffold& s, c) + for_each (Scaffold& s, c) { split_partials.push_back(shared_ptr(new Scaffold(s))); } @@ -1076,7 +1076,7 @@ void quantitate_transcript_clusters(vector >& scaffolds, scaffolds = split_partials; vector > abundances; - foreach(shared_ptr s, scaffolds) + for_each(shared_ptr s, scaffolds) { TranscriptAbundance* pT = new TranscriptAbundance; pT->transfrag(s); @@ -1091,7 +1091,7 @@ void quantitate_transcript_clusters(vector >& scaffolds, cluster_transcripts(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(); - 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 ref_scaff, ref_mRNAs) + for_each(shared_ptr 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 >& abundances) { - foreach (shared_ptr ab, abundances) + for_each (shared_ptr ab, abundances) { if (!ab) { @@ -436,7 +436,7 @@ pair get_de_tests(const string& description, // ublas::vector null_kappa_mean; // null_kappa_mean = ublas::zero_vector(curr_kappa_cov.size1()); // -// foreach(ublas::vector& sample, samples) +// for_each(ublas::vector& sample, samples) // { // null_kappa_mean += sample; // } @@ -1056,7 +1056,7 @@ void sample_abundance_worker(const string& locus_tag, { vector > abundances; - foreach(shared_ptr s, sample_bundle->ref_scaffolds()) + for_each(shared_ptr 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 ab, abundances) + for_each(shared_ptr ab, abundances) { ab->status(NUMERIC_HI_DATA); } @@ -1093,7 +1093,7 @@ void sample_abundance_worker(const string& locus_tag, cluster_transcripts(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 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 protein_ids = ab_group.protein_id(); @@ -1135,7 +1135,7 @@ void sample_abundance_worker(const string& locus_tag, vector > cds_abundances; double max_cds_mass_variance = 0.0; set > rg_props; - foreach (AbundanceGroup& ab_group, sample.cds) + for_each (AbundanceGroup& ab_group, sample.cds) { cds_abundances.push_back(shared_ptr(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(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 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 tss_ids = ab_group.tss_id(); @@ -1202,7 +1202,7 @@ void sample_abundance_worker(const string& locus_tag, // Group TSS clusters by gene vector > primary_transcript_abundances; set > rg_props; - foreach (AbundanceGroup& ab_group, sample.primary_transcripts) + for_each (AbundanceGroup& ab_group, sample.primary_transcripts) { primary_transcript_abundances.push_back(shared_ptr(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(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 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 s, bundle.ref_scaffolds()) + for_each(shared_ptr s, bundle.ref_scaffolds()) { if (s->annotated_tss_id() == "") { @@ -1439,7 +1439,7 @@ void sample_worker(const RefSequenceTable& rt, /////////////////////////////////////////////// - foreach(shared_ptr ref_scaff, bundle.ref_scaffolds()) + for_each(shared_ptr 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 ab, ab_group.abundances()) + for_each (shared_ptr 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& 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& scaffolds) vector 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& 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& scaffolds) vector 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 >& ref_mRNAs) vector >& gene = grouped_scaffolds[i]; double total_fpkm = 0.0; - foreach(shared_ptr scaff, gene) + for_each(shared_ptr scaff, gene) { total_fpkm += scaff->fpkm(); } if (total_fpkm > 0) { - foreach (shared_ptr scaff, gene) + for_each (shared_ptr scaff, gene) { scaff->fpkm(scaff->fpkm() / total_fpkm); } @@ -263,7 +263,7 @@ void driver(vector ref_gtf_files, FILE* sam_out) vector > > ref_mRNA_table; vector > > sample_count_table; - foreach (FILE* ref_gtf, ref_gtf_files) + for_each (FILE* ref_gtf, ref_gtf_files) { vector > ref_mRNAs; ::load_ref_rnas(ref_gtf, rt, ref_mRNAs, false, true); @@ -314,7 +314,7 @@ int main(int argc, char** argv) vector 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& 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& 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 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 fac, _factories) + for_each (boost::shared_ptr fac, _factories) { if (fac->bundles_remain()) return true; @@ -115,7 +115,7 @@ public: std::vector bundles; bool non_empty_bundle = false; - foreach (boost::shared_ptr fac, _factories) + for_each (boost::shared_ptr 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 fac, _factories) + for_each (shared_ptr fac, _factories) { fac->reset(); } @@ -246,7 +246,7 @@ public: shared_ptr disperser; disperser = fit_dispersion_model(_condition_name,scale_factors, sample_count_table); - foreach (shared_ptr fac, _factories) + for_each (shared_ptr fac, _factories) { shared_ptr 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 fac, _factories) + for_each(shared_ptr 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 fac, _factories) + for_each(shared_ptr 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& fac, _factories) + for_each(shared_ptr& 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& 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& 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& filler) vector 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& filler) AugmentedCuffOp::merge_ops(tmp_filler, padded_filler, false); vector 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& complete) // const vector& 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 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 >* 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 >* ref_scaffs) con if (ref_scaffs == NULL) return false; - foreach (shared_ptr ref_scaff, *ref_scaffs) + for_each (shared_ptr 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 hit_introns; set 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& hit_introns) const { set 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(); }