Last edited 6/26/09. Code and documentation by Frank DiMaio (dimaio@u.washington.edu).
Several scoring functions have been added to Rosetta which describe how well a structure agrees to experimental density data. Density map data is read in CCP4/MRC format (the density has to minimally cover the asymmetric unit). The various scoring functions trade off speed versus accuracy, and their use should be primarily determined by the resolution of the density map data:
Additionally, a slower but more precise scoring function is available. This is only recommended if elec_dens_fast performs poorly (for example, if map quality varies significantly throughout the map):
Finally, the following scorefunctions are obsolete (elec_dens_fast is recommended) but are kept for historical reasons:
These are user-controlled by a set of command-line flags (see sample command lines and options below). They may also be specified in weights file/patch files like any other scoring function. The weights to use vary depending on resolution of data but the following give reasonable ranges:
These scoring functions may be used like any other scoring function in rosetta with one key exception: because the fit-to-density score depends on the overall rigid-body orientation of the molecule, all poses to be scored must be rooted on a virtual residue, with a jump to the remainder of the pose. Convenience methods to set this up are shown below, and the rigid-body orientation should always be allowed to move (via the flag -jump_move).
Sample 1: relax a structure 1cid.pdb into a map 1cid_5A.mrc :
bin/relax.linuxgccrelease \
-database ~/rosetta/main/database \
-in:file:s 1cid.pdb \
-relax:fastrelax_repeats 4 \
-relax:jump_move true \
-edensity:mapfile 1cid_5A.mrc \
-edensity:mapreso 5.0 \
-edensity:fastdens_wt 0.2 \
-out::nstruct 5 \
-ex1 -ex2aro
Sample 2: perform homology modeling using density data (for complete documentation of homology modeling see RosettaCM:
1) Replace the scorefunction block in the XML file with:
<SCOREFXNS>
<stage1 weights=score3 symmetric=0>
<Reweight scoretype=atom_pair_constraint weight=0.5/>
<Reweight scoretype=elec_dens_fast weight=10.0/>
</stage1>
<stage2 weights=score4_smooth_cart symmetric=0>
<Reweight scoretype=atom_pair_constraint weight=0.5/>
<Reweight scoretype=elec_dens_fast weight=10.0/>
</stage2>
<fullatom weights=talaris2013_cart symmetric=0>
<Reweight scoretype=atom_pair_constraint weight=0.5/>
<Reweight scoretype=elec_dens_fast weight=25.0/>
</fullatom>
</SCOREFXNS>
2) Use the commandline:
Rosetta/main/source/bin/rosetta_scripts.linuxclangrelease \
-database Rosetta/main/database \
-in:file:fasta target.fasta \
-parser:protocol hybridize.xml \
-default_max_cycles 200 \
-edensity:mapfile 1cid_5A.mrc \
-edensity:mapreso 5.0 \
-nstruct 10 \
-dualspace
Common options:
Input map in CCP4/MRC format covering the asymmetric unit.
The resolution of the data. If not given it will be estimated from the voxel size of the input map.
Use cryoEM scattering factors (default: X-ray).
IF SUPPORTED BY THE PROTOCOL (see below for supported protocols), set the weight on the corresponding scorefunction.
Width (# residues) to use for sliding window scoring. Must be an odd value; default is 1. Higher values are recommended in low-resolution cases (3,5 or even 7).
Less frequently used options:
Mask width around each atom/CA [default resolution-dependent]
Rigid-body minimize into density after loading the map.
Supported protocols:
To enable fit-to-density scoring during ab initio, a claimer must be added to the topology broker file:
CLAIMER DensityScoringClaimer
anchor 98
END_CLAIMER
In general the anchor residue should be in a region that will remain fixed throughout the protocol (to avoid unintentional rigid-body movement of the entire structure); for example within a rigid chunk in the RigidChunkClaimer. In general, fit-to-density weight should not be turned on until very late in the protocol (stage 3 or stage 4).
A mover, protocols::electron_density::SetupForDensityScoringMover has been added which does the following in preparatio for scoring a structure against density:
The third option is intended for comparative modelling cases where there may be missing density in the starting pose.
A function has also been added, core::scoring::electron_density::add_dens_scores_from_cmdline_to_scorefxn(ScoreFunction&) , which uses values of -edensity:sliding_window_wt, edensity:whole_structure_ca_wt and edensity:whole_structure_allatom_wt to update the score function.
For protocols which do not modify the root of the fold tree, this is all that is needed to make use of fit-to-density scoring (although additional moves that modify the rigid-body orientation of the system may be necessary to produce meaningful results).