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::carbohydrates::GlycanTreeModeler Class Reference

A protocol for optimizing glycan trees using the GlycanSampler from the base of the tree out to the leaves. More...

#include <GlycanTreeModeler.hh>

Inheritance diagram for protocols::carbohydrates::GlycanTreeModeler:
Inheritance graph
[legend]

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...
 
bool mover_provides_citation_info () const override
 Does this mover provide information about how to cite it? More...
 
utility::vector1
< basic::citation_manager::UnpublishedModuleInfoCOP > 
provide_authorship_info_for_unpublished () const override
 Provide a list of authors and their e-mail addresses, as strings. 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 Stringsinfo ()
 non-const accessor More...
 
virtual Strings const & info () const
 const accessor More...
 
virtual utility::vector1
< basic::citation_manager::CitationCollectionCOP > 
provide_citation_info () const
 Provide the citation. More...
 
virtual bool mover_is_unpublished () const
 Does this mover indicate that it is unpublished (and, by extension, that the author should be included in publications resulting from it)? 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...
 

Detailed Description

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.

Constructor & Destructor Documentation

protocols::carbohydrates::GlycanTreeModeler::GlycanTreeModeler ( )

Constructors ///.

Default constructor

Referenced by clone().

protocols::carbohydrates::GlycanTreeModeler::GlycanTreeModeler ( GlycanTreeModeler const &  src)

Copy constructor (not needed unless you need deep copies)

Copy constructor.

References scorefxn_, and selector_.

protocols::carbohydrates::GlycanTreeModeler::~GlycanTreeModeler ( )
overridedefault

Destructor (important for properly forward-declaring smart-pointer members)

Member Function Documentation

void protocols::carbohydrates::GlycanTreeModeler::apply ( core::pose::Pose pose)
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_.

protocols::moves::MoverOP protocols::carbohydrates::GlycanTreeModeler::clone ( ) const
overridevirtual

required in the context of the parser/scripting scheme

Reimplemented from protocols::moves::Mover.

References GlycanTreeModeler().

moves::MoverOP protocols::carbohydrates::GlycanTreeModeler::fresh_instance ( ) const
overridevirtual

required in the context of the parser/scripting scheme

Reimplemented from protocols::moves::Mover.

std::string protocols::carbohydrates::GlycanTreeModeler::get_name ( ) const
overridevirtual

Each derived class must specify its name. The class name.

Implements protocols::moves::Mover.

References mover_name().

bool protocols::carbohydrates::GlycanTreeModeler::is_quenched ( ) const
private

Setup classes, selectors, etc.

References completed_quenches_, quench_mode_, and trees_to_model_.

Referenced by apply().

std::string protocols::carbohydrates::GlycanTreeModeler::mover_name ( )
static
bool protocols::carbohydrates::GlycanTreeModeler::mover_provides_citation_info ( ) const
overridevirtual

Does this mover provide information about how to cite it?

Returns
true

Reimplemented from protocols::moves::Mover.

void protocols::carbohydrates::GlycanTreeModeler::parse_my_tag ( utility::tag::TagCOP  tag,
basic::datacache::DataMap &  datamap 
)
overridevirtual
utility::vector1< basic::citation_manager::UnpublishedModuleInfoCOP > protocols::carbohydrates::GlycanTreeModeler::provide_authorship_info_for_unpublished ( ) const
overridevirtual

Provide a list of authors and their e-mail addresses, as strings.

Reimplemented from protocols::moves::Mover.

References mover_name().

void protocols::carbohydrates::GlycanTreeModeler::provide_xml_schema ( utility::tag::XMLSchemaDefinition &  xsd)
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_.

void protocols::carbohydrates::GlycanTreeModeler::setup_cartmin ( core::scoring::ScoreFunctionOP  scorefxn) const
private
void protocols::carbohydrates::GlycanTreeModeler::setup_score_function ( )
private
void protocols::carbohydrates::GlycanTreeModeler::show ( std::ostream &  output = std::cout) const
overridevirtual

Mover Methods ///.

Show the contents of the Mover

Reimplemented from protocols::moves::Mover.

References protocols::moves::Mover::show().

Referenced by protocols::carbohydrates::operator<<().

Member Data Documentation

bool protocols::carbohydrates::GlycanTreeModeler::cartmin_ = false
private
core::Size protocols::carbohydrates::GlycanTreeModeler::completed_quenches_ = 0
private

Referenced by apply(), and is_quenched().

bool protocols::carbohydrates::GlycanTreeModeler::final_min_pack_min_ = true
private
bool protocols::carbohydrates::GlycanTreeModeler::force_virts_for_refine_ = false
private
core::Real protocols::carbohydrates::GlycanTreeModeler::glycan_sampler_kt_ = 0
private
core::Size protocols::carbohydrates::GlycanTreeModeler::glycan_sampler_rounds_ = 100
private
bool protocols::carbohydrates::GlycanTreeModeler::hybrid_protocol_ = true
private
bool protocols::carbohydrates::GlycanTreeModeler::idealize_ = false
private

Referenced by apply(), and parse_my_tag().

core::Size protocols::carbohydrates::GlycanTreeModeler::layer_size_ = 1
private

Referenced by apply(), parse_my_tag(), and set_layer_size().

bool protocols::carbohydrates::GlycanTreeModeler::match_window_one_ = true
private

Referenced by apply(), and parse_my_tag().

bool protocols::carbohydrates::GlycanTreeModeler::min_rings_ = false
private

Referenced by apply(), and parse_my_tag().

bool protocols::carbohydrates::GlycanTreeModeler::quench_mode_ = false
private
bool protocols::carbohydrates::GlycanTreeModeler::refine_ = false
private

Referenced by apply(), parse_my_tag(), and set_refine().

bool protocols::carbohydrates::GlycanTreeModeler::root_prob_sampling_ = false
private
core::Size protocols::carbohydrates::GlycanTreeModeler::rounds_ = 1
private

Referenced by apply(), parse_my_tag(), and set_rounds().

core::scoring::ScoreFunctionOP protocols::carbohydrates::GlycanTreeModeler::scorefxn_ = nullptr
private
core::select::residue_selector::ResidueSelectorCOP protocols::carbohydrates::GlycanTreeModeler::selector_ = nullptr
private
core::Size protocols::carbohydrates::GlycanTreeModeler::trees_to_model_ = 0
private

Referenced by apply(), and is_quenched().

bool protocols::carbohydrates::GlycanTreeModeler::use_conformer_populations_ = false
private
bool protocols::carbohydrates::GlycanTreeModeler::use_gaussian_sampling_ = true
private
bool protocols::carbohydrates::GlycanTreeModeler::use_shear_ = true
private

Referenced by apply(), parse_my_tag(), and set_use_shear().

core::Size protocols::carbohydrates::GlycanTreeModeler::window_size_ = 0
private

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