Rosetta  2020.37
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
protocols::abinitio::AbrelaxApplication Class Reference

application level code for Abrelax, Foldconstraints and JumpingFoldconstraints WARNING WARNING WARNING. THREAD UNSAFE. INVOKES ConstraintFactory::replace_creator. CODE THAT ABUSES SINGLETONS LIKE THIS OUGHT TO BE SHOT. More...

#include <AbrelaxApplication.hh>

Public Member Functions

 AbrelaxApplication ()
 c'stor - nothing special More...
 
virtual ~AbrelaxApplication ()
 Explicit virtual destructor since AbrelaxApplication contains OPs NOTE: any time you define a class that is derived from by other classes and which contains polymorphic functions, it needs to have a virtual destructor. If your class derives from VirtualBase, then it will inherit a virtual destructor If it does not, as AbrelaxApplication does not, then you must declare the destructor virtual. More...
 
 AbrelaxApplication (AbrelaxApplication const &)
 Explicit copy constructor since AbrelaxApplication contains OPs. More...
 
void process_decoy (core::pose::Pose &pose, core::scoring::ScoreFunction const &, std::string tag, core::io::silent::SilentStruct &) const
 diagnostic stuff, i.e., computing numbers like an RMSD for each decoy and storing in silent-score-file put everything in here. — actually it mainly calls the evaluator_->apply method. add diagnostic stuff either here as explicit code or in form of a PoseEvaluator to evaluator_ ( see setup () ) the latter has the advantage that the specific evaluation can be carried out during the run of the protocol e.g., for abinitio:debug ( output to stage1_outfile stage2_outfile... ) More...
 
void add_constraints (core::pose::Pose &pose)
 read constraint set (self-initializing) and connect it to pose More...
 
void setup ()
 initialization of application: read some pdb files, set evaluator_ More...
 
void run ()
 run application code: calls do_rerun() or fold() depending on cmd-options More...
 
void do_rerun ()
 run process_decoy on all poses in silent-in file More...
 
void do_distributed_rerun ()
 run process_decoy on all poses in silent-in file – use of JobDistributor More...
 
void setup_fold (core::pose::Pose &extended_pose, ProtocolOP &prot_ptr)
 setup everything needed for fold() — calls helper functions below More...
 
void fold (core::pose::Pose &extended_pose, ProtocolOP prot_ptr)
 run abrelax-type protocols More...
 
bool close_loops (core::pose::Pose &pose, core::scoring::ScoreFunctionOP scorefxn, std::string const &tag)
 return pose with simple fold-tree that has small <0.1 RMSD to input pose More...
 
void relax (core::pose::Pose &pose, core::scoring::ScoreFunctionOP, std::string const &tag)
 relax structure ( fast / classic as controlled by cmd-options ) More...
 
bool multi_fast_relax (Protocol &abinitio_protocol, core::scoring::ScoreFunctionOP, jobdist::PlainSilentFileJobDistributor jobdist, int &curr_nstruct, jobdist::BasicJobOP &curr_job)
 relax multiple structures that are stored in abinitio_protocol.structure_store More...
 
void add_evaluation (evaluation::PoseEvaluatorOP)
 little helper: minimize structure to have lower chainbreak score ( seems particularly necessary after reading from silent-file ) More...
 
bool check_filters (core::pose::Pose &pose)
 check if the given pose passes the set of abinitio filters. More...
 

Static Public Member Functions

static void register_options ()
 

Private Member Functions

core::scoring::ScoreFunctionOP generate_scorefxn (bool fullatom=false)
 create score-functions for centroid and fullatom level More...
 
void copy_native_structure (core::pose::Pose &extended_pose) const
 -— Helper functions for setup_fold More...
 
void copy_structure (core::pose::Pose &extended_pose, core::pose::Pose &desired_pose) const
 copy torsions from the desired_pose, copy them into the extended_pose. More...
 
void generate_extended_pose (core::pose::Pose &extended_pose, std::string const &sequence) const
 steal native torsions from native_pose_ and apply to the "extended_pose" More...
 
