Silent IO

The silent file format is a Rosetta specific (trajectory) format that is used to store ensembles of structures. These are usually the final structures of a structure determination protocol but can also be structures collected from multiple runs at a certain intermediate check-point or a whole trajectory of a single run.

A frame in a silent file is controlled by the SilentStruct class and is nearly a full serialization of a Pose object. The frame contains the annotated sequence to reconstruct the chemical identity of the pose (residue modifcations, protonation states and ligands) and the reconstruction of the internal degrees of freedom. If a non-trivial FoldTree is used, a respective entry allows reconstruction of the kinematics. Different SilentStruct classes exist to account for the different nature of structures that have to be stored. Ideal poses only require us to save the backbone and side-chain torsion angles, which is handled by the ProteinSilentStruct. Non-ideal poses, as they appear after, e.g., loop building are stored by a BinarySilentStruct. RNA is stored in instances of the corresponding RNASilentStruct and RNABinarySilentStruct classes.

Additionally to the chemical-, kinematic- and conformational information the frame also contains a set of scores. These are found in a line starting with 'SCORE:', and are generally preceded by the 'score' which is the weighted sum of the individual score terms and depends on the ScoreFunction last used to score the pose before it was stored. Additionally to the scores which have to be an actual ScoreType, the score line can also contain other information that has been added during the run of a protocol using various mechanisms including the PoseEvaluator, PoseMetric, and Filter.
The column-headers to identify the score terms are provided in the second line of the silent file. The columns headers are usually not repeated for every score line, which can cause problems if the number of columns changes due to heterogeneous behavior of the protocol (e.g., sampling is terminated at various filter stages). In such cases it is advisable to use the cmd-line flag -out:file:silent_print_all_score_headers.

Each frame in a silent file has a unique identifier, which is in colloquial language called the decoy-tag. The decoy-tag is at the end of each line that belongs to the respective frame, which allows the use of grep to extract frames from the silent-structure. Each frame of a silent file is independent and thus simple python tools can be used to manage silent files (e.g., extract subsets of decoys, concatenate files, etc). The most important tools provided are silent_data.py, extract_decoys.py and extract_pdbs. The first allows to extract score information from the silent file, and extract_decoys.py, allows to filter the structures contained in the silent file and extract_pdbs allows to extract structures from a silent file and save them in PDB format.

Note that problems can occur if a) decoy-tags are not unique (e.g., after concatenation) or b) the number of columns in the SCORE: line changes.
The provided python tools can deal with changing number of columns if a new SCORE-header line is provided in front of each column change (see above; -out:file:silent_print_all_score_headers). However, simple grep-commands might loose the changed SCORE-header, and thus should be used with care.

The trajectory format is now widely used in the RosettaCommunity and is recommended over the use of single PDB files.

sampling protocol: