As described in the paper:
Contact:
shenyang@niddk.nih.gov; bax@nih.gov
|
![]() |
What is CS-ROSETTA?
To date, interpretation of isotropic chemical shifts in structural terms is largely based on empirical correlations gained from the mining of protein chemical shifts deposited in the BMRB, in conjunction with the known corresponding 3D structures. Chemical-Shift-ROSETTA (CS-ROSETTA) is a robust protocol to exploit this relation for de novo protein structure generation, using as input parameters the 13Ca, 13Cb, 13C', 15N, 1Ha and 1HN NMR chemical shifts. These shifts are generally available at the early stage of the traditional NMR structure determination procedure, prior to the collection and analysis of structural restraints. CS-ROSETTA approach, as shown below, utilizes SPARTA-based selection of protein fragments from the PDB, in conjunction with a regular ROSETTA Monte Carlo assembly and relaxation method. Evaluation of 16 proteins, varying in size from 56 to 129 residues yielded full atom models that have 0.7-1.8 angstrom root-mean-square deviations for the backbone atoms relative to the experimentally determined X-ray or NMR structures. The strategy also has been successfully applied in a blind manner to eight structural genomics targets with molecular weights up to 16 kDa, whose conventional NMR structure determination was conducted in parallel. This protocol potentially provides a new direction for high-throughput NMR structure determination, in particular in structural genomics.