void setup_fragments ()
 read fragment data More...
 
void setup_jumps (core::pose::Pose const &extended_pose)
 read jump definitions and set jump_def_ More...
 
void setup_membrane_topology (core::pose::Pose &pose, std::string spanfile) const
 read in membrane topology More...
 
void setup_templates ()
 initialize template_ More...
 
void insert_template_frags (core::pose::Pose &, core::kinematics::MoveMapOP movemap, std::string tag) const
 insert fragments from aligned regions More...
 
void initialize_constraint_forest (core::pose::Pose &pose)
 

Private Attributes

core::io::silent::SilentFileOptionsOP silent_options_
 
core::io::silent::SilentFileDataOP silent_score_file_
 
core::pose::PoseOP native_pose_
 
core::pose::PoseOP init_pose_obj_
 
loops::Loops loops_in_
 
evaluation::PCA_OP pca_
 
bool bRelax_
 
std::string sequence_
 
core::scoring::constraints::ConstraintSetOP cstset_
 
jumping::MembraneJumpOP membrane_jumps_
 
jumping::BaseJumpSetupOP jump_def_
 
core::fragment::SecondaryStructureOP ss_def_
 
TemplatesOP templates_
 
core::fragment::FragSetOP fragset_large_
 
core::fragment::FragSetOP fragset_small_top25_
 
core::fragment::FragSetOP fragset_small_
 
core::fragment::FragSetOP fragset_templates_
 
evaluation::MetaPoseEvaluatorOP evaluator_
 
checkpoint::CheckPointer abrelax_checkpoints_
 

Detailed Description

application level code for Abrelax, Foldconstraints and JumpingFoldconstraints WARNING WARNING WARNING. THREAD UNSAFE. INVOKES ConstraintFactory::replace_creator. CODE THAT ABUSES SINGLETONS LIKE THIS OUGHT TO BE SHOT.

Constructor & Destructor Documentation

protocols::abinitio::AbrelaxApplication::AbrelaxApplication ( )

c'stor - nothing special

protocols::abinitio::AbrelaxApplication::~AbrelaxApplication ( )
virtualdefault

Explicit virtual destructor since AbrelaxApplication contains OPs NOTE: any time you define a class that is derived from by other classes and which contains polymorphic functions, it needs to have a virtual destructor. If your class derives from VirtualBase, then it will inherit a virtual destructor If it does not, as AbrelaxApplication does not, then you must declare the destructor virtual.

protocols::abinitio::AbrelaxApplication::AbrelaxApplication ( AbrelaxApplication const &  src)

Explicit copy constructor since AbrelaxApplication contains OPs.

Shallow copy to mimic the pre 9/8/09 compiler-generated version of this method. If you add new

Member Function Documentation

void protocols::abinitio::AbrelaxApplication::add_constraints ( core::pose::Pose pose)
void protocols::abinitio::AbrelaxApplication::add_evaluation ( evaluation::PoseEvaluatorOP  eval)

little helper: minimize structure to have lower chainbreak score ( seems particularly necessary after reading from silent-file )

add a PoseEvaluator derived instance for decoy-processing

add a PoseEvaluator derived instance for decoy-processing

References evaluator_.

Referenced by add_constraints(), do_distributed_rerun(), do_rerun(), fold(), setup(), and setup_jumps().

bool protocols::abinitio::AbrelaxApplication::check_filters ( core::pose::Pose pose)

check if the given pose passes the set of abinitio filters.

References core::scoring::saxs::ref_spectrum, core::pose::setPoseExtraScore(), and tr().

Referenced by protocols::abinitio::DomainAssembly::apply(), do_distributed_rerun(), do_rerun(), and fold().

bool protocols::abinitio::AbrelaxApplication::close_loops ( core::pose::Pose pose,
core::scoring::ScoreFunctionOP  scorefxn,
std::string const &  tag 
)
void protocols::abinitio::AbrelaxApplication::copy_native_structure ( core::pose::Pose extended_pose) const
private

