Finding all ligands in a map with phenix.find_all_ligands



phenix.find_all_ligands is a command line tool for finding all the ligands in a map by repetitively running phenix.ligandfit with a series of ligands and choosing the best-fitting one at each cycle.


How phenix.find_all_ligands works:

The basic procedure for phenix.find_all_ligands has three steps. The first is to identify the largest contiguous region of density in your map that is not already occupied by your model or previously-fitted ligands. The second is to fit each ligand (you identify the candidate ligands in advance) into this density. The third is to choose the one that fits the density the best. Then the best-fitting ligand is added to the structure and the process is repeated until the number of ligands you request is found or the correlation of ligand to the map drops below the value you specify (default=0.5).

Output files from phenix.find_all_ligands

The output ligand files from phenix.find_all_ligands are normally in the temporary directory (default='temp_dir'). They will be files with names such as "SITE_1_ATP.pdb" for the placement of ATP in the first site fitted.


Standard run of phenix.find_all_ligands:

Running phenix.find_all_ligands is easy. Usually you will want to edit a small parameter file (find_all_ligands.eff) to contain your commands like this, where the ligandfit commands are sent to phenix.ligandfit: for the actual fitting and the find_all_ligands commands determine what searches are done: type:

#  commands for running phenix.find_all_ligands
find_all_ligands {
  number_of_ligands = 5
  cc_min = 0.5
  ligand_list =  ATP.pdb NAD.pdb
  nproc = 2
ligandfit {
  data = "nsf-d2.mtz"
  model = "nsf-d2_noligand.pdb"
  lig_map_type = fo-fc_difference_map

You might also want to add to this some additional commands for phenix.ligandfit. Any commands for ligandfit are allowed, except that the commands "ligand" and "input_lig_file" are ignored as the input ligand comes from the find_all_ligands command "ligand_list":

# find_all_ligands.eff  more commands for ligandfit
ligandfit {
data = "nsf-d2.mtz"
model = "nsf-d2_noligand.pdb"
lig_map_type = fo-fc_difference_map
ligand_cc_min = 0.75
verbose = Yes

where you can put any phenix.ligandfit commands in the braces.

Then you can run this with the command:

phenix.find_all_ligands find_all_ligands.eff

Possible Problems

Specific limitations and problems:


Additional information

NOTE: in addition to the find_all_ligands keywords shown here, all phenix.ligandfit commands are also allowed, except that the commands "ligand" and "input_lig_file" are ignored as the input ligand comes from the find_all_ligands.

List of all available keywords