Using the rhofit program

Rhofit is a tool for fitting ligands into difference density. It differs from FitMAP in that it is able to change bond lengths and angles within the ligand, rather than only rotate torsion angles; this also allows it to search for correct ring conformations, including macrocycles. In addition, rhofit can also search for the correct chirality if this is not known for an input ligand.

Rhofit uses the gelly geometry function to assess ligand strain and protein-ligand contacts, so its results will be compatible with further BUSTER refinement. Rhofit runs a large number of independent trials and reports the best solutions that it finds; you can give it some idea of how long you want it to search for. We aim for rhofit with default parameters to take significantly less time that the refinement required to produce its input.

Get started immediately

Take some structure in which there is a ligand to be found and do

refine -L -p structure.pdb -m data.mtz -d 00 | tee 00.lis

to tell autoBUSTER to try ligand-chasing.

There are a fair number of command-line arguments available, but the easiest use cases are

By default, rhofit will produce a list of the connected blobs of difference density in the input MTZ files which are large enough to contain the ligands, try briefly to fit the ligand into each of these blobs, and then try much more intensively to fit the ligand into the single blob into which it seemed to fit best. If you expect there to be more than one copy of the ligand in the structure, use the -xclusters option.

After the rhofit command has finished, it will create a directory 'rhofit'. The easiest way to explore this directory is with the tool visualise-rhofit-coot, which lets you look through the list of positions that rhofit has found for your ligand; they are in order of correlation coefficient so generally the correct conformation should be the first one that appears. If you don't want to use that tool, best.pdb is the best conformation, and best.dic is the associated dictionary.

There are tutorial examples on the consortium wiki here

Details of command-line arguments

Telling rhofit what to fit where

-lp ligand.pdb PDB file containing model of the ligand. Note that rhofit at present does not handle PDB files containing hydrogen atoms.
-l ligand.dic Dictionary for ligand. A dictionary is automatically generated if not given.
-m refine.mtz MTZ file to use for difference density
-p refine.pdb PDB file to use for determining protein/ligand clashes
-c cluster.pdb Filename of a single cluster in which to fit the ligand
-C cluster.lis Filename of a file containing a list of clusters in which to try to fit the ligand

If you run 'rhofit -lp ligand.pdb' in the output directory from a 'refine' command, it will pick up refine.mtz and refine.pdb. If you don't give it any cluster files, it will find Fo-Fc clusters in the MTZ file on its own.

Telling rhofit how to evaluate clusters

-allclusters Try using every cluster
-xclusters n Use the n clusters in which the ligand seems to fit best

The default is to attempt to fit the ligand in every cluster found, and then run further on the single cluster in which it fits best.

Telling rhofit how to fit the ligand

"How to fit the ligand" encompasses a number of options; you can tell rhofit to ignore the description of the ligand's chirality, and you can tell it how long it should spend looking for good conformations.

-nochirals Ignore all CHIRAL cards in the dictionary
-scanchirals Try fitting with every possible permutation of chiralities. Note that this will try large numbers of permutations if the ligand has many chiral centres: 256 permutations for a ligand containing two ribose rings
-clusterweight x Set weight used for shape score to x (default 0.25)
-clashweight x Set weight used for protein-clash detection to x (default 0.5)
-quick Run fewer trials than usual; note that this may not find good conformations for complicated ligands
-thorough Run more trials than usual; this is an option to use in pipelines where you have large amounts of compute power available and are not waiting impatiently for the result

Telling rhofit how to evaluate solutions

-nocorrel Use rhofit's own score for solutions rather than a correlation coefficient against Fo-Fc. This is significantly quicker.

Telling rhofit where to put results

-td directory Directory for temporary data during refinement (defaults to a system temporary directory)
-d directory Directory to put final results (defaults to ./rhofit)

What do I do if rhofit doesn't work immediately?

As we at Global Phasing get more experience with the use of rhofit by our customers, we will add to the wiki page here

If rhofit crashes, please email and tell us as much as you can about what you were doing when it crashed; if you can rerun the job with -td temp and send us temp.tar.gz, that would be perfect. Whilst we have exercised rhofit thoroughly on OS X and two versions of Linux, it is possible that we've missed some issues on other Linux distributions.

Please let us know if you would like any feature to be added to rhofit by email to