-— Helper functions for setup_fold

steal native torsions from native_pose_ and apply to the extended_pose.

called by setup_fold() if option[ start_native ] is active the routine defines a fragment of the length of the structure steals the fragment from the native and applies it to the decoy native needs to be idealized!

References copy_structure(), native_pose_, and tr().

Referenced by setup_fold().

void protocols::abinitio::AbrelaxApplication::copy_structure ( core::pose::Pose extended_pose,
core::pose::Pose desired_pose 
) const
private

copy torsions from the desired_pose, copy them into the extended_pose.

References core::conformation::Residue::is_protein(), protocols::mean_field::min(), core::pose::Pose::residue(), core::pose::Pose::size(), and tr().

Referenced by copy_native_structure(), and setup_fold().

void protocols::abinitio::AbrelaxApplication::do_distributed_rerun ( )

run process_decoy on all poses in silent-in file – use of JobDistributor

loop over structures in silent-input file small trick is used to also have native structure in the set of analysis: it is added to the collection of silent_file-structures manually TODO we need to do something about difference between fullatom and centroid input!

References add_constraints(), add_evaluation(), bRelax_, check_filters(), close_loops(), core::pose::Pose::conformation(), core::pose::Pose::constraint_set(), core::pack::interaction_graph::debug, core::io::raw_data::DisulfideFile::disulfides(), evaluator_, core::conformation::Conformation::fix_disulfides(), protocols::loops::fix_with_coord_cst(), core::chemical::FULL_ATOM_t, generate_scorefxn(), core::io::silent::SilentFileData::get_structure(), protocols::loops::Loops::grow_all_loops(), protocols::loops::Loops::invert(), core::pose::Pose::is_fullatom(), core::scoring::linear_chainbreak, loops_in_, protocols::mean_field::max(), core::scoring::overlap_chainbreak, protocols::ligand_docking::passes_filters(), process_decoy(), core::io::silent::SilentFileData::read_file(), protocols::antibody::design::relax, relax(), core::pose::set_ss_from_phipsi(), protocols::relax::ClassicRelax::setPoseExtraScore(), silent_options_, silent_score_file_, protocols::loops::Loops::size(), core::pose::Pose::size(), core::util::switch_to_residue_type_set(), core::io::silent::SilentFileData::tags(), tr(), protocols::loops::Loops::verify_against(), and core::io::silent::SilentFileData::write_silent_struct().

Referenced by run().

void protocols::abinitio::AbrelaxApplication::do_rerun ( )

run process_decoy on all poses in silent-in file

loop over structures in silent-input file small trick is used to also have native structure in the set of analysis: it is added to the collection of silent_file-structures manually TODO we need to do something about difference between fullatom and centroid input!

References add_constraints(), add_evaluation(), core::io::silent::SilentFileData::begin(), core::chemical::CENTROID, check_filters(), close_loops(), core::sequence::end, core::io::silent::SilentFileData::end(), evaluator_, core::chemical::FA_STANDARD, generate_scorefxn(), core::pose::Pose::is_fullatom(), core::scoring::linear_chainbreak, core::pose::Pose::metric(), native_pose_, core::scoring::overlap_chainbreak, protocols::ligand_docking::passes_filters(), process_decoy(), core::io::silent::SilentFileData::read_file(), silent_options_, silent_score_file_, core::io::silent::SilentFileData::size(), and tr().

Referenced by run().

void protocols::abinitio::AbrelaxApplication::fold ( core::pose::Pose init_pose,
ProtocolOP  prot_ptr 
)

run abrelax-type protocols

everything happens in fold()! setup of stuff that is not needed for rerun() read fragments [ optional ] steal fragments ( take fragments from native pose )