Contents
Preparation of input chemical shift table
Identification and exclusion of flexible tails and loops
How to use CS-ROSETTA
Fragment selection
Protein structure generation
Evaluation of CS-ROSETTA models
How to select CS-ROSETTA models
Criteria for convergence and accepting models
Number of models required
FAQs
Installation files (for Linux/Mac)
Installation The current implementation of CS-ROSETTA requires the MFR program to perform fragment selection and the ROSETTA program to conduct the
protein structure prediction. Therefore, before installing and using CS-ROSETTA
package, the newest NMRPipe (incl. the MFR module stored in
dyn.tar.Z,
mfr.tar.Z,
pdbH.tar.Z) (http://spin.niddk.nih.gov/NMRPipe)
and ROSETTA programs (http://www.rosettacommons.org/software/)
MUST to be installed, as well as other programs such as RCI (http://redpoll.pharmacy.ualberta.ca/download/rci/)and
TALOS (http://spin.niddk.nih.gov/NMRPipe/talos/), which are used during data analysis. Installation of ROSETTA To install the ROSETTA program, users need to (1) register for an academic
license at
http://www.rosettacommons.org/software/, (2) download (at least) the required packages
(current name of the bundle: RosettaBundle-2.2.0.tgz) to the installation directory (for example
$ROSETTA_DIR), (3)
uncompress RosettaBundle-2.2.0.tgz and all four generated sub-packages (with names of
rosetta*.tgz), (4) go to the
rosetta++ directory and type "make gcc" (for
Linux installation) to compile the ROSETTA source codes. After successful
compilation, an executable ROSETTA file with default name "rosetta.gcc" will be generated. Installation of CS-ROSETTA Download all above files to the installation directory ($baseDir),
type 'install.com' to start the installation. The correctly installed CS-ROSETTA program contains
the following contents in the installation directory
$baseDir: ./com bmrb2fasta.com Generate a FASTA sequence file from a BMRB
chemical shift file bmrb2talos.com Convert a BMRB chemical shift file to TALOS-format csrosettaInit.com CS-ROSETTA initialization script extract_pdb.com Generate PDB full-atom coordinates files from a
ROSETTA silent output file extract_lowscore_decoys.py Python script to extract N lowest energy models
from a ROSETTA silent output file to a new silent output file fasta2pdb.com Generate a 'dummy'-PDB file from a FASTA sequence
file, which is required by MFR as the reference structure mfr.tcl Modified MFR starting script from the original 'mfr.tcl'
in NMRPipe, required by CS-ROSETTA mfr.com Conduct MFR fragments search paths.txt Template of "paths.txt" file for ROSETTA pdb2fasta.com Generate a FASTA sequence file from a PDB file renumber_pdb.com Renumber sequence number for a PDB coordinate
file runCSRjob.com Starting script to run fragment search and
prepare ROSETTA inputs runRosetta.com Template of ROSETTA starting script runCSRescore.com Starting script to re-score ROSETTA full-atom
models using experimental chemical shifts runRosettaRescore.com Starting script to extract segments from ROSETTA
full-atom models sparta Starting script for program SPARTA ./PDBH ./CS ./ANGLESS ./src SPARTA Chemical shifts prediction program SPARTA mfr2rosetta C++ program to convert MFR-format fragments to
ROSETTA-format pdbrms C++ program to calculate RMSD value between two
sets of PDB coordinates ./example ./input/gb3.tab GB3 input experimental chemical shift table ./input/runCSRgb3.com Script for starting GB3 CS-ROSETTA run ./output/ All output files obtained by running
./input/runCSRgb3.com runCSRtest.com Script to test CS-ROSETTA installation The initialization script
csrosettaInit.com
includes the definitions for all environmental variables required by CS-ROSETTA.
NOTE that the variables $rosettaDir and
$csrosettaDir defined in
csrosettaInit.com: MUST be replaced by users according to their ROSETTA and CS-ROSETTA installation directories. In order to use the package, users MUST first execute above initialization script, for instance by adding the following
command to their .cshrc file: If the package is installed successfully and environmental variables are set up correctly, script in the GB3 example
directory (examples/runCSRTest.com) will work successfully.
Install.com
CS-ROSETTA Install C-shell Script
CSRosetta.tar.Z
CS-ROSETTA main package, scripts, examples
PDBH.tar.Z
Database of PDB files, required by MFR/CS-ROSETTA
CS.tar.Z
Database of chemical shifts files, required by
MFR/CS-ROSETTA
ANGLESS.tar.Z
Database of secondary structure classifications and
ROSETTA-idealized backbone torsion angles, required by CS-ROSETTA
CS-ROSETTA scripts directory
Directory of PDB coordinates database
Directory of SPARTA-assigned chemical shifts
database
Directory of secondary structure classification
and ROSETTA-idealized backbone torsion angles database
Directory of supporting C++ program
Directory of a complete example for protein GB3
setenv rosettaDir /home/software/ROSETTA
setenv csrosettaDir /home/software/CSROSETTA
if (-e $baseDir/com/csrosettaInit.com) then
source $baseDir/com/csrosettaInit.com
endif
Preparation of input chemical shift table
CS-ROSETTA utilizes the protein backbone 15N, 1HN, 1HA, 13CA, 13CB and 13C'
chemical shifts as inputs and search a structural database for best matched
fragments. The chemical shifts need to be in TALOS format, as defined at
http://spin.niddk.nih.gov/NMRPipe/talos/#preparing shifts. If starting from
a standard BMRB format chemical shift file, a C-shell script
$baseDir/com/brmb2talos.com
can be used to generate a TALOS-format chemical shift file using:
brmb2talos.com bmrbCS.str > inCS.tabAn example of the chemical shifts input format can also be found in the file $baseDir/examples/input/gb3.tab:
DATA SEQUENCE MQYKLVINGK TLKGETTTKA VDAETAEKAF KQYANDNGVD GVWTYDDATK DATA SEQUENCE TFTVTE VARS RESID RESNAME ATOMNAME SHIFT FORMAT %4d %1s %4s %8.3f 1 M CA 54.519 1 M CB 29.320 1 M HA 4.189 2 Q C 174.318 2 Q CA 55.632 2 Q CB 30.865 2 Q HN 8.347 2 Q HA 5.109 2 Q N 123.775 ...Note that the missing chemical shift data are allowed, but the amino acid sequence shown in the header MUST be the full sequence of the protein and MUST start from residue 1, CS-ROSETTA will generate protein structures with the sequence defined in the header.
Residues from the disordered tails and loops are identified from the input
chemical shifts and the criteria in the paper:
(1) S2 < 0.7 from the RCI analysis, and/or
(2) no "good" predictions using the program TALOS
Positively identified flexible residues in the N- and C-terminal tails should be
excluded from the structure prediction by preparing a 'truncated' input chemical
shift table file excluding data (both sequence and chemical shifts) from those
residues. For long flexible loops, it is advantageous to exclude all terms from
the ROSETTA full-atom energy and the chemical shifts rescoring (see details in
Evaluation of CS-ROSETTA models)
CS-ROSETTA has been designed to work in a black-box manner, and is supported by
multiple C-shell/C++/python scripts/programs. To use CS-ROSETTA for protein
structure prediction, users only require to: (1) run master script
runCSRjob.com
(provided with an input experimental chemical shift file) to select fragments
from the structure database and to prepare a starting package for the subsequent
ROSETTA structure generation, (2) run runRosetta.com (prepared in the previous
step) to perform ROSETTA structure prediction and generate full-atom models, (3)
run runCSrescore.com to add a chemical shift term to the CS-ROSETTA full-atom
"energies". A flow diagram of the CS-ROSETTA protocol implemented in this package looks as shown below:

1. Fragment selection - runCSRjob.com
The script runCSRjob.com is the master script to generate MFR fragments and
inputs for ROSETTA. To use this script, an input chemical shift filename MUST be
specified in a command line such as:
runCSRjob.com inCS.tabThe following optional variables are hard-coded in script runCSRjob.com:
set OUTPUT_DIR = rosetta set MFR_EXCL = "PDB1_ PDB2A PDB3X" set PDB_NAME = t000 set CHAIN = _ set TAG = aa set N_MODEL = 5000where $OUTPUT_DIR is the output directory of the fragments and scripts for running ROSETTA (or the ROSETTA running directory), $MFR_EXCL is the list of the proteins (4-letters's PDB name plus 1-letter chain ID) with homologous sequence and known structural homologs to the target protein, for which users like to exclude from the MFR structural database prior to MFR fragment searching, $PDB_NAME and $CHAIN are the 4-letters and 1-letter dummy names indicating the protein name and chain ID, respectively, $TAG is a 2-letters dummy tag (used by ROSETTA), $N_MODEL is the total number of models to be predicted.
The output of running this script will be the MFR-selected 9-residue and 3-residue fragments in ROSETTA format (with file names of $OUTPUT_DIR/$TAG$PDB_NAME$CHAIN09_05.200_v1_3 and $OUTPUT_DIR/$TAG$PDB_NAME$CHAIN03_05.200_v1_3, respectively), a FASTA sequence file ($OUTPUT_DIR/$PDB_NAME$CHAIN.fasta), a ROSETTA paths definition file ($OUTPUT_DIR/paths.txt) and a script file ($OUTPUT_DIR/runRosetta.com) for starting ROSETTA structure generation.
It is recommended for users to read through and understand this script, which would facilitate use of the MFR program and other supporting scripts, and solve any problems during the MFR search (for example, by checking the intermediate and log files). This script (1) Prepares input for the MFR program, (2) Runs the MFR fragment search, (3) Convert fragments to ROSETTA format and (4) Prepares inputs and scripts for running ROSETTA structure generation. In details:
(1) Prepare MFR inputs
The current MFR program in NMRPipe requires a TALOS format chemical shift table
file as input (see Section of "Preparing of chemical shift table"). A "reference PDB" coordinate file is needed to provide the MFR program with the protein's
amino acid sequence. For this purpose, runCSRjob.com creates a dummy "reference
PDB" coordinate file from its FASTA sequence using:
fasta2pdb protein.fasta > dummy_ref.pdb
(2) Run MFR fragment search
The script runCSRjob.com then conducts a MFR fragment search following a command
line of:
mfr.com -cs inCS.tab -ref ref.pdb -out out.tab -excl $MFR_EXCL >& log
where $MFR_EXCL is a list of protein names (without .pdb suffix) that users like to exclude from the MFR structure database prior to the fragment search. MFR fragment selection from searching the structural database is a time-consuming job (1-3 hours); the 'log' file can be used to check the progress.
(3) Convert fragments to ROSETTA format
The MFR-selected 9-residues and 3-residues fragment candidates, generated after
running the MFR fragment search, have file names of the types
frag9.$PDB_NAME.mfr.tab and
frag3.$PDB_NAME.mfr.tab, respectively. Script
mfr2rosetta.com can be utilized to convert these fragments to standard ROSETTA
format:
mfr2rosetta.com -mfr frag9.$PDB_NAME.mfr.tab -segLength 9 > frag9.$PDB_NAME.rosetta.tab mfr2rosetta.com -mfr frag3.$PDB_NAME.mfr.tab -segLength 3 > frag3.$PDB_NAME.rosetta.tab
(4) Prepare ROSETTA running package
runCSRjob.com generates at the last step a new directory (defined by variable $OUTPUT_DIR) and prepares the following required inputs and script for running ROSETTA structure generation:
9-residues and 3-residues fragment files $TAG$PDB_NAME$CHAIN09_05.200_v1_3 and $TAG$PDB_NAME$CHAIN03_05.200_v1_3
FASTA sequence file $PDB_NAME$CHAIN.fasta
ROSETTA paths definition file paths.txt
starting script file runRosetta.com for ROSETTA structure generation
2. Protein structure generation - runRosetta.com
Script runRosetta.com
generated by running the script runCSRjob.com can be
used to start the standard ROSETTA structure generation (fragment assembly and
full atom relaxation). This script includes solely a standard ROSETTA command
line defining the inputs names, the parameters for fragment assembly and
full-atom relaxation
${rosetta} $TAG $PDB_NAME $CHAIN -silent -output_silent -increase_cycles 10 -new_centroid_packing
-abrelax -output_chi_silent -stringent_relax -vary_omega -omega_weight 0.5 -farlx -ex1 -ex2
-termini -short_range_hb_weight 0.50 -long_range_hb_weight 1.0 -no_filters -rg_reweight 0.5
-rsd_wt_helix 0.5 -rsd_wt_loop 0.5 -output_all -accept_all -do_farlx_checkpointing -relax_score_filter
-record_irms_before_relax -acceptance_rate 1.0 -filter1a 10000 -filter1b 10000 -nstruct $N_MODEL
where $TAG,
$PDB_NAME,
$CHAIN (variables for protein identities) and
$N_MODEL
(total number of predicted models) are automatically replaced by their values
defined in script runCSRjob.com.
Running script runRosetta.com in the working directory (where the selected fragments, FASTA sequence and paths.txt are stored) will start the standard ROSETTA structure prediction. The output of the ROSETTA run is a so-called silent output file with name $TAG$PDB_NAME.out, which includes the scores and full-atom descriptions for all accepted models.
The ROSETTA is intensively computationally demanding (in the order of 5-10 minutes per model). Therefore, use of computer clusters is highly recommended. In order to run multiple ROSETTA jobs in parallel for a given project, users can simply run the same script runRosetta.com for each 'parallel' job in the same working directory; ROSETTA will output the results from each job to a single silent output file. (Note: Please replace the option "-output_silent_gz" with "-output_silent" in the previously distributed runRosetta.com script, or download the newest distribution, in order to fix the problem during parallel ROSETTA jobs)
3. Evaluation of CS-ROSETTA models - runCSrescore.com
A ROSETTA silent output file $TAG$PDB_NAME.out contains a header in its first
two lines (first line: the sequence information, second line: definition of
scores and values), and for each model, the scores and values defined in the
header (first line) and the residue-specific description of the full-atom model.
An example ROSETTA silent output file is shown below:
SEQUENCE: MQYKLVINGKTLKGETTTKAVDAETAEKAFKQYANDNGVDGVWTYDDATKTFTVTE SCORE: score env pair vdw hs ss sheet cb rsigma hb_srbb hb_lrbb rg co contact rama bk_tot fa_atr fa_rep fa_sol h2o_sol hbsc fa_dun fa_intra fa_pair fa_plane fa_prob fa_h2o h2o_hb gsolt sasa omega_sc description SCORE: -116.07 -12.24 -1.62 0.31 -3.25 -72.74 0.34 15.99 -28.93 -18.75 -29.62 11.42 17.69 0.00 -13.19 -134.45 -165.57 7.34 84.55 0.00 -3.13 22.82 0.07 -3.11 0.00 -15.74 0.00 0.00 45.19 3958.98 7.55 S_0001_9019 1 E -81.616 95.109 -180.850 0.000 0.000 0.000 -60.979 -52.601 -70.896 0.000 S_0001_9019 2 E -103.775 140.428 181.156 0.662 1.438 3.457 -61.314 178.939 7.568 0.000 S_0001_9019 3 E -128.914 145.607 180.081 -1.325 0.472 6.551 -62.403 85.133 0.000 0.000 S_0001_9019 ...Before rescoring ROSETTA full-atom models using the experimental chemical shift input, it is recommended to extract the models with low ROSETTA energy and 'discard' those 'bad' models with high ROSETTA energy. This expedites further analysis and can be performed by a simple command line:
extract_lowscore_decoys.py silent_file.out N > new_silent_file.outwhere the script extract_lowscore_decoys.py (courtesy of whip.bakerlab.org) is used to extract the N lowest-energy models (the energy of a model is defined as the first number in the SCORE line of a silent output file) from a silent file. The output is a new silent output file containing only the selected lowest-energy models.
If residues in flexible loops are positively identified (e.g., by RCI analysis),
the energy terms for those residues should be excluded from the ROSETTA
full-atom energy terms. Therefore, full-atom energies of models in a ROSETTA
silent output file could be rescored by a script
runRosettaRescore.com:
runRosettaRescore.com silent_file.out ref.pdbwhich basically runs a single standard ROSETTA command line:
${rosetta} -extract_segment -segments seg.txt -n ref.pdb -s silent_file.out -fullatom -fa_input -all -termini
where "ref.pdb" is a reference
PDB coordinate file and required by standard ROSETTA
"-extract_segment" module
(the C-alpha RMSD values relative to this structure will be also calculated during the re-scoring; for instance, the full atom PDB coordinate file
extracted from the lowest energy ROSETTA model can be used here, see
"Full-atom PDB coordinates extraction"), "seg.txt" is a text file deifining the segment for which ROSETTA
will calculate the new full-atom energies. Here is an example of "seg.txt":6 60 80 99 120 130which tells ROSETTA that only residues 6-60, 80-89 and 120-130 are kept for calculating the new full-atom energy for models, this file MUST locate in the current directory. The output is a new ROSETTA silent file with file name of silent_file_segment.out.
The script
runCSrescore.com cen be used to apply the chemical shift based
rescoring for ROSETTA full-atom models, using the following command line:
runCSrescore.com silent_file.out inCS.tabwhere inCS.tab is the initial experimental chemical shift input file (the same file used by the script runCSRjob.com during fragment selection). This script:
Details of each step include:
(1) Full-atom PDB coordinates extraction
To rescore the ROSETTA full-atom models, the full-atoms PDB coordinates are
required to be 'extracted' using the full-atom description encoded in the silent
output file, which can be done by using script
extract_pdb.com and a
command line such as:
extract_pdb.com silent_file.out
This script actually runs the following ROSETTA command to generate full-atom
PDB coordinates from the information in silent output file 'silent_file.out':
rosetta -extract -s silent_file.out -fa_input -all -termini -write_atoms_only
Note that the generated PDB coordinates will be stored in the directory defined
in paths.txt. The extracted PDB coordinate files will be named according to their 'description' labels defined in the silent output.
OUTPUT PATHS: movie ./ pdb ./
(2) Calculate predicted chemical shifts and "chemical shifts scores" for ROSETTA full-atom models
The ROSETTA full atom models are evaluated by comparing the initial chemical
shift inputs with chemical shifts predicted for the models by SPARTA. SPARTA
takes the standard PDB coordinates for proteins and predicts the backbone 15N,
1HN, 1H , 13C , 13C and 13C' chemical shifts using the following command line:
sparta -in inPDB.pdb -ref inCS.tab
where inPDB.pdb contains the input PDB coordinates file, inCS.tab is the input experimental chemical shifts (the same input as used for the MFR fragment search). The output is a table file with predicted chemical shifts, and the chi2 value between the predicted and experimental chemical shifts is calculated.
The script runCS_rescore.com runs SPARTA chemical shift prediction for each set of full-atom PDB coordinates generated above, and stores all outputs in a default directory "./pred".
(3) Collect energy score and apply correction using chemical shifts chi2 value
For each full-atom model, its name and raw ROSETTA full-atom energy score are
extracted from the ROSETTA silent output file
silent_file.out and stored in a
file "name.rawscore.txt". Next, the energy scores will be 'corrected' by using
the corresponding chemical shifts chi2 values (stored in file "CS_chi2.txt").
The new file with the model names and re-scored energy will be "name.rescore.txt",
which for example contains the following contents:
# name raw_energy chi2 rescore_energy S_0001_9019 -116.07 251.854 -53.1065 S_0002_6198 -124.99 140.1 -89.965 S_0003_5600 -123.80 115.019 -95.0452 S_0004_2308 -118.78 148.107 -81.7533 S_0005_3837 -111.47 75.3417 -92.6346 S_0006_9327 -119.05 110.179 -91.5052 ...
(4) Calculate RMSD values to the lowest energy model
The C_alpha RMSD values between each model and the model with the lowest re-scored
energy are calculated using the script pdbrms.
pdbrms is a program written in
C++ and can be used to calculate the RMSD values between one PDB coordinate
and a set of protein PDB coordinates. For example, to calculate the C-alpha RMSD between
ref.pdb and 1.pdb, 2.pdb, 3.pdb,
the following command line can be used:
pdbrms ref.pdb 1.pdb 2.pdb 3.pdb
The script runCSrescore.com will identify the model with the lowest rescored
energy, and calculate the C_alpha RMSD values to this model for all models in the
./output directory. The final output file "name.rms.rescore.txt" will contain the
model names, C-alpha RMSD values and re-scored energies:
# name rmsd rescored_energy S_0001_9019 1.883 -53.1065 S_0002_6198 1.384 -89.965 S_0003_5600 0.984 -95.0452 S_0004_2308 2.788 -81.7533 S_0005_3837 2.718 -92.6346 S_0006_9327 1.943 -91.5052 ...
By default, the ROSETTA running directory (./rosetta) contains the following contents upon finishing the above CS-ROSETTA protein structure generation:
| aat000_09_05.200_v1_3 | 9-residues fragment input for ROSETTA |
| aat000_09_05.200_v1_3 | 3-residues fragment input for ROSETTA |
| t000_.fasta | FASTA sequence |
| paths.txt | ROSETTA paths definition file |
| runRosetta.com | starting script to run ROSETTA |
| aat000.out | ROSETTA output silent file |
| ./output | Directory for full-atom PDB coordinates |
|
S_*.pdb |
Extracted full-atom PDB coordinates |
|
pred |
Directory for SPARTA chemical shifts prediction summaries |
| name.rawscore.txt | Output table file of model names and raw ROSETTA full-atom energies |
| name.rms.rawscore.txt | Output table file of model names, C_alpha RMSD values (to the lowest raw-energy model) and raw ROSETTA full-atom energies |
| CS_chi2.txt | Output table file of chi2 values calculated between the SPARTA-predicted and experimental chemical shifts for each model |
| name.rescore.txt | Output table file of model names and re-scored ROSETTA full-atom energies |
| name.rms.rescore.txt | Output table file of model names, C_alpha RMSD values (to the lowest rescored-energy model) and re-scored ROSETTA full-atom energies |
| rms2LowRawscore.txt | Output table file for model names and RMSD values relative to the model with the lowest raw energy |
| rms2LowRescore.txt | Output table file of model names and C_alpha RMSD values relative to the model with the lowest re-scored energy |
How to select CS-ROSETTA models
Criteria for convergence and accepting models
After finishing CS-ROSETTA structure generation, users have to decide whether the ROSETTA models are acceptable. For this purpose, it is convenient to plot the "landscape" of (re-scored) ROSETTA full-atom energies of all models with respect to their C_alpha RMSD values relative to the lowest-energy model, using the data stored in a file "name.rms.rescore.txt".


By using the current method implemented in CS-ROSETTA package, 5,000 to 20,000 predicted CS-ROSETTA models are generally required to obtain the convergence. For small proteins (<= 90-100 amino acids), 1,000 to 5,000 predicted CS-ROSETTA models often sufficient. ROSETTA takes about 5-10 minutes to calculate one all-atom model on a single 2.4GHz CPU.
| Why no (or no sufficient, i.e., <200) fragment candidates obtained after MFR fragment
search using runCSRjob.com?
Answer
|
|
How to exclude some proteins from the structural database during the fragment search? Answer
|
|
Can I use incomplete chemical shifts data for CS-ROSETTA structure generation? Answer
|