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

Framework for loop structure prediction. More...

Namespaces

 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
 Attempt to find the native structure for one or more loops. More...
 
class  LoopModelerCreator
 
class  LoopMover
 Base class for loop-sampling algorithms. More...
 
class  LoopProtocol
 Monte Carlo search for low energy loop conformations. More...
 
class  LoopProtocolCreator
 
struct  ToolboxKeys
 Key names for data shared between loop movers. More...
 

Typedefs

typedef
utility::pointer::shared_ptr
< LoopBuilder
LoopBuilderOP
 
typedef
utility::pointer::shared_ptr
< LoopBuilder const > 
LoopBuilderCOP
 
typedef
utility::pointer::shared_ptr
< LoopModeler
LoopModelerOP
 
typedef
utility::pointer::shared_ptr
< LoopModeler const > 
LoopModelerCOP
 
typedef
utility::pointer::shared_ptr
< LoopMover
LoopMoverOP
 
typedef
utility::pointer::shared_ptr
< LoopMover const > 
LoopMoverCOP
 
typedef utility::vector1
< LoopMoverOP
LoopMoverOPs
 
typedef utility::vector1
< LoopMoverCOP
LoopMoverCOPs
 
typedef
utility::pointer::shared_ptr
< LoopProtocol
LoopProtocolOP
 
typedef
utility::pointer::shared_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

static thread_local basic::Tracer TR ("protocols.loop_modeling.LoopMover")
 
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.LoopModeler")
 
static basic::Tracer TR ("protocols.loop_modeling.LoopProtocol")
 

Detailed Description

Framework for loop structure prediction.

The most important classes in this namespace are LoopModeler, 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. LoopModeler combines initial loop building, centroid refinement, and fullatom refinement into a complete loop modeling simulation. It also provides a lot of configurability, especially from rosetta scripts.

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;
Size repack_period = 20;
if (option[OptionKeys::loops::repack_period].user()) {
repack_period = option[OptionKeys::loops::repack_period]();
}
protocol->add_mover(new KicMover);
protocol->add_mover(new RepackingRefiner(repack_period));
protocol->add_mover(new RotamerTrialsRefiner);
protocol->add_mover(new FullatomMinimizationRefiner);
Size outer_cycles = 3;
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->apply(pose);

Typedef Documentation

typedef utility::pointer::shared_ptr<LoopBuilder const> protocols::loop_modeling::LoopBuilderCOP
typedef utility::pointer::shared_ptr<LoopModeler const> protocols::loop_modeling::LoopModelerCOP
typedef utility::pointer::shared_ptr<LoopMover const> protocols::loop_modeling::LoopMoverCOP
typedef utility::pointer::shared_ptr<LoopProtocol const> protocols::loop_modeling::LoopProtocolCOP

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.

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

Variable Documentation

basic::Tracer protocols::loop_modeling::TR("protocols.loop_modeling.LoopProtocol")
static
basic::Tracer protocols::loop_modeling::TR("protocols.loop_modeling.LoopModeler")
static