References abrelax_checkpoints_, add_evaluation(), core::io::silent::SilentFileData::add_structure(), protocols::moves::AddPyMOLObserver(), protocols::abinitio::ResolutionSwitcher::apply(), protocols::loops::loop_mover::refine::LoopMover_Refine_KIC::apply(), protocols::abinitio::Protocol::apply(), protocols::idealize::IdealizeMover::apply(), bRelax_, core::scoring::methods::ContactOrderEnergy::calculate_contact_order(), check_filters(), protocols::checkpoint::CheckPointer::checkpoint(), protocols::loops::Loop::choose_cutpoint(), protocols::checkpoint::CheckPointer::clear_checkpoints(), core::kinematics::FoldTree::clone(), close_loops(), core::pose::Pose::conformation(), core::pose::Pose::constraint_set(), core::scoring::ScoreFunctionFactory::create_score_function(), cstset_, core::kinematics::FoldTree::cutpoint(), core::pose::Pose::data(), core::pack::interaction_graph::debug, protocols::checkpoint::CheckPointer::debug(), core::conformation::Conformation::detect_disulfides(), core::pose::Pose::dump_pdb(), evaluator_, protocols::idealize::IdealizeMover::fast(), core::pose::Pose::fold_tree(), protocols::loops::fold_tree_from_loops(), generate_scorefxn(), protocols::checkpoint::CheckPointer::get_checkpoint_recoveries(), protocols::abinitio::Protocol::get_checkpoints(), core::scoring::constraints::get_cst_fa_file_option(), protocols::moves::Mover::get_current_tag(), protocols::moves::Mover::get_last_move_status(), core::pose::Pose::is_centroid(), core::pose::Pose::is_fullatom(), protocols::mean_field::max(), membrane_jumps_, protocols::mean_field::min(), protocols::moves::MS_SUCCESS, multi_fast_relax(), core::kinematics::FoldTree::num_cutpoint(), core::pose::Pose::omega(), protocols::ligand_docking::passes_filters(), protocols::hybridization::path, core::pose::Pose::phi(), process_decoy(), core::pose::Pose::psi(), protocols::checkpoint::CheckPointer::recover_checkpoint(), relax(), core::scoring::rg, protocols::abinitio::Protocol::set_centroid_scorefxn(), protocols::moves::Mover::set_current_job(), protocols::moves::Mover::set_current_tag(), protocols::abinitio::Protocol::set_evaluation(), protocols::abinitio::Protocol::set_fullatom_scorefxn(), protocols::abinitio::ResolutionSwitcher::set_map_cst_from_centroid_to_fa(), core::pose::Pose::set_omega(), core::pose::Pose::set_phi(), core::pose::Pose::set_psi(), protocols::loops::Loop::set_start(), protocols::relax::ClassicRelax::setPoseExtraScore(), core::pose::setPoseExtraScore(), core::scoring::SS_Killhairpins_Info::setup_killhairpins(), silent_options_, silent_score_file_, core::kinematics::FoldTree::simple_tree(), core::pose::Pose::size(), core::pose::datacache::CacheableDataType::SS_KILLHAIRPINS_INFO, protocols::loops::Loop::start(), core::io::silent::SilentFileData::strict_column_mode(), tr(), and core::io::silent::SilentFileData::write_silent_struct().

Referenced by run().

void protocols::abinitio::AbrelaxApplication::generate_extended_pose ( core::pose::Pose extended_pose,
std::string const &  sequence 
) const
private
core::scoring::ScoreFunctionOP protocols::abinitio::AbrelaxApplication::generate_scorefxn ( bool  fullatom = false)
private
void protocols::abinitio::AbrelaxApplication::initialize_constraint_forest ( core::pose::Pose pose)
private

References tr().

Referenced by setup_fold().

void protocols::abinitio::AbrelaxApplication::insert_template_frags ( core::pose::Pose pose,
core::kinematics::MoveMapOP  movemap,
std::string  tag 
) const
private
bool protocols::abinitio::AbrelaxApplication::multi_fast_relax ( Protocol abinitio_protocol,
core::scoring::ScoreFunctionOP  ,
jobdist::PlainSilentFileJobDistributor  jobdist,
int &  curr_nstruct,
jobdist::BasicJobOP curr_job 
)

relax multiple structures that are stored in abinitio_protocol.structure_store

