From 349a3f409fdc85412cfd7cb6faf70c749b455300 Mon Sep 17 00:00:00 2001 From: lyskov-ai <277346777+lyskov-ai@users.noreply.github.com> Date: Fri, 15 May 2026 19:19:47 -0400 Subject: [PATCH] Fix off-by-one loops over 1-indexed residue/atom/element ranges MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace `i < container.size()` with `i <= container.size()` (or the matching `i < pose.size()` -> `i <= pose.size()`) across 35 loops where the body uses `i` as a direct 1-indexed element accessor (`pose.residue(i)`, `vec[i]`, etc.) — so the last residue/atom/element was silently being skipped. Also fixes two related copy-paste bugs in pose_sewing that surfaced during the audit: the distance check `pose.residue(upstream_res).xyz(2) .distance(pose.residue(upstream_res).xyz(2))` was self-distance (always zero, condition always satisfied) — should compare upstream vs downstream residue xyz. Affects helix_pair detection in BlockwiseAnalysisMover and OmnibusDisulfideAnalysisLabelerMover. Skipped candidates: loops with pair access `[i+1]` (correct stop at size-1), cutpoint-style "between residues" loops, MEM-chain-skipping loops in protocols/membrane, separator-style "all-but-last + last raw" patterns, suite/connection enumerations (N-1 connections for N segments), and commented-out code. --- source/src/core/energy_methods/RNA_LJ_BaseEnergy.cc | 2 +- .../io/pose_to_sfr/PoseToStructFileRepConverter.cc | 2 +- .../core/pack/interaction_graph/SurfacePotential.cc | 6 +++--- source/src/core/pose/rna/util.cc | 2 +- .../select/residue_selector/JumpUpstreamSelector.cc | 2 +- .../antibody/residue_selector/CDRResidueSelector.cc | 2 +- .../mc_convergence_checks/HierarchicalLevel.cc | 2 +- source/src/protocols/cartesian/md.cc | 4 ++-- source/src/protocols/cutoutdomain/CutOutDomain.cc | 2 +- .../protocols/denovo_design/components/FoldGraph.cc | 2 +- .../docking/DockingEnsemblePrepackProtocol.cc | 4 ++-- source/src/protocols/docking/metrics.cc | 4 ++-- source/src/protocols/enzdes/EnzRepackMinimize.cc | 2 +- .../features/strand_assembly/StrandBundleFeatures.cc | 4 ++-- source/src/protocols/fldsgn/MatchResidues.cc | 4 ++-- source/src/protocols/frag_picker/GrabAllCollector.hh | 2 +- source/src/protocols/frag_picker/VallProvider.cc | 2 +- .../src/protocols/frag_picker/quota/QuotaCollector.cc | 10 +++++----- .../frag_picker/scores/AtomBasedConstraintsScore.cc | 4 ++-- source/src/protocols/jd3/JobGenealogist.cc | 2 +- .../protocols/legacy_sewing/conformation/Assembly.cc | 4 ++-- source/src/protocols/loops/util.cc | 6 +++--- .../match/output/UpstreamDownstreamCollisionFilter.cc | 2 +- source/src/protocols/membrane/MPLipidAccessibility.cc | 4 ++-- source/src/protocols/membrane/util.cc | 1 + source/src/protocols/moves/PyMOLMover.cc | 2 +- .../DecomposeAndReweightEnergiesCalculator.cc | 2 +- .../pose_metric_calculators/SurfaceCalculator.cc | 2 +- .../pose_sewing/movers/BlockwiseAnalysisMover.cc | 8 ++++---- .../movers/OmnibusDisulfideAnalysisLabelerMover.cc | 8 ++++---- source/src/protocols/rna/movers/RNAIdealizeMover.cc | 2 +- source/src/protocols/splice/SampleRotamersFromPDB.cc | 4 ++-- source/src/protocols/splice/SpliceManager.cc | 2 +- .../modeler/rna/StepWiseRNA_WorkingParametersSetup.cc | 2 +- .../UnfoldedStateEnergyCalculatorMover.cc | 2 +- 35 files changed, 58 insertions(+), 57 deletions(-) diff --git a/source/src/core/energy_methods/RNA_LJ_BaseEnergy.cc b/source/src/core/energy_methods/RNA_LJ_BaseEnergy.cc index 271479d5794..2b1f79bfc32 100644 --- a/source/src/core/energy_methods/RNA_LJ_BaseEnergy.cc +++ b/source/src/core/energy_methods/RNA_LJ_BaseEnergy.cc @@ -325,7 +325,7 @@ RNA_LJ_BaseEnergy::eval_atom_energy( Vector const heavy_atom_i( rsd1.xyz( m ) ); - for ( Size j = 1; j < pose.size(); j ++ ) { + for ( Size j = 1; j <= pose.size(); j ++ ) { if ( i == j ) continue; conformation::Residue const & rsd2( pose.residue( j ) ); diff --git a/source/src/core/io/pose_to_sfr/PoseToStructFileRepConverter.cc b/source/src/core/io/pose_to_sfr/PoseToStructFileRepConverter.cc index 860dc717e56..8f30bcadace 100644 --- a/source/src/core/io/pose_to_sfr/PoseToStructFileRepConverter.cc +++ b/source/src/core/io/pose_to_sfr/PoseToStructFileRepConverter.cc @@ -1503,7 +1503,7 @@ PoseToStructFileRepConverter::generate_secondary_structure_informations( core::p core::Size new_tercount( 0 ); //we have to track this for ResidueInformation //Now we are going to iterate through the pose, identifying secondary structure elements - for ( Size ires=1; ires core::chemical::num_canonical_aas ) continue; if ( symm_info && !symm_info->bb_is_independent(res2_position) ) continue; @@ -462,7 +462,7 @@ void SurfacePotential::compute_pose_surface_energy( pose::Pose const & pose, Rea total_surface_energy_ = 0.0; - for ( Size ii=1; ii < residue_surface_energy_.size(); ++ii ) { + for ( Size ii=1; ii <= residue_surface_energy_.size(); ++ii ) { total_surface_energy_ += residue_surface_energy_[ii]; } diff --git a/source/src/core/pose/rna/util.cc b/source/src/core/pose/rna/util.cc index 876fe9410e9..1d2f8aac07e 100644 --- a/source/src/core/pose/rna/util.cc +++ b/source/src/core/pose/rna/util.cc @@ -2058,7 +2058,7 @@ detect_base_contacts( core::pose::Pose const & pose ) { if ( i == j ) continue; if ( ( pose.residue( i ).nbr_atom_xyz() - pose.residue( j ).nbr_atom_xyz() ).length() > NBR_DIST_CUTOFF ) continue; - for ( Size jj = 1; jj < pose.residue_type( j ).nheavyatoms(); jj++ ) { + for ( Size jj = 1; jj <= pose.residue_type( j ).nheavyatoms(); jj++ ) { if ( pose.residue_type( j ).is_virtual( jj ) ) continue; if ( ( pose.residue( i ).xyz( ii ) - pose.residue( j ).xyz( jj ) ).length() < CONTACT_DIST_CUTOFF ) { // TR << "FOUND CONTACT " << pose.pdb_info()->chain(i) << ":" << pose.pdb_info()->number( i ) << " " << pose.residue(i).atom_name(ii) diff --git a/source/src/core/select/residue_selector/JumpUpstreamSelector.cc b/source/src/core/select/residue_selector/JumpUpstreamSelector.cc index e9638116e4d..396944992cf 100644 --- a/source/src/core/select/residue_selector/JumpUpstreamSelector.cc +++ b/source/src/core/select/residue_selector/JumpUpstreamSelector.cc @@ -77,7 +77,7 @@ JumpUpstreamSelector::apply( core::pose::Pose const & pose ) const ObjexxFCL::FArray1D_bool upstream( pose.size() ); pose.fold_tree().partition_by_jump( jump_, upstream ); - for ( core::Size ii = 1; ii < upstream.size(); ++ii ) { + for ( core::Size ii = 1; ii <= upstream.size(); ++ii ) { subset[ ii ] = upstream( ii ); } return subset; diff --git a/source/src/protocols/antibody/residue_selector/CDRResidueSelector.cc b/source/src/protocols/antibody/residue_selector/CDRResidueSelector.cc index 592c94a7f96..993c1a0db71 100644 --- a/source/src/protocols/antibody/residue_selector/CDRResidueSelector.cc +++ b/source/src/protocols/antibody/residue_selector/CDRResidueSelector.cc @@ -130,7 +130,7 @@ void CDRResidueSelector::set_cdrs( utility::vector1< CDRNameEnum > cdrs ){ cdrs_.clear(); cdrs_.resize(8, false); - for ( core::Size i = 1; i < cdrs.size(); ++i ) { + for ( core::Size i = 1; i <= cdrs.size(); ++i ) { cdrs_[ cdrs[ i ] ] = true; } } diff --git a/source/src/protocols/canonical_sampling/mc_convergence_checks/HierarchicalLevel.cc b/source/src/protocols/canonical_sampling/mc_convergence_checks/HierarchicalLevel.cc index ce7da4ccb58..08427391561 100644 --- a/source/src/protocols/canonical_sampling/mc_convergence_checks/HierarchicalLevel.cc +++ b/source/src/protocols/canonical_sampling/mc_convergence_checks/HierarchicalLevel.cc @@ -307,7 +307,7 @@ HierarchicalLevel::num_matching_levels( utility::vector1< core::Size > & address utility::vector1< core::Size > & address2 ){ runtime_assert( address1.size() == address2.size() ); core::Size num_matching_levels = 0; - for ( core::Size ii = 1; ii < address1.size(); ii++ ) { + for ( core::Size ii = 1; ii <= address1.size(); ii++ ) { if ( address1[ ii ] == address2[ ii ] ) { num_matching_levels++; } diff --git a/source/src/protocols/cartesian/md.cc b/source/src/protocols/cartesian/md.cc index fd6fb901ce6..34ea520ace3 100644 --- a/source/src/protocols/cartesian/md.cc +++ b/source/src/protocols/cartesian/md.cc @@ -1275,7 +1275,7 @@ void MolecularDynamics::applyForces_ConjugateGradient( } } else { // this block is for Step == 0 - its just a standard SD Step - for ( core::Size i = 1; i < cartom.size(); i++ ) { + for ( core::Size i = 1; i <= cartom.size(); i++ ) { cartom[i].old_position = cartom[i].position; // save position (old position = current position) cartom[i].old_force = cartom[i].force * forcemul; // save old forces cartom[i].old_velocity = -cartom[i].force * forcemul; // save old directions, equal to old force @@ -1483,7 +1483,7 @@ void MolecularDynamics::testCartesianDerivatives( core::scoring::ScoreFunction c } - for ( core::Size i = 1; i < cartom.size(); i++ ) { + for ( core::Size i = 1; i <= cartom.size(); i++ ) { if ( ( fabs( cartom[i].force.x() - numeriv[i].x() ) > 0.1 ) || ( fabs( cartom[i].force.y() - numeriv[i].y() ) > 0.1 ) || diff --git a/source/src/protocols/cutoutdomain/CutOutDomain.cc b/source/src/protocols/cutoutdomain/CutOutDomain.cc index 8508ae45ec4..e8c951c8644 100644 --- a/source/src/protocols/cutoutdomain/CutOutDomain.cc +++ b/source/src/protocols/cutoutdomain/CutOutDomain.cc @@ -90,7 +90,7 @@ core::Size CutOutDomain::find_nearest_res( core::pose::Pose const & source, core::pose::Pose const & target, core::Size const res, core::Size const chain/*=0*/ ){ core::Real min_dist( 100000 ); core::Size nearest_res( 0 ); core::Size i; - for ( i = 1; i < target.size(); ++i ) { + for ( i = 1; i <= target.size(); ++i ) { if ( target.residue( i ).is_ligand() ) continue; if ( chain && target.residue( i ).chain() != chain ) continue; // TR<<"the residue examnied is:"<create_enzdes_movemap( pose, task_, minimize_prot_jumps_ ); core::scoring::ScoreFunctionCOP br_scorefxn = scorefxn_minimize_; utility::vector1 residues; - for ( core::Size i =1; iget_bb(i) ) residues.push_back(i); } TR<<"Now Backrub minimizing: min_sc "< dis_sc_sc ) { temp_shortest_dis = dis_sc_sc; diff --git a/source/src/protocols/fldsgn/MatchResidues.cc b/source/src/protocols/fldsgn/MatchResidues.cc index 6afccf812dc..e6b8b95c120 100644 --- a/source/src/protocols/fldsgn/MatchResidues.cc +++ b/source/src/protocols/fldsgn/MatchResidues.cc @@ -62,7 +62,7 @@ core::Real MatchResidues::compute_comb( core::pose::Pose const & pose, VecSize const & comb ) const { std::map< core::id::AtomID, core::id::AtomID > atom_id_map; - for ( core::Size i = 1; i < comb.size(); i++ ) { + for ( core::Size i = 1; i <= comb.size(); i++ ) { const core::id::AtomID mod_id(pose.residue_type( comb[i] ).atom_index( "CA" ), comb[i] ); const core::id::AtomID ref_id(pose.residue_type( reference_residues_indexes_[i] ).atom_index( "CA" ), reference_residues_indexes_[i]); atom_id_map.insert( std::make_pair(mod_id, ref_id) ); @@ -75,7 +75,7 @@ MatchResidues::superimpose_comb( core::pose::Pose & pose, VecSize const & comb ) { core::id::AtomID_Map< core::id::AtomID > atom_map; core::pose::initialize_atomid_map( atom_map, pose, core::id::AtomID::BOGUS_ATOM_ID() ); - for ( core::Size i = 1; i < comb.size(); ++i ) { + for ( core::Size i = 1; i <= comb.size(); ++i ) { const core::id::AtomID mod_id(pose.residue_type( comb[i] ).atom_index( "CA" ), comb[i] ); const core::id::AtomID ref_id(pose.residue_type( reference_residues_indexes_[i] ).atom_index( "CA" ), reference_residues_indexes_[i]); atom_map.set( mod_id, ref_id); diff --git a/source/src/protocols/frag_picker/GrabAllCollector.hh b/source/src/protocols/frag_picker/GrabAllCollector.hh index 67209136fa0..7a75c17ad1c 100644 --- a/source/src/protocols/frag_picker/GrabAllCollector.hh +++ b/source/src/protocols/frag_picker/GrabAllCollector.hh @@ -66,7 +66,7 @@ public: inline void clear() override { - for ( core::Size i=1; iget_chain_id() != chain_id ) { continue; } - for ( core::Size j = 1; j < c->size(); ++j ) { + for ( core::Size j = 1; j <= c->size(); ++j ) { if ( c->at(j)->resi() == residue_id ) { return c; } diff --git a/source/src/protocols/frag_picker/quota/QuotaCollector.cc b/source/src/protocols/frag_picker/quota/QuotaCollector.cc index bf0ecc8cc19..c2fdcfc3947 100644 --- a/source/src/protocols/frag_picker/quota/QuotaCollector.cc +++ b/source/src/protocols/frag_picker/quota/QuotaCollector.cc @@ -51,9 +51,9 @@ bool QuotaCollector::add(std::pairget_pool_name() << "(" << std::setw(3) << storage_[i][j]->total_size() << ") "; } where << std::endl; @@ -64,7 +64,7 @@ void QuotaCollector::list_pools(std::ostream & where) const { void QuotaCollector::clear() { for ( core::Size i=1; i<=storage_.size(); ++i ) { - for ( core::Size j=1; jclear(); } } @@ -73,7 +73,7 @@ void QuotaCollector::clear() { core::Size QuotaCollector::count_candidates(core::Size pos) const { core::Size cnt = 0; - for ( core::Size j=1; jcount_candidates(); } @@ -83,7 +83,7 @@ core::Size QuotaCollector::count_candidates(core::Size pos) const { core::Size QuotaCollector::count_candidates() const { core::Size cnt = 0; for ( core::Size i=1; i<=storage_.size(); ++i ) { - for ( core::Size j=1; jcount_candidates(); } } diff --git a/source/src/protocols/frag_picker/scores/AtomBasedConstraintsScore.cc b/source/src/protocols/frag_picker/scores/AtomBasedConstraintsScore.cc index 80b7d3f0a7d..71417799240 100644 --- a/source/src/protocols/frag_picker/scores/AtomBasedConstraintsScore.cc +++ b/source/src/protocols/frag_picker/scores/AtomBasedConstraintsScore.cc @@ -46,7 +46,7 @@ AtomBasedConstraintsScore::AtomBasedConstraintsScore(core::Size priority, CachingScoringMethod(priority, lowest_acceptable_value, use_lowest, score_name) { query_size_ = query_size; - for ( core::Size i = 1; i < constrainable_atoms.size(); ++i ) { + for ( core::Size i = 1; i <= constrainable_atoms.size(); ++i ) { constrainable_atoms_.insert(std::pair( constrainable_atoms[i], i)); } @@ -97,7 +97,7 @@ void AtomBasedConstraintsScore::do_caching(VallChunkOP chunk) { utility::vector1 flag_row(constrainable_atoms_.size()); utility::vector1 > row( constrainable_atoms_.size()); - for ( core::Size j = 1; j < constrainable_atoms_.size(); ++j ) { + for ( core::Size j = 1; j <= constrainable_atoms_.size(); ++j ) { flag_row[j] = false; row[j] = empty_one; } diff --git a/source/src/protocols/jd3/JobGenealogist.cc b/source/src/protocols/jd3/JobGenealogist.cc index 1cfef3d7066..1f8fe97ed4a 100644 --- a/source/src/protocols/jd3/JobGenealogist.cc +++ b/source/src/protocols/jd3/JobGenealogist.cc @@ -437,7 +437,7 @@ JobGenealogist::newick_tree() const { utility::vector1< std::list< JGResultNodeCAP > > parentless_results_for_input_source; parentless_results_for_input_source.resize( num_input_sources_ ); - for ( unsigned int i = 1; i < job_nodes_for_dag_node_.size(); ++i ) { + for ( unsigned int i = 1; i <= job_nodes_for_dag_node_.size(); ++i ) { for ( auto const & job_node_cop : job_nodes_for_dag_node_[ i ] ) { debug_assert( job_node_cop != nullptr ); if ( job_node_cop->parents().empty() ) { diff --git a/source/src/protocols/legacy_sewing/conformation/Assembly.cc b/source/src/protocols/legacy_sewing/conformation/Assembly.cc index 58398aa8f23..b0e3228499e 100644 --- a/source/src/protocols/legacy_sewing/conformation/Assembly.cc +++ b/source/src/protocols/legacy_sewing/conformation/Assembly.cc @@ -1259,7 +1259,7 @@ Assembly::natives_select( utility::vector1 Assembly::pose_loop_anchors() const { utility::vector1 loop_anchors; - for ( core::Size i=1; i Assembly::disconnected_segments() const { utility::vector1 disconnected_segments; - for ( core::Size i=1; i all_loop_list; - for ( core::Size i = 1; i < nres; i ++ ) { + for ( core::Size i = 1; i <= nres; i ++ ) { if ( loops.is_loop_residue(i) ) all_loop_list.push_back( i ); } scorefxn(pose); @@ -241,7 +241,7 @@ void addScoresForLoopParts( } utility::vector1< core::Size > loop_list; utility::vector1< core::Size > non_loop_list; - for ( core::Size i = 1; i < nres; i ++ ) { + for ( core::Size i = 1; i <= nres; i ++ ) { if ( ( i < loops[l].start() ) || ( i > loops[l].stop() ) ) { loop_list.push_back( i ); } else { @@ -544,7 +544,7 @@ protocols::loops::Loops find_non_protein_chunks(core::pose::Pose const & pose) { Loop new_loop; bool chunk_started = false; - for ( core::Size ires = 1; ires < pose.size(); ++ires ) { + for ( core::Size ires = 1; ires <= pose.size(); ++ires ) { if ( pose.residue_type(ires).is_protein() ) continue; if ( !chunk_started ) { new_loop.set_start(ires); diff --git a/source/src/protocols/match/output/UpstreamDownstreamCollisionFilter.cc b/source/src/protocols/match/output/UpstreamDownstreamCollisionFilter.cc index 9783c17fe7b..79c376025eb 100644 --- a/source/src/protocols/match/output/UpstreamDownstreamCollisionFilter.cc +++ b/source/src/protocols/match/output/UpstreamDownstreamCollisionFilter.cc @@ -158,7 +158,7 @@ bool UpstreamDownstreamCollisionFilter::passes_etable_filter( match_dspos1 const using namespace core::scoring; EnergyMap emap; - for ( core::Size ii = 1; ii < m.upstream_hits.size(); ++ii ) { + for ( core::Size ii = 1; ii <= m.upstream_hits.size(); ++ii ) { if ( ii == m.originating_geom_cst_for_dspos ) continue; // don't collision check since we've presumably done so already if ( us_ds_chemical_bond_[ ii ] ) continue; for ( core::Size jj = 1; jj <= downstream_pose_->size(); ++jj ) { diff --git a/source/src/protocols/membrane/MPLipidAccessibility.cc b/source/src/protocols/membrane/MPLipidAccessibility.cc index 9fb21cc5bd1..941e3462e01 100644 --- a/source/src/protocols/membrane/MPLipidAccessibility.cc +++ b/source/src/protocols/membrane/MPLipidAccessibility.cc @@ -227,7 +227,7 @@ void MPLipidAccessibility::apply( core::pose::Pose & pose ){ } // go through slices - for ( core::Size s = 1; s < slice_zmin_.size(); ++s ) { + for ( core::Size s = 1; s <= slice_zmin_.size(); ++s ) { // go through residues for ( core::Size r = 1; r <= resi_[ s ].size(); ++r ) { @@ -502,7 +502,7 @@ void MPLipidAccessibility::fill_up_slices( core::pose::Pose & pose ) { void MPLipidAccessibility::compute_slice_com(){ // go through slices and compute COMs - for ( core::Size s = 1; s < slice_zmin_.size(); ++s ) { + for ( core::Size s = 1; s <= slice_zmin_.size(); ++s ) { core::Vector com( 0, 0, 0 ); diff --git a/source/src/protocols/membrane/util.cc b/source/src/protocols/membrane/util.cc index 161d18333cb..a67bcf60b10 100644 --- a/source/src/protocols/membrane/util.cc +++ b/source/src/protocols/membrane/util.cc @@ -616,6 +616,7 @@ core::Size create_membrane_foldtree_anchor_com( core::pose::Pose & pose ) { utility::vector1< core::Size > anchors; // get residues closest to COMs for all chains which will be new jump anchor residues + // needs to < chains.size() because the MEM is an additional chain for ( core::Size i = 1; i < chains.size(); ++i ) { core::Size anchor = rsd_closest_to_chain_com( pose, chains[ i ] ); anchors.push_back( anchor ); diff --git a/source/src/protocols/moves/PyMOLMover.cc b/source/src/protocols/moves/PyMOLMover.cc index 0412bf35ce2..fa0f0a44d3e 100644 --- a/source/src/protocols/moves/PyMOLMover.cc +++ b/source/src/protocols/moves/PyMOLMover.cc @@ -548,7 +548,7 @@ void PyMOLMover::send_membrane_planes( Pose const & pose ) { // Compute radius of gyration of the pose utility::vector1< bool > relevant_residues; relevant_residues.resize( pose.size() ); - for ( core::Size i = 1; i < relevant_residues.size(); ++i ) { + for ( core::Size i = 1; i <= relevant_residues.size(); ++i ) { relevant_residues[i] = true; } diff --git a/source/src/protocols/pose_metric_calculators/DecomposeAndReweightEnergiesCalculator.cc b/source/src/protocols/pose_metric_calculators/DecomposeAndReweightEnergiesCalculator.cc index 75a576c40a9..df8518cb5b1 100644 --- a/source/src/protocols/pose_metric_calculators/DecomposeAndReweightEnergiesCalculator.cc +++ b/source/src/protocols/pose_metric_calculators/DecomposeAndReweightEnergiesCalculator.cc @@ -418,7 +418,7 @@ DecomposeAndReweightEnergiesCalculator::nonzero_weight_score_types() const utility::vector1 score_types; for ( int i = 1; i < core::scoring::n_score_types; ++i ) { - for ( core::Size j = 1; j < weight_map_vector.size(); ++j ) { + for ( core::Size j = 1; j <= weight_map_vector.size(); ++j ) { if ( weight_map_vector[j][core::scoring::ScoreType(i)] ) { score_types.push_back(core::scoring::ScoreType(i)); break; diff --git a/source/src/protocols/pose_metric_calculators/SurfaceCalculator.cc b/source/src/protocols/pose_metric_calculators/SurfaceCalculator.cc index f10a87297b7..405f6384afd 100644 --- a/source/src/protocols/pose_metric_calculators/SurfaceCalculator.cc +++ b/source/src/protocols/pose_metric_calculators/SurfaceCalculator.cc @@ -82,7 +82,7 @@ SurfaceCalculator::print( std::string const & key ) const { } else if ( key == "residue_surface" ) { std::ostringstream ss; ss << "["; - for ( core::Size ii=1; ii < residue_surface_energy_.size(); ++ii ) { + for ( core::Size ii=1; ii <= residue_surface_energy_.size(); ++ii ) { ss << ii << ":"; if ( residue_surface_energy_[ ii ] != 0.00 ) { ss << ObjexxFCL::format::F(8,4, residue_surface_energy_[ ii ]); diff --git a/source/src/protocols/pose_sewing/movers/BlockwiseAnalysisMover.cc b/source/src/protocols/pose_sewing/movers/BlockwiseAnalysisMover.cc index 7c54ec3d8f7..b53a9b115bc 100644 --- a/source/src/protocols/pose_sewing/movers/BlockwiseAnalysisMover.cc +++ b/source/src/protocols/pose_sewing/movers/BlockwiseAnalysisMover.cc @@ -92,11 +92,11 @@ BlockwiseAnalysisMover::apply( core::pose::Pose& pose){ std::pair helix_pair; - for ( core::Size upstream_res = 1; upstream_res < pose.size(); ++upstream_res ) { + for ( core::Size upstream_res = 1; upstream_res <= pose.size(); ++upstream_res ) { if ( pose.secstruct(upstream_res) == 'H' ) { for ( core::Size downstream_res = upstream_res+1; downstream_res <= pose.size(); ++downstream_res ) { if ( pose.secstruct(downstream_res) == 'H' ) { - if ( element_blocks[upstream_res] != element_blocks[downstream_res] && pose.residue(upstream_res).xyz(2).distance(pose.residue(upstream_res).xyz(2)) <= crit_dist_ ) { + if ( element_blocks[upstream_res] != element_blocks[downstream_res] && pose.residue(upstream_res).xyz(2).distance(pose.residue(downstream_res).xyz(2)) <= crit_dist_ ) { helix_pair.first = element_blocks[upstream_res]; helix_pair.second = element_blocks[downstream_res]; helix_pairs.insert(helix_pair); @@ -117,7 +117,7 @@ BlockwiseAnalysisMover::apply( core::pose::Pose& pose){ //core::Size label_res = 1; for ( auto current_pair : helix_pairs ) { scc.Reset(); // this may not be needed anymore, but I'm leaving it here for safety - for ( core::Size current_res = 1; current_res < pose.size(); ++current_res ) { + for ( core::Size current_res = 1; current_res <= pose.size(); ++current_res ) { if ( element_blocks[current_res] == current_pair.first ) { scc.AddResidue( 0, pose.residue(current_res) ); } @@ -134,7 +134,7 @@ BlockwiseAnalysisMover::apply( core::pose::Pose& pose){ d_median = r.distance; has_disulfide = false; core::Size last_upstream_res = 1; - for ( core::Size upstream_res = 1; upstream_res add_reslabel(1,label); - for ( core::Size upstream_res = 1; upstream_res helix_pair; - for ( core::Size upstream_res = 1; upstream_res < pose.size(); ++upstream_res ) { + for ( core::Size upstream_res = 1; upstream_res <= pose.size(); ++upstream_res ) { if ( pose.secstruct(upstream_res) == 'H' ) { for ( core::Size downstream_res = upstream_res+2; downstream_res <= pose.size(); ++downstream_res ) { if ( pose.secstruct(downstream_res) == 'H' ) { - if ( element_blocks[upstream_res] != element_blocks[downstream_res] && pose.residue(upstream_res).xyz(2).distance(pose.residue(upstream_res).xyz(2)) <= crit_dist_ ) { + if ( element_blocks[upstream_res] != element_blocks[downstream_res] && pose.residue(upstream_res).xyz(2).distance(pose.residue(downstream_res).xyz(2)) <= crit_dist_ ) { helix_pair.first = element_blocks[upstream_res]; helix_pair.second = element_blocks[downstream_res]; helix_pairs.insert(helix_pair); @@ -195,7 +195,7 @@ OmnibusDisulfideAnalysisLabelerMover::apply( core::pose::Pose& pose){ utility::vector1< core::Size > selection1; utility::vector1< core::Size > selection2; - for ( core::Size current_res = 1; current_res < pose.size(); ++current_res ) { + for ( core::Size current_res = 1; current_res <= pose.size(); ++current_res ) { if ( element_blocks[current_res] == current_pair.first ) { selection1.push_back(current_res); } diff --git a/source/src/protocols/rna/movers/RNAIdealizeMover.cc b/source/src/protocols/rna/movers/RNAIdealizeMover.cc index ee9a6a5ec17..4de3dadac5e 100644 --- a/source/src/protocols/rna/movers/RNAIdealizeMover.cc +++ b/source/src/protocols/rna/movers/RNAIdealizeMover.cc @@ -237,7 +237,7 @@ RNAIdealizeMover::apply( pose::Pose & pose ) suite_mm->set_jump( true ); protocols::minimization_packing::MinMoverOP minm = utility::pointer::make_shared< protocols::minimization_packing::MinMover >( suite_mm, scorefxn, "lbfgs_armijo_nonmonotone", 0.001, true ); - for ( Size ii = 1; ii < ideal_pose.size(); ++ii ) { + for ( Size ii = 1; ii <= ideal_pose.size(); ++ii ) { for ( Size jj = 1; jj <= ideal_pose.residue_type( ii ).natoms(); ++jj ) { ConstraintOP constraint = utility::pointer::make_shared< CoordinateConstraint >( core::id::AtomID( jj, ii ), core::id::AtomID( 1, my_anchor ), diff --git a/source/src/protocols/splice/SampleRotamersFromPDB.cc b/source/src/protocols/splice/SampleRotamersFromPDB.cc index 6989a6224bd..1ce9bd78534 100644 --- a/source/src/protocols/splice/SampleRotamersFromPDB.cc +++ b/source/src/protocols/splice/SampleRotamersFromPDB.cc @@ -229,7 +229,7 @@ void SampleRotamersFromPDB_RotamerSetOperation::fill_rotamer_matrix_from_db_file } //new_res->set_all_chi(Rots_real); bool res_exsits_in_db = false; - for ( core::Size i=1; isize(); row++ ) { //go over all the PSSM sements provided by the user + for ( core::Size row = 1; row <= seqprof->size(); row++ ) { //go over all the PSSM sements provided by the user utility::vector1< core::Size > cur_prof_row = seqprof->prof_row(row); diff --git a/source/src/protocols/stepwise/legacy/modeler/rna/StepWiseRNA_WorkingParametersSetup.cc b/source/src/protocols/stepwise/legacy/modeler/rna/StepWiseRNA_WorkingParametersSetup.cc index 259c8c04164..200985a32ed 100644 --- a/source/src/protocols/stepwise/legacy/modeler/rna/StepWiseRNA_WorkingParametersSetup.cc +++ b/source/src/protocols/stepwise/legacy/modeler/rna/StepWiseRNA_WorkingParametersSetup.cc @@ -233,7 +233,7 @@ StepWiseWorkingParametersSetup::get_user_input_alignment_res_list( core::Size co ObjexxFCL::FArray1D < bool > const & partition_definition = working_parameters_->partition_definition(); bool contain_non_root_partition_seq_num = false; - for ( core::Size ii = 1; ii < working_alignment.size(); ii++ ) { + for ( core::Size ii = 1; ii <= working_alignment.size(); ii++ ) { if ( partition_definition( working_alignment[ii] ) != partition_definition( root_res ) ) contain_non_root_partition_seq_num = true; } diff --git a/source/src/protocols/unfolded_state_energy_calculator/UnfoldedStateEnergyCalculatorMover.cc b/source/src/protocols/unfolded_state_energy_calculator/UnfoldedStateEnergyCalculatorMover.cc index 377af5629f8..a8781df8b8f 100644 --- a/source/src/protocols/unfolded_state_energy_calculator/UnfoldedStateEnergyCalculatorMover.cc +++ b/source/src/protocols/unfolded_state_energy_calculator/UnfoldedStateEnergyCalculatorMover.cc @@ -116,7 +116,7 @@ UnfoldedStateEnergyCalculatorMover::create_random_fragments( Pose & pose, vector { // get number of protein residues core::Size num_protein_res( 0 ); - for ( core::Size i = 1; i < pose.size(); ++i ) { + for ( core::Size i = 1; i <= pose.size(); ++i ) { if ( pose.residue( i ).type().is_protein() ) { num_protein_res++; }