Development Documentation
Developing for Rosetta
- Rosetta overview
- Using Git - Basic steps to working with git and committing code
- Doxygen tips - How to work with Rosetta's in-code documentation.
- Writing an app - How to write your own Rosetta-based application.
- Packer Task - Controlling which side chains can vary during rotamer optimization
- Making rosetta robust for running on large number of inputs
Code organization
- Rosetta library structure - Overview of how the Rosetta library is structured.
src index page - Overview of the src directory.
- Namespace utility
- Namespace numeric
- Namespace objexxFCL
Rosetta style guidelines
- Owning pointer usage guidlines - Working with Rosetta's smart pointer system.
Using particular classes - Some of this documention may be out of date.
-
Owning pointers - Rosetta's shared-ownership intrusive reference counted smart pointer.
- Access pointers - An "owning pointer" which doesn't take ownership.
- ReferenceCount - How owning pointers are implemented.
- ReferenceCountMI - ReferenceCount for multiple inheritance.
- Vector1 - Rosetta's 1-based indexing vector class.
Tracer - Using the tracer output class.
Hbonds - Dealing with the Hbond energy terms.
Directory-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
- New energy method - How to add a new energy term.
- Resfile reader - How to extend the resfile reader.
Testing changes
- Rosetta tests - A guide to running and writing tests for Rosetta
- Run unit test - How to run the unit tests.
- Write unit test - Writing unit tests.
- UTracer - How to use the UTracer tool in writing unit tests
-
Mover test - How to write a unit test for a mover.
- Scientific test - How to create and run scientific tests