do fast relax on multiple structures that have been visited during abinitio-protocol. MIKE: please give more documentation to this

Referenced by fold().

void protocols::abinitio::AbrelaxApplication::process_decoy ( core::pose::Pose pose,
core::scoring::ScoreFunction const &  scorefxn,
std::string  tag,
core::io::silent::SilentStruct pss 
) const

diagnostic stuff, i.e., computing numbers like an RMSD for each decoy and storing in silent-score-file put everything in here. — actually it mainly calls the evaluator_->apply method. add diagnostic stuff either here as explicit code or in form of a PoseEvaluator to evaluator_ ( see setup () ) the latter has the advantage that the specific evaluation can be carried out during the run of the protocol e.g., for abinitio:debug ( output to stage1_outfile stage2_outfile... )

run all evaluations on the decoy from this function if you want these evaluations also available during internal stages of the protocols –> put them into a PoseEvaluator and use add_evaluation in setup() otherwise you can also use "manual" code right here in process_decoy –> this will only appear in final silent_out and silent_score - files.

References protocols::evaluation::MetaPoseEvaluator::add_evaluation(), protocols::evaluation::MetaPoseEvaluator::apply(), core::pose::Pose::data(), evaluator_, core::io::silent::SilentStruct::fill_struct(), core::pose::Pose::fold_tree(), native_pose_, core::pose::Pose::num_jump(), and tr().

Referenced by do_distributed_rerun(), do_rerun(), and fold().

void protocols::abinitio::AbrelaxApplication::register_options ( )
static
void protocols::abinitio::AbrelaxApplication::relax ( core::pose::Pose pose,
core::scoring::ScoreFunctionOP  scorefxn,
std::string const &  tag 
)
void protocols::abinitio::AbrelaxApplication::run ( )

run application code: calls do_rerun() or fold() depending on cmd-options

after setup() run either fold() or rerun()

References do_distributed_rerun(), do_rerun(), fold(), setup(), and setup_fold().

void protocols::abinitio::AbrelaxApplication::setup ( )
void protocols::abinitio::AbrelaxApplication::setup_fold ( core::pose::Pose extended_pose,
ProtocolOP prot_ptr 
)

setup everything needed for fold() — calls helper functions below

setup_fold() all initialization that is necessary to run abinitio production loop in fold() read fragments, make pose from sequence, get constraints, set jumps, movemap .etc the two parameters are OUTPUT: extended_pose to run A) with ( might actually contain native starting structure (option!) ) prot_ptr: an initialized instance of ClassicAbinitio, FoldConstraints or JumpingFoldConstraints depending on user settings.

References add_constraints(), protocols::simple_moves::RepulsiveOnlyMover::apply(), bRelax_, core::chemical::CENTROID, core::pose::Pose::conformation(), core::pose::Pose::constraint_set(), copy_native_structure(), copy_structure(), protocols::relax::cyclize_pose(), core::pack::interaction_graph::debug, core::io::raw_data::DisulfideFile::disulfides(), core::sequence::end, evaluator_, core::chemical::FA_STANDARD, protocols::abinitio::filename(), core::conformation::Conformation::fix_disulfides(), core::pose::Pose::fold_tree(), fragset_large_, fragset_small_, fragset_small_top25_, generate_extended_pose(), protocols::loops::Loops::grow_all_loops(), protocols::abinitio::Protocol::init(), initialize_constraint_forest(), protocols::loops::Loops::invert(), core::pose::Pose::is_fullatom(), jump_def_, loops_in_, membrane_jumps_, native_pose_, core::import_pose::PDB_file, core::import_pose::pose_from_file(), protocols::antibody::design::relax, protocols::abinitio::Protocol::return_centroid(), sequence_, protocols::abinitio::Protocol::set_evaluation(), protocols::moves::Mover::set_native_pose(), setup_fragments(), setup_jumps(), setup_membrane_topology(), core::kinematics::simple_visualize_fold_tree(), core::pose::Pose::size(), ss_def_, protocols::loops::start, tr(), and protocols::loops::Loops::verify_against().

