Back to index

Preparing a new PDB for Rosetta


Jeff Gray has written a series of PDB scripts for manipulation of PDB files to create Rosetta starting structures.  These are located in $rosetta_scripts/pdb_scripts.  The file pdb_scripts.README in this directory describes how to use these scripts. 
  1. Put the largest docking partner first (Rosetta only moves the second docking partner in the pdb file; that is, the first partner is fixed.  Put the largest partner first to save CPU time).  The rosetta script extractChains.pl can do this for you--run without arguments for usage help.
  2. Docking partners are separated by a line beginning with 'TER' (as opposed to the usual pdb format, where TER lines separate different polypeptide chains).  Also put a 'TER' after the last docking partner.  Remove any TER lines between chains of the same docking partner.  Failure to properly place TER lines can cause severe failure of Rosetta (it can't tell which docking partner is which) (extractChains.pl can fix the TERs for you too.)
  3. If necessary (usually for a blind run), orient the two partners relative to each other using Swiss PDB viewer, or another program that you may find more appropriate.  You can do this from scratch, or if you are wish to reproduce the partner orientation in a related pdb, you can use magic fit to overlay one of the chains onto its corresponding chain in the "parent" pdb file.  For a blind run, you will want to put the partners far enough apart that they can rotate freely relative to each other, but no farther apart than that (this will tend to cause a lot of contact failures)
  4. A final (but important) point.  The way rosetta is set up, pdb codes must be exactly four letters long (standard pdb format).  If you give it a pdb code that is either less or more than four characters, different parts of the code will handle the illegal pdb code differently, usually resulting in some cryptic file path error.  It is best not to commit this error in the first place as the resulting problems are hard to decode.
For example, if your two docking partners are chainL+chainH (one partner) and chain A, and chain L + chain H is larger than chain A, then you will want to format your pdb as follows:

<chain L>
<chain H>
TER
<chain A>
TER

Note there is no TER between L and H because they are in the same docking partner.

Back to index