Rosetta
Functions | Variables
erraser2.cc File Reference

a single erraser app. no python! More...

#include <protocols/viewer/viewers.hh>
#include <protocols/stepwise/monte_carlo/options/StepWiseMonteCarloOptions.hh>
#include <protocols/stepwise/monte_carlo/mover/StepWiseMasterMover.hh>
#include <core/types.hh>
#include <devel/init.hh>
#include <core/scoring/ScoreFunction.hh>
#include <core/scoring/Energies.hh>
#include <core/scoring/ScoreFunctionFactory.hh>
#include <core/chemical/ChemicalManager.hh>
#include <core/import_pose/pose_stream/PDBPoseInputStream.hh>
#include <core/conformation/Conformation.hh>
#include <core/pose/Pose.hh>
#include <core/pose/PDBInfo.hh>
#include <core/pose/full_model_info/FullModelInfo.hh>
#include <core/import_pose/FullModelPoseBuilder.hh>
#include <protocols/rna/movers/ErraserMinimizerMover.hh>
#include <core/pose/rna/RNA_SuiteName.hh>
#include <utility/file/file_sys_util.hh>
#include <basic/Tracer.hh>
#include <basic/options/option.hh>
#include <basic/options/option_macros.hh>
#include <basic/options/keys/OptionKeys.hh>
#include <basic/options/keys/in.OptionKeys.gen.hh>
#include <basic/options/keys/out.OptionKeys.gen.hh>
#include <basic/options/keys/rna.OptionKeys.gen.hh>
#include <basic/options/keys/score.OptionKeys.gen.hh>
#include <utility/vector1.hh>
#include <utility/vector1.functions.hh>
#include <utility/excn/Exceptions.hh>
#include <utility/io/izstream.hh>
#include <numeric/random/random.hh>
#include <numeric/random/random_permutation.hh>
#include <core/id/AtomID.hh>
#include <iostream>
#include <string>
#include <core/kinematics/FoldTree.hh>
#include <core/pose/full_model_info/FullModelParameters.hh>
#include <utility/stream_util.hh>

Functions

std::string first_preminimized_namer (std::string const &s, Size const nstruct)
 
std::string second_preminimized_namer (std::string const &s, Size const nstruct)
 
std::string third_preminimized_namer (std::string const &s, Size const nstruct)
 
std::string round_minimized_namer (std::string const &s, Size const ii, Size const nstruct)
 
std::string round_resampled_namer (std::string const &s, Size const ii, Size const nstruct)
 
void fill_input_poses (utility::vector1< PoseOP > &input_poses, std::string const &s)
 
void fill_input_poses_based_on_possible_checkpoints (utility::vector1< PoseOP > &input_poses, Size &checkpoints_to_pass, Size const nstruct)
 
void resample_full_model (Size const resample_round, pose::Pose &start_pose, ScoreFunctionOP const &scorefxn, utility::vector1< Size > const &definite_residues, Size const nstruct)
 
utility::vector1< Sizeall_pose_residues (core::pose::Pose const &pose)
 
void show_accuracy_report (pose::Pose const &start_pose, std::string const &tag, Size const round)
 
utility::vector1< Sizeanalyze_poses_for_convergence (utility::vector1< pose::Pose > const &poses)
 
PoseOP obtain_start_pose (Size const nstruct, utility::vector1< Size > &unconverged_res, Size &checkpoints_to_pass)
 
void do_erraser2 (Size const nstruct, ScoreFunctionOP const &scorefxn, int const rank, int const nproc, bool const work_partition=true)
 Perform the erraser2 protocol in a working directory. More...
 
void erraser2_test ()
 
bool atoms_have_bond_to_bonded_atoms (pose::Pose const &pose, Size const ai, Size const ii, Size const aj, Size const jj)
 
bool atoms_have_mutual_bond_to_atom (pose::Pose const &pose, Size const ai, Size const ii, Size const aj, Size const jj)
 
bool bump_check (pose::Pose const &pose, Size const ii)
 
utility::vector1< Sizedetermine_residues_to_rebuild (utility::vector1< Size > const &definite_residues, pose::Pose const &start_pose)
 
mover::StepWiseMasterMover configure_master_mover (ScoreFunctionOP const &scorefxn, Pose const &start_pose)
 
void * my_main (void *)
 
int main (int argc, char *argv[])
 

Variables

static basic::Tracer TR ("apps.public.rna.erraser.erraser2")
 

Detailed Description

a single erraser app. no python!

Author
Andy Watkins, amw57.nosp@m.9@st.nosp@m.anfor.nosp@m.d.ed.nosp@m.u

Function Documentation

◆ all_pose_residues()

utility::vector1< Size > all_pose_residues ( core::pose::Pose const &  pose)

◆ analyze_poses_for_convergence()

utility::vector1< Size > analyze_poses_for_convergence ( utility::vector1< pose::Pose > const &  poses)