Referenced by run().

void protocols::abinitio::AbrelaxApplication::setup_fragments ( )
private

read fragment data

called by setup_fold(): read fragment libraries, I strongly suggest to use different options than A and B if option[ steal ] fragments from the native structure are added to the set. native structure needs to be idealized for this!

References fragset_large_, fragset_small_, fragset_small_top25_, fragset_templates_, core::fragment::merge_frags(), native_pose_, core::fragment::steal_frag_set_from_pose(), templates_, and tr().

Referenced by close_loops(), and setup_fold().

void protocols::abinitio::AbrelaxApplication::setup_jumps ( core::pose::Pose const &  extended_pose)
private

read jump definitions and set jump_def_

called by setup_fold(). Read jump definitions / barcodes (not yet) etc. if jump_def_ points to an object we will use JumpFoldConstraint-protocol in fold()

References add_evaluation(), fragset_small_, jump_def_, native_pose_, core::scoring::dssp::read_pairing_list(), core::pose::Pose::size(), ss_def_, templates_, and tr().

Referenced by setup_fold().

void protocols::abinitio::AbrelaxApplication::setup_membrane_topology ( core::pose::Pose pose,
std::string  spanfile 
) const
private
void protocols::abinitio::AbrelaxApplication::setup_templates ( )
private

initialize template_

called by setup_fold(). Read template definitions

References fragset_large_, native_pose_, sequence_, templates_, and tr().

Referenced by setup().

Member Data Documentation

checkpoint::CheckPointer protocols::abinitio::AbrelaxApplication::abrelax_checkpoints_
private

Referenced by close_loops(), fold(), and relax().

bool protocols::abinitio::AbrelaxApplication::bRelax_
private
core::scoring::constraints::ConstraintSetOP protocols::abinitio::AbrelaxApplication::cstset_
private
evaluation::MetaPoseEvaluatorOP protocols::abinitio::AbrelaxApplication::evaluator_
private
core::fragment::FragSetOP protocols::abinitio::AbrelaxApplication::fragset_large_
private
core::fragment::FragSetOP protocols::abinitio::AbrelaxApplication::fragset_small_
private
core::fragment::FragSetOP protocols::abinitio::AbrelaxApplication::fragset_small_top25_
private

Referenced by setup_fold(), and setup_fragments().

core::fragment::FragSetOP protocols::abinitio::AbrelaxApplication::fragset_templates_
private

Referenced by setup_fragments().

core::pose::PoseOP protocols::abinitio::AbrelaxApplication::init_pose_obj_
private
jumping::BaseJumpSetupOP protocols::abinitio::AbrelaxApplication::jump_def_
private
loops::Loops protocols::abinitio::AbrelaxApplication::loops_in_
private

Referenced by do_distributed_rerun(), and setup_fold().

jumping::MembraneJumpOP protocols::abinitio::AbrelaxApplication::membrane_jumps_
private

Referenced by fold(), and setup_fold().

core::pose::PoseOP protocols::abinitio::AbrelaxApplication::native_pose_
private
evaluation::PCA_OP protocols::abinitio::AbrelaxApplication::pca_
private
std::string protocols::abinitio::AbrelaxApplication::sequence_
private

Referenced by setup(), setup_fold(), and setup_templates().

core::io::silent::SilentFileOptionsOP protocols::abinitio::AbrelaxApplication::silent_options_
private

----------— Data ----------------------------— -----— When you add new data to this class, -— -----— you must update the copy constructor -—

Referenced by do_distributed_rerun(), do_rerun(), and fold().

core::io::silent::SilentFileDataOP protocols::abinitio::AbrelaxApplication::silent_score_file_
private
core::fragment::SecondaryStructureOP protocols::abinitio::AbrelaxApplication::ss_def_
private

Referenced by setup_fold(), and setup_jumps().

TemplatesOP protocols::abinitio::AbrelaxApplication::templates_
private

The documentation for this class was generated from the following files: