15 #include <core/types.hh>
16 #include <core/chemical/AA.hh>
17 #include <core/chemical/ChemicalManager.hh>
18 #include <core/scoring/ScoreFunction.hh>
19 #include <core/scoring/ScoreFunctionFactory.hh>
20 #include <core/scoring/constraints/ConstraintSet.hh>
21 #include <core/scoring/constraints/ConstraintSet.fwd.hh>
22 #include <core/scoring/constraints/ConstraintIO.hh>
23 #include <core/sequence/util.hh>
24 #include <core/import_pose/pose_stream/SilentFilePoseInputStream.hh>
28 #include <protocols/viewer/viewers.hh>
29 #include <core/pose/Pose.hh>
30 #include <core/init/init.hh>
31 #include <core/io/pdb/pose_io.hh>
32 #include <core/io/rna/RNA_DataReader.hh>
37 #include <protocols/farna/RNA_DeNovoProtocol.hh>
38 #include <protocols/farna/options/RNA_DeNovoProtocolOptions.hh>
39 #include <protocols/farna/util.hh>
47 #include <basic/options/keys/out.OptionKeys.gen.hh>
48 #include <basic/options/keys/in.OptionKeys.gen.hh>
49 #include <basic/options/keys/chemical.OptionKeys.gen.hh>
50 #include <basic/options/keys/rna.OptionKeys.gen.hh>
51 #include <basic/options/keys/constraints.OptionKeys.gen.hh>
52 #include <basic/options/keys/score.OptionKeys.gen.hh>
54 #include <core/import_pose/import_pose.hh>
55 #include <core/pose/annotated_sequence.hh>
56 #include <core/sequence/Sequence.hh>
62 using namespace protocols;
63 using namespace basic::options::OptionKeys;
68 core::chemical::ResidueTypeSetCOP rsd_set );
76 using namespace basic::options::OptionKeys;
77 using namespace core::chemical;
78 using namespace core::scoring;
80 using namespace protocols::farna;
87 ResidueTypeSetCOP rsd_set;
88 rsd_set = core::chemical::ChemicalManager::get_instance()->residue_type_set( FA_STANDARD );
97 bool native_exists =
false;
100 native_exists =
true;
103 core::import_pose::pose_from_pdb(
native_pose, *rsd_set, in_path + native_pdb_file );
109 if (
option[ OptionKeys::rna::farna::refine_native ]() ) {
112 std::string
const sequence = core::sequence::read_fasta_file_return_str(
option[ in::file::fasta ]()[1] );
113 core::pose::make_pose_from_sequence( extended_pose, sequence, *rsd_set );
115 set_output_res_and_chain( extended_pose,
option[ OptionKeys::rna::farna::output_res_num ].resnum_and_chain() );
122 ScoreFunctionOP
scorefxn = ScoreFunctionFactory::create_score_function( RNA_LORES_WTS );
124 RNA_DeNovoProtocolOptionsOP
options(
new RNA_DeNovoProtocolOptions);
125 options->initialize_from_command_line();
126 if (
option[ OptionKeys::rna::farna::refine_native ]() ) options->set_refine_pose(
true );
128 protocols::farna::RNA_DeNovoProtocol rna_de_novo_protocol( options );
129 if ( native_exists ) rna_de_novo_protocol.set_native_pose( native_pose_OP );
130 rna_de_novo_protocol.set_refine_pose_list( refine_pose_list );
134 pose.constraint_set( cst_set );
135 for (
Size i = 1; i <= refine_pose_list.size(); ++i ) refine_pose_list[i]->constraint_set( cst_set );
138 if (
option[ OptionKeys::rna::data_file].
user() ) {
139 core::io::rna::RNA_DataReader rna_data_reader( in_path +
option[ OptionKeys::rna::data_file ] );
140 rna_data_reader.fill_rna_data_info( pose );
143 protocols::viewer::add_conformation_viewer( pose.conformation(),
"current", 600, 600 );
147 rna_de_novo_protocol.apply( pose );
155 core::chemical::ResidueTypeSetCOP rsd_set )
159 if ( input_silent_file.size() > 0 ) {
160 core::import_pose::pose_stream::SilentFilePoseInputStream
input( input_silent_file );
161 input.set_order_by_energy(
true );
162 while ( input.has_another_pose() ) {
164 input.fill_pose( *new_pose, *rsd_set );
165 protocols::farna::set_output_res_and_chain( *new_pose, output_res_and_chain );
166 refine_pose_list.push_back( new_pose );
169 return refine_pose_list;
177 protocols::viewer::clear_conformation_viewers();
184 main(
int argc,
char * argv [] )
189 std::cout << std::endl <<
"Basic usage: " << argv[0] <<
" -fasta <fasta file with sequence> [ -native <native pdb file> ] " << std::endl;
190 std::cout << std::endl <<
" Type -help for full slate of options." << std::endl << std::endl;
192 option.add_relevant( in::file::fasta );
193 option.add_relevant( in::file::input_res );
199 option.add_relevant( rna::farna::minimize_rna );
200 option.add_relevant( rna::farna::relax_rna );
201 option.add_relevant( rna::farna::simple_relax );
202 option.add_relevant( rna::farna::ignore_secstruct );
203 option.add_relevant( rna::farna::lores_scorefxn );
204 option.add_relevant( rna::farna::filter_lores_base_pairs );
205 option.add_relevant( rna::farna::filter_lores_base_pairs_early );
206 option.add_relevant( rna::farna::filter_chain_closure );
207 option.add_relevant( rna::farna::filter_chain_closure_halfway );
208 option.add_relevant( rna::farna::filter_chain_closure_distance );
210 option.add_relevant( rna::farna::temperature );
211 option.add_relevant( rna::farna::jump_change_frequency );
213 option.add_relevant( rna::farna::close_loops_after_each_move );
214 option.add_relevant( rna::farna::output_lores_silent_file );
215 option.add_relevant( rna::farna::heat );
217 option.add_relevant( rna::farna::staged_constraints );
218 option.add_relevant( rna::farna::jump_library_file );
219 option.add_relevant( rna::farna::params_file );
220 option.add_relevant( basic::options::OptionKeys::rna::farna::vall_torsions );
221 option.add_relevant( rna::farna::use_1jj2_torsions );
222 option.add_relevant( rna::farna::rna_lores_chainbreak_weight );
223 option.add_relevant( rna::farna::rna_lores_linear_chainbreak_weight );
224 option.add_relevant( rna::farna::allow_bulge );
225 option.add_relevant( rna::farna::allowed_bulge_res );
226 option.add_relevant( rna::farna::allow_consecutive_bulges );
227 option.add_relevant( rna::farna::binary_output );
228 option.add_relevant( rna::farna::move_first_rigid_body );
229 option.add_relevant( rna::farna::root_at_first_rigid_body );
230 option.add_relevant( rna::farna::suppress_bp_constraint );
231 option.add_relevant( rna::farna::output_filters );
232 option.add_relevant( rna::farna::autofilter );
233 option.add_relevant( rna::farna::output_res_num );
234 option.add_relevant( rna::farna::refine_silent_file );
235 option.add_relevant( rna::farna::refine_native );
236 option.add_relevant( rna::farna::bps_moves );
237 option.add_relevant( rna::vary_geometry );
238 option.add_relevant( basic::options::OptionKeys::rna::data_file );
239 option.add_relevant( rna::farna::minimize::minimizer_use_coordinate_constraints );
240 option.add_relevant( rna::farna::minimize::extra_minimize_res );
241 option.add_relevant( rna::farna::minimize::extra_minimize_chi_res );
242 option.add_relevant( rna::farna::minimize::minimize_bps );
255 protocols::viewer::viewer_main(
my_main );
257 std::cout <<
"caught exception " << e.
msg() << std::endl;
int main(int argc, char *argv[])
vector1< pose::PoseOP > get_refine_pose_list(std::string const &input_silent_file, std::pair< utility::vector1< int >, utility::vector1< char > > const &output_res_and_chain, core::chemical::ResidueTypeSetCOP rsd_set)
virtual std::string const msg() const
void close_loops(core::pose::Pose &pose, utility::vector1< Size > const &resnum)
BooleanOptionKey const user("options:user")
Platform independent operations on files (except I/O)
#define runtime_assert(_Expression)
Assert that the condition holds. Evaluated for both debug and release builds.
common derived classes for thrown exceptions
Functions for opening database files.
std::vector with 1-based indexing
basic::options::IntegerOptionKey const nstruct("nstruct")
rule< Scanner, options_closure::context_t > options
ocstream cout(std::cout)
Wrapper around std::cout.
BooleanOptionKey const exit("options:exit")
vector1: std::vector with 1-based indexing
void init()
set global 'init_was_called' to true
Program options global and initialization function.
int const silent
Named verbosity levels.
rule< Scanner, option_closure::context_t > option