Rosetta Protocols  2014.35
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
protocols::loop_modeling Namespace Reference

Framework for loop structure prediction. More...

Namespaces

 loggers
 Classes for informally monitoring loop modeling simulations.
 
 openers
 Unused algorithms for created open loop conformations.
 
 refiners
 Algorithms for lowering loop region scores during sampling.
 
 samplers
 Algorithms for generating new loop conformations.
 
 utilities
 Generally useful loop-sampling meta-algorithms.
 

Classes

class  LoopBuilder
 Build loops from scratch. More...
 
class  LoopBuilderCreator
 
class  LoopModeler
 
class  LoopModelerCreator
 
class  LoopMover
 Base class for loop-sampling algorithms. More...
 
class  LoopProtocol
 Monte Carlo search for low energy loop conformations. More...
 
class  LoopProtocolCreator
 

Typedefs

typedef
utility::pointer::owning_ptr
< LoopBuilder
LoopBuilderOP
 
typedef
utility::pointer::owning_ptr
< LoopBuilder const > 
LoopBuilderCOP
 
typedef
utility::pointer::owning_ptr
< LoopModeler
LoopModelerOP
 
typedef
utility::pointer::owning_ptr
< LoopModeler const > 
LoopModelerCOP
 
typedef
utility::pointer::owning_ptr
< LoopMover
LoopMoverOP
 
typedef
utility::pointer::owning_ptr
< LoopMover const > 
LoopMoverCOP
 
typedef
utility::pointer::owning_ptr
< LoopProtocol
LoopProtocolOP
 
typedef
utility::pointer::owning_ptr
< LoopProtocol const > 
LoopProtocolCOP
 
typedef vector1< SizeIndexList
 
typedef vector1< LoopMoverOPLoopMovers
 

Enumerations

enum  FoldTreeRequest { FTR_LOOPS_WITH_CUTS = 0x01, FTR_SIMPLE_TREE = 0x02, FTR_DONT_CARE = 0xFF }
 Represent the types of fold tree supported by LoopMover. More...
 

Functions

FoldTreeRequest operator| (FoldTreeRequest a, FoldTreeRequest b)
 Implement the bitwise or operator for fold tree requests. More...
 
FoldTreeRequest operator& (FoldTreeRequest a, FoldTreeRequest b)
 Implement the bitwise and operator for fold tree requests. More...
 

Variables

static basic::Tracer TR ("protocols.loop_modeling.LoopMover")
 

Detailed Description

Framework for loop structure prediction.

The most important classes in this namespace are LoopProtocol and LoopMover. LoopMover provides an interface for loop sampling algorithms. Methods are provided for specifying which loops need to be sampled and for setting up a compatible fold tree. Some important LoopMover subclasses include RepackingRefiner, MinimizationRefiner, and KicMover. The LoopProtocol class provides a framework for combining any number of loop movers into a single Monte Carlo simulation. Aspects of the simulation like the number of iterations, the score function, and the temperature can be easily controlled.

Below is an excerpt from protocols::comparative_modeling::LoopRelaxMover that shows some of the classes from this namespace in action. This code creates a protocol featuring KIC moves followed by a rotamer trials and local minimization. Full repacking is done once every 20 iterations. The number of iterations can be controlled from the command line, and a concise progress update will be reported after every iteration.

LoopProtocolOP protocol = new LoopProtocol;
if (option[OptionKeys::loops::repack_period].user()) {
repack_period = option[OptionKeys::loops::repack_period]();
}
protocol->add_mover(new KicMover);
protocol->add_mover(new PeriodicTask(new RepackingRefiner, repack_period));
protocol->add_mover(new RotamerTrialsRefiner);
protocol->add_mover(new FullatomMinimizationRefiner);
Size inner_cycles = 10 * loops->loop_size();
if (option[OptionKeys::loops::outer_cycles].user()) {
outer_cycles = option[ OptionKeys::loops::outer_cycles ]();
}
if (option[OptionKeys::loops::max_inner_cycles].user()) {
Size max_cycles = option[OptionKeys::loops::max_inner_cycles]();
inner_cycles = std::max(inner_cycles, max_cycles);
}
if (option[OptionKeys::loops::fast]) {
outer_cycles = 3;
inner_cycles = 12;
}
protocol->set_loops(*loops);
protocol->set_score_function(fa_scorefxn_);
protocol->set_iterations(outer_cycles, inner_cycles, 2);
protocol->add_logger(new ProgressBar);
protocol->apply(pose);

Typedef Documentation

Enumeration Type Documentation

Represent the types of fold tree supported by LoopMover.

This enum supports the bitwise and and or operators. Strictly speaking, this is an abuse of enum because both operators can return values that are not contained in the enum. But this design meets two key requirements. First, programmers have to work with the enumerated values. Second, bitwise logic can be used to easily combine flags and to determine how composite requests should be satisfied.

Enumerator
FTR_LOOPS_WITH_CUTS 
FTR_SIMPLE_TREE 
FTR_DONT_CARE 

Function Documentation

FoldTreeRequest protocols::loop_modeling::operator& ( FoldTreeRequest  a,
FoldTreeRequest  b 
)
inline

Implement the bitwise and operator for fold tree requests.

FoldTreeRequest protocols::loop_modeling::operator| ( FoldTreeRequest  a,
FoldTreeRequest  b 
)
inline

Implement the bitwise or operator for fold tree requests.

Variable Documentation

basic::Tracer protocols::loop_modeling::TR("protocols.loop_modeling.LoopMover")
static