![]() |
Rosetta
2021.16
|
A protocol for optimizing glycan trees using the GlycanSampler from the base of the tree out to the leaves. More...
#include <GlycanTreeModeler.hh>

Public Member Functions | |
| GlycanTreeModeler () | |
| Constructors ///. More... | |
| GlycanTreeModeler (GlycanTreeModeler const &src) | |
| Copy constructor (not needed unless you need deep copies) More... | |
| ~GlycanTreeModeler () override | |
| Destructor (important for properly forward-declaring smart-pointer members) More... | |
| void | apply (core::pose::Pose &pose) override |
| Mover Methods ///. More... | |
| void | provide_citation_info (basic::citation_manager::CitationCollectionList &) const override |
| Provide the citation. More... | |
| void | set_rounds (core::Size const rounds) |
| void | set_layer_size (core::Size const layer_size) |
| Set the layer size we will be using. A layer is a set of glycan residues that we will be optimizing. We work our way through the layers, while the rest of the (downstream) residues are virtual (not scored). More... | |
| void | set_window_size (core::Size const window_size) |
| Set the window size. This is the overlap of the layers during modeling. More... | |
| void | set_quench_mode (bool quench_mode) |
| Set the protocol to use a quench-like algorithm, where we work on a single glycan tree at a time until all are modeled. More... | |
| void | set_refine (bool const refine) |
| Set a boolean that we will be refining instead of de-novo modeling. This also makes it so that modeling is done in the context of the full glycan tree and no virtual residues are used. More... | |
| void | set_final_min_pack_min (bool const minpackmin) |
| Change the setting to do a final min/pack/min of all glycan residues or glycan residues set by the selector at the end of the protocol. More... | |
| void | set_glycan_sampler_rounds (core::Size glycan_sampler_rounds) |
| Override Glycan Relax rounds. More... | |
| void | set_use_conformer_probabilities (bool conformer_probs) |
| Set the LinkageConformer to use probabilites. More... | |
| void | set_use_gaussian_sampling (bool gaussian_sampling) |
| Set whether if we are sampling torsions uniformly within an SD for the LinkageConformerMover (false) or sampling the gaussian (true). Default false. More... | |
| void | set_force_virts_for_refinement (bool force_virts) |
| Refinement now models layers in the context of the full glycan tree. Turn this option on to use non-scored residues (virtuals) at the ends of the tree that are not being modeled. This is how the de-novo protocol works. More... | |
| void | set_hybrid_protocol (bool hybrid_protocol) |
| Set to use an experimental protocol where we build out the glycans, but re-model the full tree during the building process Default false. More... | |
| void | set_use_shear (bool use_shear) |
| void | set_protein_linkage_prob_sampling (bool root_probs) |
| Set Conformer Sampling through probabilities at the linkage to the protein only. More... | |
| void | set_glycan_sampler_kt (core::Real kT) |
| Override the GlycanSampler KT. More... | |
| void | set_scorefxn (core::scoring::ScoreFunctionCOP scorefxn) |
| Set the scorefunction used for modeling. More... | |
| void | set_selector (core::select::residue_selector::ResidueSelectorCOP selector) |
| Set a residue selector to limit the residues we will be modeling. If you are using quench mode, the selector will limit the trees to model. So the residues that are true should correspond to the start of the trees you wish to model. More... | |
| void | show (std::ostream &output=std::cout) const override |
| Mover Methods ///. More... | |
| void | parse_my_tag (utility::tag::TagCOP tag, basic::datacache::DataMap &data) override |
| Rosetta Scripts Support ///. More... | |
| protocols::moves::MoverOP | fresh_instance () const override |
| required in the context of the parser/scripting scheme More... | |
| protocols::moves::MoverOP | clone () const override |
| required in the context of the parser/scripting scheme More... | |
| std::string | get_name () const override |
| Each derived class must specify its name. The class name. More... | |
Public Member Functions inherited from protocols::moves::Mover | |
| Mover () | |
| virtual MoverOP | create () |
| MoverCOP | get_self_ptr () const |
| MoverOP | get_self_ptr () |
| MoverCAP | get_self_weak_ptr () const |
| MoverAP | get_self_weak_ptr () |
| Mover (std::string const &type_name) | |
| sets the type for a mover; name_ has been removed (2010/05/14) More... | |
| virtual void | test_move (Pose &pose) |
| : Unit test support function. Apply one move to a given pose. Allows extra test specific functions to be called before applying More... | |
| virtual bool | reinitialize_for_each_job () const |
| Inform the Job Distributor (August '08 vintage) whether this object needs to be freshly regenerated on each use. More... | |
| virtual bool | reinitialize_for_new_input () const |
| Inform the Job Distributor (August '08 vintage) whether this object needs to be regenerated when the input pose is about to change, (for example, if the Mover has special code on the first apply() that is only valid for that one input pose). More... | |
| MoverStatus | get_last_move_status () const |
| end parser interface, start Job Distributor interface///////////// More... | |
| void | reset_status () |
| resets status to SUCCESS, meant to be used before an apply(). The job distributor (august 08 vintage) uses this to ensure non-accumulation of status across apply()s. More... | |
| virtual core::pose::PoseOP | get_additional_output () |
| Mechanism by which a mover may return multiple output poses from a single input pose. More... | |
| void | set_type (std::string const &setting) |
| Set the 'type' string. More... | |
| std::string | get_type () const |
| void | type (const std::string &type_in) |
| Set the 'type' string. More... | |
| std::string const & | type () const |
| Get the set 'type' string. More... | |
| virtual void | set_input_pose (PoseCOP pose) |
| setter for poses contained for rms More... | |
| virtual void | set_native_pose (PoseCOP pose) |
| setter for native poses contained for rms -— we should get rid of this method? it is widely used, but a bit unsafe More... | |
| PoseCOP | get_input_pose () const |
| PoseCOP | get_native_pose () const |
| void | set_current_job (protocols::jobdist::BasicJobCOP job) |
| jobdist::BasicJobCOP | get_current_job () const |
| virtual void | set_current_tag (std::string const &new_tag) |
| std::string | get_current_tag () const |
| A tag is a unique identifier used to identify structures produced by this Mover. get_current_tag() returns the tag, and set_current_tag( std::string tag ) sets the tag. This functionality is not intended for use with the 2008 job distributor. More... | |
| virtual core::Real | last_proposal_density_ratio () |
| virtual void | clear_info () |
| Strings container can be used to return miscellaneous info (as std::string) from a mover, such as notes about the results of apply(). The job distributor (Apr 09 vintage) will check this function to see if your protocol wants to add string info to the Job that ran this mover. One way this can be useful is that later, a JobOutputter may include/append this info to an output file. More... | |
| virtual Strings & | info () |
| non-const accessor More... | |
| virtual Strings const & | info () const |
| const accessor More... | |
Static Public Member Functions | |
| static std::string | mover_name () |
| static void | provide_xml_schema (utility::tag::XMLSchemaDefinition &xsd) |
Static Public Member Functions inherited from protocols::moves::Mover | |
| static std::string | name () |
| static void | register_options () |
| Overload this static method if you access options within the mover. More... | |
Private Member Functions | |
| void | setup_score_function () |
| void | setup_cartmin (core::scoring::ScoreFunctionOP scorefxn) const |
| bool | is_quenched () const |
| Setup classes, selectors, etc. More... | |
Private Attributes | |
| core::Size | layer_size_ = 1 |
| core::Size | window_size_ = 0 |
| core::Size | rounds_ = 1 |
| core::Size | completed_quenches_ = 0 |
| core::Size | trees_to_model_ = 0 |
| core::Size | glycan_sampler_rounds_ = 100 |
| bool | refine_ = false |
| bool | quench_mode_ = false |
| bool | final_min_pack_min_ = true |
| bool | cartmin_ = false |
| bool | min_rings_ = false |
| bool | idealize_ = false |
| core::scoring::ScoreFunctionOP | scorefxn_ = nullptr |
| core::select::residue_selector::ResidueSelectorCOP | selector_ = nullptr |
| bool | use_conformer_populations_ = false |
| bool | force_virts_for_refine_ = false |
| bool | hybrid_protocol_ = true |
| bool | use_gaussian_sampling_ = true |
| bool | use_shear_ = true |
| bool | match_window_one_ = true |
| bool | root_prob_sampling_ = false |
| core::Real | glycan_sampler_kt_ = 0 |
Additional Inherited Members | |
Public Types inherited from protocols::moves::Mover | |
| typedef utility::tag::TagCOP | TagCOP |
| typedef core::pose::Pose | Pose |
| typedef core::pose::PoseCOP | PoseCOP |
| typedef std::list< std::string > | Strings |
Protected Member Functions inherited from protocols::moves::Mover | |
| void | set_last_move_status (MoverStatus status) |
| nonvirtual setter for MoverStatus last_status_. Protected means that only the mover itself will be able to change its own status. The job distributor (august 08 vintage) is aware of status set with this function and will do what the MoverStatus says. More... | |
A protocol for optimizing glycan trees using the GlycanSampler from the base of the tree out to the leaves.
Works by making all other residues virtual except the ones it is working on (current Layer). A virtual residue is not scored. It will start at the first glycan residues, and then move out to the edges.
GENERAL ALGORITHM
We start at the roots, and make all other glycan residues virtual. We first model towards the leaves and this is considered the forward direction. the GlycanSampler is used for the actual modeling, we only model a layer at a time, until we reach the tips. If more than one round is set, the protocol will move backwards on the next round, from the leafs to the roots. A third round will involve relaxation again in the forward direction. So we go forward, back, forward, etc. for how ever many rounds you set.
QUECHING
By default, we model all glycans simultaneously. First, all glycan roots (the start of the tree), and slowly unvirtualize all glycan residues, while only modeling each layer. Alternatively, we can choose a particular glycan tree, run the algorithm, and then choose another glycan tree randomly until all glycan trees have been optimized. Here, we call this quenching.
GLYCAN LAYERS
Draw a tree on a paper. We start with the beginning N residues, and work our way out towards the leaves. Layers are defined by the glycan residue distance to the rooot. This enables branching residues to be considered the same layer conceptually and computationally, and allows them to be modeled together.
–LAYER SIZE–
The distance that make up a layer. If we have a distance of 2, we first model all glycans that are equal to or less than 2 residue distance to the root. We then slide this layer up. So we take all residues that have a distance between 3 and 1, and so on.
–WINDOW SIZE–
The layers are slid down throught the tree of the glycan. The window size represents the overlap in the layers. A window size of 1, means that the last residue (or residues of layer 1) from the last modeling effort, will be used again as part of the next layer. A window size of 0, means that no residues will be re-modeled. Typically, we would want at least a window size of 1.
| protocols::carbohydrates::GlycanTreeModeler::GlycanTreeModeler | ( | ) |
| protocols::carbohydrates::GlycanTreeModeler::GlycanTreeModeler | ( | GlycanTreeModeler const & | src | ) |
|
overridedefault |
Destructor (important for properly forward-declaring smart-pointer members)
|
overridevirtual |
Mover Methods ///.
Apply the mover.
Apply the mover
Implements protocols::moves::Mover.
References protocols::minimization_packing::MinMover::apply(), protocols::carbohydrates::backward, cartmin_, core::pose::Pose::clear(), completed_quenches_, core::select::residue_selector::count_selected(), core::pose::carbohydrates::create_glycan_movemap_from_residue_selector(), protocols::moves::FAIL_DO_NOT_RETRY, final_min_pack_min_, force_virts_for_refine_, protocols::carbohydrates::forward, protocols::carbohydrates::get_all_glycans_and_neighbor_res_task_factory(), core::select::get_master_subunit_selection(), protocols::carbohydrates::get_total_rounds_for_overlap_one_layer_two(), glycan_sampler_kt_, glycan_sampler_rounds_, core::pose::Pose::glycan_tree_set(), hybrid_protocol_, idealize_, core::chemical::ResidueType::is_carbohydrate(), core::conformation::Residue::is_carbohydrate(), is_quenched(), core::pose::symmetry::is_symmetric(), layer_size_, match_window_one_, protocols::minimization_packing::MinMover::min_options(), min_rings_, core::pose::Pose::pdb_info(), quench_mode_, core::pose::Pose::real_to_virtual(), refine_, core::pose::Pose::residue(), core::pose::Pose::residue_type(), core::scoring::rg, root_prob_sampling_, protocols::noesy_assign::round(), rounds_, protocols::carbohydrates::run_shear_min_pack(), protocols::minimization_packing::PackRotamersMover::score_function(), scorefxn_, selector_, protocols::moves::Mover::set_last_move_status(), protocols::simple_moves::BackboneMover::set_residue_selector(), setup_score_function(), core::pose::Pose::size(), protocols::minimization_packing::PackRotamersMover::task_factory(), core::id::to_string(), core::pose::Pose::total_residue(), protocols::TR(), trees_to_model_, use_conformer_populations_, use_gaussian_sampling_, use_shear_, and window_size_.
|
overridevirtual |
required in the context of the parser/scripting scheme
Reimplemented from protocols::moves::Mover.
References GlycanTreeModeler().
|
overridevirtual |
required in the context of the parser/scripting scheme
Reimplemented from protocols::moves::Mover.
|
overridevirtual |
Each derived class must specify its name. The class name.
Implements protocols::moves::Mover.
References mover_name().
|
private |
Setup classes, selectors, etc.
References completed_quenches_, quench_mode_, and trees_to_model_.
Referenced by apply().
|
static |
|
overridevirtual |
Rosetta Scripts Support ///.
parse XML tag (to use this Mover in Rosetta Scripts)
Reimplemented from protocols::moves::Mover.
References cartmin_, final_min_pack_min_, force_virts_for_refine_, glycan_sampler_kt_, glycan_sampler_rounds_, hybrid_protocol_, idealize_, layer_size_, match_window_one_, min_rings_, core::select::residue_selector::parse_residue_selector(), core::scoring::parse_score_function(), quench_mode_, refine_, root_prob_sampling_, rounds_, scorefxn_, selector_, set_force_virts_for_refinement(), set_hybrid_protocol(), set_use_conformer_probabilities(), set_use_gaussian_sampling(), use_conformer_populations_, use_gaussian_sampling_, use_shear_, and window_size_.
|
overridevirtual |
|
static |
| void protocols::carbohydrates::GlycanTreeModeler::set_final_min_pack_min | ( | bool const | minpackmin | ) |
Change the setting to do a final min/pack/min of all glycan residues or glycan residues set by the selector at the end of the protocol.
References final_min_pack_min_.
| void protocols::carbohydrates::GlycanTreeModeler::set_force_virts_for_refinement | ( | bool | force_virts | ) |
Refinement now models layers in the context of the full glycan tree. Turn this option on to use non-scored residues (virtuals) at the ends of the tree that are not being modeled. This is how the de-novo protocol works.
References force_virts_for_refine_.
Referenced by parse_my_tag().
| void protocols::carbohydrates::GlycanTreeModeler::set_glycan_sampler_kt | ( | core::Real | kT | ) |
Override the GlycanSampler KT.
References glycan_sampler_kt_.
| void protocols::carbohydrates::GlycanTreeModeler::set_glycan_sampler_rounds | ( | core::Size | glycan_sampler_rounds | ) |
Override Glycan Relax rounds.
References glycan_sampler_rounds_.
| void protocols::carbohydrates::GlycanTreeModeler::set_hybrid_protocol | ( | bool | hybrid_protocol | ) |
Set to use an experimental protocol where we build out the glycans, but re-model the full tree during the building process Default false.
References hybrid_protocol_.
Referenced by parse_my_tag().
| void protocols::carbohydrates::GlycanTreeModeler::set_layer_size | ( | core::Size const | layer_size | ) |
Set the layer size we will be using. A layer is a set of glycan residues that we will be optimizing. We work our way through the layers, while the rest of the (downstream) residues are virtual (not scored).
The distance that make up a layer. If we have a distance of 2, we first model all glycans that are equal to or less than 2 residue distance to the root. We then slide this layer up. So we take all residues that have a distance between 3 and 1, and so on.
References layer_size_.
| void protocols::carbohydrates::GlycanTreeModeler::set_protein_linkage_prob_sampling | ( | bool | root_probs | ) |
Set Conformer Sampling through probabilities at the linkage to the protein only.
References root_prob_sampling_.
| void protocols::carbohydrates::GlycanTreeModeler::set_quench_mode | ( | bool | quench_mode | ) |
Set the protocol to use a quench-like algorithm, where we work on a single glycan tree at a time until all are modeled.
References quench_mode_.
| void protocols::carbohydrates::GlycanTreeModeler::set_refine | ( | bool const | refine | ) |
Set a boolean that we will be refining instead of de-novo modeling. This also makes it so that modeling is done in the context of the full glycan tree and no virtual residues are used.
If you would like to change this behavior, use the function set_force_virts_for_refinement.
References refine_.
| void protocols::carbohydrates::GlycanTreeModeler::set_rounds | ( | core::Size const | rounds | ) |
References rounds_.
| void protocols::carbohydrates::GlycanTreeModeler::set_scorefxn | ( | core::scoring::ScoreFunctionCOP | scorefxn | ) |
Set the scorefunction used for modeling.
References scorefxn_.
| void protocols::carbohydrates::GlycanTreeModeler::set_selector | ( | core::select::residue_selector::ResidueSelectorCOP | selector | ) |
Set a residue selector to limit the residues we will be modeling. If you are using quench mode, the selector will limit the trees to model. So the residues that are true should correspond to the start of the trees you wish to model.
If you wish to limit further, this is not currently supported. So email me and I can add it.
References selector_.
| void protocols::carbohydrates::GlycanTreeModeler::set_use_conformer_probabilities | ( | bool | conformer_probs | ) |
Set the LinkageConformer to use probabilites.
References use_conformer_populations_.
Referenced by parse_my_tag().
| void protocols::carbohydrates::GlycanTreeModeler::set_use_gaussian_sampling | ( | bool | gaussian_sampling | ) |
Set whether if we are sampling torsions uniformly within an SD for the LinkageConformerMover (false) or sampling the gaussian (true). Default false.
References use_gaussian_sampling_.
Referenced by parse_my_tag().
| void protocols::carbohydrates::GlycanTreeModeler::set_use_shear | ( | bool | use_shear | ) |
References use_shear_.
| void protocols::carbohydrates::GlycanTreeModeler::set_window_size | ( | core::Size const | window_size | ) |
Set the window size. This is the overlap of the layers during modeling.
The layers are slid down throught the tree of the glycan. The window size represents the overlap in the layers. A window size of 1, means that the last residue (or residues of layer 1) from the last modeling effort, will be used again as part of the next layer. A window size of 0, means that no residues will be re-modeled. Typically, we would want at least a window size of 1.
References window_size_.
|
private |
References core::scoring::cart_bonded, and core::scoring::pro_close.
Referenced by setup_score_function().
|
private |
References cartmin_, core::scoring::get_score_function(), scorefxn_, and setup_cartmin().
Referenced by apply().
|
overridevirtual |
Mover Methods ///.
Show the contents of the Mover
Reimplemented from protocols::moves::Mover.
References protocols::moves::Mover::show().
Referenced by protocols::carbohydrates::operator<<().
|
private |
Referenced by apply(), parse_my_tag(), and setup_score_function().
|
private |
Referenced by apply(), and is_quenched().
|
private |
Referenced by apply(), parse_my_tag(), and set_final_min_pack_min().
|
private |
Referenced by apply(), parse_my_tag(), and set_force_virts_for_refinement().
|
private |
Referenced by apply(), parse_my_tag(), and set_glycan_sampler_kt().
|
private |
Referenced by apply(), parse_my_tag(), and set_glycan_sampler_rounds().
|
private |
Referenced by apply(), parse_my_tag(), and set_hybrid_protocol().
|
private |
Referenced by apply(), and parse_my_tag().
|
private |
Referenced by apply(), parse_my_tag(), and set_layer_size().
|
private |
Referenced by apply(), and parse_my_tag().
|
private |
Referenced by apply(), and parse_my_tag().
|
private |
Referenced by apply(), is_quenched(), parse_my_tag(), and set_quench_mode().
|
private |
Referenced by apply(), parse_my_tag(), and set_refine().
|
private |
Referenced by apply(), parse_my_tag(), and set_protein_linkage_prob_sampling().
|
private |
Referenced by apply(), parse_my_tag(), and set_rounds().
|
private |
Referenced by apply(), GlycanTreeModeler(), parse_my_tag(), set_scorefxn(), and setup_score_function().
|
private |
Referenced by apply(), GlycanTreeModeler(), parse_my_tag(), and set_selector().
|
private |
Referenced by apply(), and is_quenched().
|
private |
Referenced by apply(), parse_my_tag(), and set_use_conformer_probabilities().
|
private |
Referenced by apply(), parse_my_tag(), and set_use_gaussian_sampling().
|
private |
Referenced by apply(), parse_my_tag(), and set_use_shear().
|
private |
Referenced by apply(), parse_my_tag(), and set_window_size().
1.8.7