◆ atoms_have_bond_to_bonded_atoms()

bool atoms_have_bond_to_bonded_atoms ( pose::Pose const &  pose,
Size const  ai,
Size const  ii,
Size const  aj,
Size const  jj 
)

◆ atoms_have_mutual_bond_to_atom()

bool atoms_have_mutual_bond_to_atom ( pose::Pose const &  pose,
Size const  ai,
Size const  ii,
Size const  aj,
Size const  jj 
)

◆ bump_check()

bool bump_check ( pose::Pose const &  pose,
Size const  ii 
)

◆ configure_master_mover()

mover::StepWiseMasterMover configure_master_mover ( ScoreFunctionOP const &  scorefxn,
Pose const &  start_pose 
)

◆ determine_residues_to_rebuild()

utility::vector1< Size > determine_residues_to_rebuild ( utility::vector1< Size > const &  definite_residues,
pose::Pose const &  start_pose 
)

◆ do_erraser2()

void do_erraser2 ( Size const  nstruct,
ScoreFunctionOP const &  scorefxn,
int const  rank,
int const  nproc,
bool const  work_partition = true 
)

Perform the erraser2 protocol in a working directory.

This function also does pose readin (because it could be resuming from checkpoints). In MPI contexts, this function is run on every core. (We use a work-partition job distribution framework by default, where each core is just assigned a fixed set of nstruct.) As a result, it needs to take two ints, which represent its rank and the total number of processors. Since MPI libraries use signed ints, we follow their convention rather than contorting ourselves to make them Sizes.

References basic::options::OptionKeys::constraints::constraints, debug_assert, first_preminimized_namer(), in::file::fold_tree(), foo(), create_a3b_hbs::ii, cal_vdw_radius_pool::nproc, local::nstruct, obtain_start_pose(), basic::options::option, option, basic::options::OptionKeys::legacy_sewing::rank, resample_full_model(), round_minimized_namer(), round_resampled_namer(), basic::options::OptionKeys::lh::rounds, runtime_assert, in::file::s(), oop_conformations::scorefxn, second_preminimized_namer(), show_accuracy_report(), TR, basic::options::OptionKeys::inout::dbms::user, and value.

Referenced by erraser2_test().

◆ erraser2_test()

void erraser2_test ( )

◆ fill_input_poses()

void fill_input_poses ( utility::vector1< PoseOP > &  input_poses,
std::string const &  s 
)

◆ fill_input_poses_based_on_possible_checkpoints()

void fill_input_poses_based_on_possible_checkpoints ( utility::vector1< PoseOP > &  input_poses,
Size checkpoints_to_pass,
Size const  nstruct 
)

This function looks in the current working directory to see if there are any checkpoint files. (These are based off the name of option[ in::file::s ](). In fact, we have now abstracted those naming systems into functions. It sets the 'checkpoints_to_pass' counter to the number of checkpointing opportunities that can be crossed now that we have recovered a file with this type of name...

References file_exists(), fill_input_poses(), first_preminimized_namer(), local::nstruct, option, round(), round_minimized_namer(), round_resampled_namer(), basic::options::OptionKeys::lh::rounds, in::file::s(), second_preminimized_namer(), third_preminimized_namer(), and value.

Referenced by obtain_start_pose().

◆ first_preminimized_namer()

std::string first_preminimized_namer ( std::string const &  s,
Size const  nstruct 
)

◆ main()

int main ( int  argc,
char *  argv[] 
)

◆ my_main()

void* my_main ( void *  )

◆ obtain_start_pose()

PoseOP obtain_start_pose ( Size const  nstruct,
utility::vector1< Size > &  unconverged_res,
Size checkpoints_to_pass 
)

◆ resample_full_model()

void resample_full_model ( Size const  resample_round,
pose::Pose start_pose,
ScoreFunctionOP const &  scorefxn,
utility::vector1< Size > const &  definite_residues,
Size const  nstruct 
)

◆ round_minimized_namer()

std::string round_minimized_namer ( std::string const &  s,
Size const  ii,
Size const  nstruct 
)

◆ round_resampled_namer()

std::string round_resampled_namer ( std::string const &  s,
Size const  ii,
Size const  nstruct 
)

◆ second_preminimized_namer()

std::string second_preminimized_namer ( std::string const &  s,
Size const  nstruct 
)

◆ show_accuracy_report()

void show_accuracy_report ( pose::Pose const &  start_pose,
std::string const &  tag,
Size const  round 
)

References create_a3b_hbs::ii, round(), tag, and TR.

Referenced by do_erraser2().

◆ third_preminimized_namer()

std::string third_preminimized_namer ( std::string const &  s,
Size const  nstruct 
)

Variable Documentation

◆ TR

basic::Tracer TR("apps.public.rna.erraser.erraser2") ( "apps.public.rna.erraser.erraser2"  )
static