Developing for Rosetta

Where is the documentation for the various Rosetta libraries?

The documentation for the various libraries is a bit scattered. Here is a partially-complete list:

Internal libraries:

  • Publicly available Doxygen code documentation describing the interface to Rosetta objects and functions
  • Historical version of the documentation, including both user manual and code documentation.
    • The Rosetta 3.5 user manual, with documentation for the core and protocols libraries; curiously, this lacks RosettaScripts documentation
    • The Rosetta 3.4 user manual, with documentation for the core and protocols libraries and on RosettaScripts (an older version, for historical reference only)

For RosettaCommons developers, we have a version of the Doxygen documentation which also includes code. (Password protected access).

External libraries:

  • Boost 1.55.0 documentation (a very useful library intended to extend the standard C++ libraries with frequently-needed functionality)
  • The Eigen library (used for linear algebra, matrix manipulations, Eigenvector problems, etc.)
  • DAlphaBall information and references (but no documentation), which is used in Rosetta's holes score term

Code organization


A general scheme of Rosetta source code organization
Large size file (poster size) can be downloaded from here

Rosetta style guidelines

Using particular classes

  • Owning pointers - Rosetta's shared-ownership intrusive reference counted smart pointer. Currently implemented using boost::shared_ptr.
  • Vector1 - Rosetta's 1-based indexing vector class.
    • Vector0 - A 0-based indexing version of vector1.
    • VectorL - The generalized L-based indexing vector, from which vector1 and vector0 are derived.
  • Tracer - Using the tracer output class.

  • Hbonds - Dealing with the Hbond energy terms.

  • namespace-core-fragments - Using the classed located in src/core/fragments/

  • xyzVector - A vector specialized for Cartesian coordinate use.

  • xyzMatrix - A 3x3 matrix class specialized for Cartesian coordinate use.

How to extend Rosetta

Testing changes

See the

Visualization Tools

  • PyMOL Resources for visualizing Rosetta simulations in PyMol
  • Extending the PyMol Viewer Extending the PyMol Mover to add additional visualization features during Rosetta simulations

See Also