Return To RosettaScripts

TaskOperations are used by a TaskFactory to configure the behavior and create a PackerTask when it is generated on-demand for routines that use the "packer" to reorganize/mutate sidechains. The PackerTask controls which residues are packable, designable, or held fixed. When used by certain Movers (at present, the PackRotamersMover and its subclasses), the set of TaskOperations control what happens during packing, usually by restriction "masks."

The PackerTask can be thought of as an ice sculpture. By default, everything is able to pack AND design. By using TaskOperations, or your set of chisels, one can limit packing/design to only certain residues. As with ICE, once these residues are restricted, they generally cannot be turned back on.

There exist certain commonly-used TaskOperations that one usually should include when designing. For more information on these, please see the page on recommended TaskOperations for design.

This section defines instances of the TaskOperation class hierarchy when used in the context of the Parser/RosettaScripts. They become available in the DataMap.


  <ReadResfile name=rrf/>
  <ReadResfile name=rrf2 filename=resfile2/>
  <PreventRepacking name=NotBeingUsedHereButPresenceOkay/>
  <RestrictResidueToRepacking name=restrict_Y100 resnum=100/>
  <RestrictToRepacking name=rtrp/>
  <OperateOnResidueSubset name=NoPackHelix>
      <SecondaryStructure ss="H" />
  <PackRotamersMover name=packrot scorefxn=sf task_operations=rrf,NoPackHelix,rtrp,restrict_Y100/>

In the rosetta code, the TaskOperation instances are registered with and then later created by a TaskOperationFactory. The factory calls parse_tag() on the base class virtual function, with no result by default. However, some TaskOperation classes (e.g. OperateOnCertainResidues and ReadResfile above) do implement parse_tag, and therefore their behavior can be configured using additional options in the "XML"/Tag definition.

Residue Selectors

ResidueSelectors are a flexible system for specifying particular set of residues in a pose. They can be used with the OperateOnResidueSubset TaskOperation to control packing behavior, or can be used with other movers and filters.

Per Residue Specification

TaskOp Description
OperateOnResidueSubset Use ResidueSelectors and Residue Level TaskOperations to specify a particular behavior on a particular subset of residues.
OperateOnCertainResidues Operation An older way of specifying particular groups of residues. Deprecated - use OperateOnResidueSubset instead.

Specialized Operations

Position/Identity Specification

General Specification

TaskOP Description
PreventRepacking Do not pack a particular residue.
PreventResiduesFromRepacking Do not pack a specified set of residues.
RestrictToRepacking Do not design any residues.
RestrictResidueToRepacking Do not design a particular residue.
RestrictResiduesToRepacking Do not design a specified set of residues.
RestrictChainToRepacking Do not design a particular chain.

General Design Specification

TaskOp Description
ReadResfile Read a resfile and apply the specified behavior.
ReadResfileFromDB Apply a resfile stored in a relational database.
ResfileCommandOperation Apply a resfile command to a set of residues from a residue selector.
SequenceMotifTaskOperation Create a Sequence Motif using motif syntax and a residue selector. For example, N[^P][S/T], which would design N, anything not proline, and then Serine or Threonine
RestrictAbsentCanonicalAAS Limit design to specified amino acids.
DisallowIfNonnative Do not design to certain residues, but allow them if they already exist.
LinkResidues Constrain groups of residues to mutate together.

Property-based specification

TaskOp Description
ConservativeDesign Only design to amino acids that are similar to native.
ConsensusLoopDesign Only design to amino acids in loops which match the ABEGO torsion bins.
DsspDesign Specify design identity based on secondary structure.
DesignCatalyticResidues Only design residues surrounding the residues in enzdes constraints.
DesignByResidueCentrality Design only residues which have a high inter-connectedness to other residues.
DesignByCavityProximity Only design residues around voids.
DesignRandomRegion Design only a random section of the pose.
HighestEnergyRegion Design only residues which have a bad energy.
DesignRestrictions Set allowable AAs and/or residue_level_operations for multiple residue selectors. Use instead of LayerDesign.
LayerDesign LEGACY: Specify design identity based on secondary structure and burial.
NoRepackDisulfides Do not repack disulfide residues.
ProteinCore Do not design residues in the protein core.
SelectResiduesWithinChain Do not pack/design residues based on their position in a chain.
SelectBySASA Repack residue based on surface exposure.
SetCatalyticResPackBehavior Turn of packing or design for residues in enzdes constraints.
RestrictToTermini Only repack termini.

Interface/Neighborhood Specifications

TaskOp Description
DesignAround Limit design and repack to a certain distance around specified residues.
DetectProteinLigandInterface Only repack and design residues near a specified protein/ligand interface.
ProteinInterfaceDesign Only repack and design residues near a specified protein/protein interface.
RestrictToInterface Restricts to a protein/protein interface.
RestrictToInterfaceVector Restricts to a protein/protein interface.
RestrictDesignToProteinDNAInterface Limit repacking and design to residues around DNA.

Input-based design

TaskOp Description
AlignedThread Design to identities in a FASTA file.
DatabaseThread Design based off a sequence in a database.
JointSequence Design only to identities common to multiple inputs.
RestrictNativeResidues Turn off design or repacking to residues which are the same as the native pose.
RestrictIdentitiesAtAlignedPositions Restrict design to the sequence of a provided PDB.
RestrictToAlignedSegments Only design at aligned segments.
SeqprofConsensus Design residues based off a PSSM.
ThreadSequence Design to identities of a provided sequence.


Rotamer Specification

TaskOp Description
InitializeFromCommandline Apply certain command line packer behavior flags.
IncludeCurrent Tell the packer to also consider the input rotamer.
ExtraRotamersGeneric Sample residue chi angles much more finely during packing.
AddLigandMotifRotamers Include native-like interactions to a ligand based on a database file.
InteractingRotamerExplosion Increase sampling of rotamers that score well with a specified target residue.
ImportUnboundRotamers Include rotamers from a PDB file.
LimitAromaChi2 Don't use aromatics rotamers known to be spurious design.
RotamerExplosion Sample residue chi angles much more finely during packing.
SampleRotamersFromPDB Limit rotamers to ones similar to those in a PDB file.
PruneBuriedUnsats Remove rotamers that will cause buried unsats.

Packer Behavior Modification

TaskOp Description
ModifyAnnealer Change the behavior of the packer.
ProteinLigandInterfaceUpweighter Increase the contribution of protein/ligand interactions during design.


TaskOp Description
InitializeExtraRotsFromCommandline (Under development)
SetRotamerCouplings (Under development)
AppendRotamer (Under development)
AppendRotamerSet (Under development)
PreserveCBeta (Under development)
RestrictYSDesign Restrict amino acid choices during design to Tyr and Ser.

Antibody and CDR Specific Operations

These require a renumbered antibody and are intended to be combined with each other. Please see General Antibody Tips and Rosetta Antibody Guide for more information.

TaskOp Description
AddCDRProfilesOperation Add North/Dunbrack CDR Cluster based profile design during packing of selected CDRs.
AddCDRProfileSetsOperation Sample full CDR sequences of the current CDR cluster for design.
DisableAntibodyRegionOperation Disable packing or design of an antibody region (CDRs, framework, antigen).
DisableCDRsOperation Disable packing or design of a set of specified CDRs.
RestrictToCDRsAndNeighbors Restrict Packing/Design to only selected CDRs and any neighbor residues in other CDRs and the antigen/framework. Combine with DisableAntibodyRegionOperation for more control.

See Also