Directory TreeThe libRosetta source code is partitioned into packages by subsystem. Each package is layered to separate out the abstract interfaces that users need from implementation details and to group sources by category so that no directory is too large. Object-oriented systems tend to have many small files and a lot of "glue" code to express the type relationships and libRosetta is no exception. The organization of libRosetta is designed to let developers focus on the subset of sources that is relevant to their task. But a system of this size can seem complex initially, especially to developers used to procedural code so let's take a quick tour. The full libRosetta directory tree is shown on the right with different types of directories color coded: interface Interfaces: Show services a type provides The major packages in libRosetta are shown below: rosetta
├───chemical Atom properties
├───conformation
│ ├───amino
│ ├───dna
│ ├───nucleic
│ └───protein
├───io I/o classes and functions
├───options Program options definitions
└───scoring Energy and scoring
Users normally only need to know what services a type provides and that only requires looking at the interface classes. For example, if we want to work with proteins, amino acids, and the basic conformation types that make them up (Atom, Bond, BondAngle, TorsionAngle, etc.) we can focus on this subtree of directories: rosetta
└───conformation
├───amino
│ ├───keys
└───protein
We might need to refer to some of the key collections in the amino/keys directory for named lookup operations although the common keys have predictable names like CA, NE2, CA_CB, Chi1, and HIS (and the compiler will tell you if you try to use a non-existent key). Related PagesClass Design Class hierarchies used in libRosetta Source Code Naming and organization in the source with a sample interface class Source Browsing How to set up emacs to help browse libRosetta |
rosetta
├───chemical
│ ├───compound
│ │ ├───internal
│ │ └───keys
│ └───element
│ ├───internal
│ └───keys
├───conformation
│ ├───amino
│ │ ├───backbone
│ │ │ ├───internal
│ │ │ └───keys
│ │ ├───idealization
│ │ │ └───keys
│ │ ├───internal
│ │ ├───keys
│ │ └───sidechain
│ │ ├───internal
│ │ └───keys
│ ├───builder
│ ├───dna
│ │ ├───internal
│ │ └───keys
│ ├───idealization
│ │ └───internal
│ ├───internal
│ ├───keys
│ ├───nucleic
│ │ ├───backbone
│ │ │ ├───internal
│ │ │ └───keys
│ │ ├───internal
│ │ ├───keys
│ │ └───sidechain
│ │ ├───internal
│ │ └───keys
│ ├───oriented
│ └───protein
│ ├───internal
│ └───keys
├───io
│ ├───database
│ └───pdb
├───options
│ └───keys
└───scoring
├───dunbrack
├───H_bonds
└───io |