14 #include <core/types.hh>
15 #include <core/chemical/util.hh>
16 #include <core/scoring/ScoringManager.hh>
17 #include <core/scoring/ScoreFunctionFactory.hh>
18 #include <core/scoring/ScoreFunction.hh>
19 #include <core/init/init.hh>
20 #include <core/pose/Pose.hh>
21 #include <core/pose/full_model_info/FullModelInfo.hh>
22 #include <core/pose/full_model_info/util.hh>
23 #include <core/pose/util.hh>
24 #include <core/io/rna/RNA_DataReader.cc>
25 #include <protocols/stepwise/setup/FullModelInfoSetupFromCommandLine.hh>
26 #include <protocols/stepwise/setup/StepWiseJobDistributor.hh>
27 #include <protocols/stepwise/setup/StepWiseCSA_JobDistributor.hh>
28 #include <protocols/stepwise/setup/StepWiseMonteCarloJobDistributor.hh>
29 #include <protocols/stepwise/monte_carlo/StepWiseMonteCarlo.hh>
30 #include <protocols/stepwise/monte_carlo/options/StepWiseMonteCarloOptions.hh>
31 #include <protocols/stepwise/monte_carlo/util.hh>
32 #include <protocols/stepwise/modeler/util.hh>
33 #include <protocols/stepwise/modeler/file_util.hh>
34 #include <protocols/stepwise/modeler/rna/util.hh>
35 #include <protocols/stepwise/monte_carlo/submotif/SubMotifLibrary.hh>
36 #include <protocols/viewer/viewers.hh>
64 using namespace protocols;
66 using namespace basic::options::OptionKeys;
79 using namespace core::pose::full_model_info;
81 using namespace protocols::stepwise::modeler;
82 using namespace protocols::stepwise::monte_carlo::submotif;
85 using namespace protocols::stepwise::monte_carlo::mover;
90 ResidueTypeSetCAP rsd_set = core::chemical::ChemicalManager::get_instance()->residue_type_set( FA_STANDARD );
95 scorefxn = ScoreFunctionFactory::create_score_function(
"stepwise/rna/rna_lores_for_stepwise.wts" );
96 }
else if ( just_RNA )
scorefxn = ScoreFunctionFactory::create_score_function(
"stepwise/rna/rna_res_level_energy.wts" );
97 else scorefxn = ScoreFunctionFactory::create_score_function(
"stepwise/stepwise_res_level_energy.wts" );
101 PoseOP pose_op = initialize_pose_and_other_poses_from_command_line( rsd_set );
103 initialize_native_and_align_pose(
native_pose, align_pose, rsd_set, pose_op );
114 if (
pose.total_residue() > 0 && test_move.move_type() == NO_MOVE ) ( *
scorefxn )(
pose );
115 Vector center_vector = ( align_pose != 0 ) ? get_center_of_mass( *align_pose ) :
Vector( 0.0 );
116 protocols::viewer::add_conformation_viewer (
pose.conformation(),
"current", 500, 500,
false, ( align_pose != 0 ), center_vector );
119 stepwise_monte_carlo->set_native_pose( align_pose );
120 stepwise_monte_carlo->set_move( test_move );
122 StepWiseMonteCarloOptionsOP
options(
new StepWiseMonteCarloOptions );
123 options->initialize_from_command_line();
124 stepwise_monte_carlo->set_options( options );
125 if ( ( options->from_scratch_frequency() > 0.0 || const_full_model_info( *pose_op ).other_pose_list().size() > 0 ) && !
scorefxn->has_nonzero_weight( other_pose ) )
scorefxn->set_weight( other_pose, 1.0 );
129 stepwise_monte_carlo->set_out_path(
FileName( silent_file ).
path() );
130 stepwise_monte_carlo->set_submotif_library( SubMotifLibraryCOP(
new SubMotifLibrary( rsd_set, options->lores() , options->use_first_jump_for_submotif() ) ) );
133 StepWiseJobDistributorOP stepwise_job_distributor(
new StepWiseMonteCarloJobDistributor( stepwise_monte_carlo, silent_file,
option[
out::nstruct ]() ) );
137 stepwise_job_distributor->set_native_pose(
native_pose );
139 stepwise_job_distributor->initialize(
pose );
141 while ( stepwise_job_distributor->has_another_job() ) {
142 stepwise_job_distributor->apply(
pose );
151 clock_t
const my_main_time_start( clock() );
153 protocols::viewer::clear_conformation_viewers();
154 std::cout <<
"Total time to run " <<
static_cast<Real>( clock() - my_main_time_start ) / CLOCKS_PER_SEC <<
" seconds." << std::endl;
161 main(
int argc,
char * argv [] )
164 std::cout << std::endl <<
"Basic usage: " << argv[0] <<
" -fasta <fasta file with sequence> -s <start pdb> -input_res <input pdb1> [ -native <native pdb file> ] " << std::endl;
165 std::cout << std::endl <<
" Type -help for full slate of options." << std::endl << std::endl;
226 protocols::viewer::viewer_main(
my_main );
229 std::cout <<
"caught exception " << e.
msg() << std::endl;
basic::options::OptionKeys collection
StringOptionKey const silent("out:file:silent")
StringVectorOptionKey const move
virtual std::string const msg() const
BooleanOptionKey const motif_mode
BooleanOptionKey const force_centroid_interaction
RealOptionKey const submotif_frequency
BooleanOptionKey const atr_rep_screen
BooleanOptionKey const scoring
basic::options::OptionKeys collection
IntegerOptionKey const cycles
FileVectorOptionKey const fasta("in:file:fasta")
ResidueChainVectorOptionKey const terminal_res
ResidueChainVectorOptionKey const block_stack_above_res
BooleanOptionKey const enumerate
BooleanOptionKey const allow_internal_local_moves
RealOptionKey const csa_rmsd
BooleanOptionKey const skip_deletions
File name class supporting Windows and UN*X/Linux format names.
RealOptionKey const min_tolerance
BooleanOptionKey const stepwise
basic::options::OptionKeys collection
ResidueChainVectorOptionKey const input_res("in:file:input_res")
BooleanOptionKey const new_move_selector
BooleanOptionKey const allow_skip_bulge
StringOptionKey const min_type
ResidueChainVectorOptionKey const cutpoint_open
void stepwise_monte_carlo()
BooleanOptionKey const integration_test
basic::options::OptionKeys collection
IntegerOptionKey const num_pose_minimize
FileVectorOptionKey const setup
BooleanOptionKey const monte_carlo
BooleanOptionKey const erraser
ResidueChainVectorOptionKey const bulge_res
ResidueChainVectorOptionKey const extra_min_res
BooleanOptionKey const superimpose_over_all
RealOptionKey const switch_focus_frequency
std::vector with 1-based indexing
ResidueChainVectorOptionKey const force_syn_chi_res_list
IntegerOptionKey const csa_bank_size
StringVectorOptionKey const cst_file("constraints:cst_file")
File name class supporting Windows and UN*X/Linux format names.
basic::options::OptionKeys collection
rule< Scanner, options_closure::context_t > options
IntegerOptionKey const num_random_samples
PathVectorOptionKey const path
RealOptionKey const add_delete_frequency
RealOptionKey const temperature
BooleanOptionKey const minimize_rna
int main(int argc, char *argv[])
StringOptionKey const weights("score:weights")
StringOptionKey const align_pdb
RealOptionKey const minimize_single_res_frequency
FileOptionKey const native("in:file:native")
BooleanOptionKey const rebuild_bulge_mode
BooleanOptionKey const csa_output_rounds
ocstream cout(std::cout)
Wrapper around std::cout.
BooleanOptionKey const allow_virtual_side_chains
BooleanOptionKey const exit("options:exit")
vector1: std::vector with 1-based indexing
BooleanOptionKey const preminimize
BooleanOptionKey const overwrite("out:overwrite")
Class for handling user debug/warnings/errors. Use instance of this class instead of 'std::cout' for ...
ResidueChainVectorOptionKey const block_stack_below_res
BooleanOptionKey const virtualize_free_moieties_in_native
basic::options::OptionKeys collection
basic::options::OptionKeys collection
StringVectorOptionKey const other_poses
BooleanOptionKey const lores
BooleanOptionKey const allow_internal_hinge_moves
StringOptionKey const data_file
ResidueChainVectorOptionKey const sample_res
void init()
set global 'init_was_called' to true
Program options global and initialization function.
ResidueChainVectorOptionKey const root_res
BooleanOptionKey const chemical
basic::options::OptionKeys collection
BooleanOptionKey const allow_variable_bond_geometry
BooleanOptionKey const file
RealOptionKey const just_min_after_mutation_frequency
ResidueChainVectorOptionKey const cutpoint_closed
ResidueChainVectorOptionKey const jump_res
StringOptionKey const user
static THREAD_LOCAL basic::Tracer TR("apps.pilot.rhiju.stepwise_monte_carlo")
StringVectorOptionKey const cst_file
ResidueChainVectorOptionKey const virtual_sugar_res
rule< Scanner, option_closure::context_t > option
BooleanOptionKey const corrected_geo
IntegerOptionKey const nstruct("out:nstruct")
StringOptionKey const data_file