NB: PHENIX and PHASER are in continuous development and some features may be slightly different from what is displayed in the pictures
To start this tutorial type
cd $PHASER_DIST/tutorial
If everything is set up correctly, you should be in the directory that this file is located in. $PHASER_DIST is an environment variable that points you to the main phaser directory, wherever that is on your system. (If this does not work you will need to source the script 'phenix_env' which is located in the top directory of your PHENIX installation.)
Next type:
phenix
PHENIX will fire up and ask you which daemon to use. Just click 'Quick' to
start a new daemon in the tutorial directory.
Go to the strategy tab and click on the strategy called 'simpleFRF'. You might have to click on the phaser [+] to open the list. The strategy should read into a new workspace and you should see the setup below
What you see here is a strategy that performs a fast rotation search on a molecule. A strategy is just a flowchart of smaller elements called tasks. Each of the blue boxes is a task that performs a certain action. Let us analyze the different tasks in detail.
The first task is called 'start up' and doesn't do anything apart from setting a few parameters that are required for the strategy to run successfully. It requires no user input, but needs to be present at the start of each phaser strategy. If your strategies fail it might be because you forgot to include the 'start up' task.
Next let us have a look at the 'data setup' task. This one is much more interesting. Click on the small button that looks like a set of rows. A new window will appear looking like this:
This is where you read in the .mtz file from your data. Click on the folder icon and you will be presented with a list of files with the .mtz extension in the tutorial directory. Choose toxd.mtz and click OK. Next we need to specify which column in the .mtz file the structure factors come from. In this case it is FTOXD3, so enter that into the F field. Finally phaser needs to know the molecular weight of the molecule. In our case it is 7139, so enter that into the MW field.
Notice how the fields change colour as you enter information into them. This shows that there are required fields that need to contain data otherwise the program will not run. On the other hand, the resolution limit fields are optional. You can enter data but if you don't the program will take the defaults from the .mtz file. That is exactly what we want in our case so leave those fields blank.
Finally let me quickly mention the PDS key field. The PDS (Phenix Data Storage) is where PHENIX puts all its information. Everything you entered in this task will be stored under a certain keyword in the PDS, for easy extraction later on. So toxd.mtz will now be stored under the keyword data. You will see later on how we extract this again.
Ok, your task should now look like this (of course the path to toxd.mtz will be different on your system):
![]() |
Click OK to save the changes and exit back to the strategy window.
Next, let us look at the 'add ensemble' strategy
This task allows you to enter the model(s) that you want to use for your rotation search. The field 'Ensemble Identifier' is very much like the 'PDS key' we had in the 'data setup' task. Again it is a keyword under which this model will be stored and by which it can later be referenced. The default name 'Ensemble1' is not very meaningful so let us change it to 'toxd'.
Next let us enter the PDB files for this model. Again, click on the folder icon and look for a file called 1D0D_B.pdb. You have to tell PHASER how good your model is and you can do this by either specifying an RMS error or telling it the sequence identity. In our case, the sequence identity between toxd and 1D0D_B is 36.4%, so select sequence identity on the pulldown list and enter 0.364 in the value field.
PHASER has a really powerful ability to merge different models together into an averaged out model. If you have two candidates then you can hope that if you put the two together into a single model, their similar features will emphasize each other and their dissimilar parts will be weighed down. This is exactly what the concept of an ensemble is.
Of course, for this to make any sense, the models in the PDB files have to have the same relative orientation. It is therefore VERY important to view your PDB files together in a graphics program (like PyMol) before you attempt to use them in this way. Fortunately this has already been done for us, and there is a second PDB file, called 1BIK.pdb that satisfies the criteria. So click on the Parametre group options pull down and select 'append.' Another row will appear. Again click on the folder icon and select 1BIK.pdb this time, with a sequence identity of 0.377. At the end of all of this your task should look like this:
Click OK to save the changes and return to the strategy window.
Next enter the task 'fast rotation search'.
This is where it is all happening. So far all we have done was to set up data and models, but now we actually get to use them. Have a look at the task fields:
The first two fields are just PDS keywords. Remember I said that we added 'data' and 'toxd' to the PDS for later retrieval. Well this is exactly where this happens. Leave the default 'data' but change the Ensemble key to 'toxd' (the same as we specified before). This tells PHASER that we want to use the model made up of 1D0D_B and 1BIK.
![]() |
Next you need to tell PHASER where it should put its solution files. By default this is the directory you started phenix from. In our case the phaser tutorial directory. This is fine. Just leave it as it is.
Next we have the job identifier. This again is a PDS keyword. Everything that this fast rotation search produces (output log, PDB files, solutions) will be bundled up together under this keyword. Leave it as it is for this job. The sigma cutoff tells PHASER to only save solution that have a signal to noise ratio above this value. If you leave it blank it defaults to 4, which is suitable for this job.
You can ignore the next two fields. I'll come back to those later.
Right, that's it! The final task in the strategy is 'Solution Viewer' and it doesn't require any input as all it does is show you the solutions that have been produced so far. You will notice that this task is not linked up to any other tasks. The reason for this is that it doesn't need to be run. In fact running it does nothing at all. What this task does is to show you what solutions are stored in the PDS. You can click on the magnifying glass at any point during the strategy execution and it will show you what solutions are in the PDS. For our job there will be nothing in it if you click on it before the task 'fast rotation search' is run and and everything after. For more complex strategies, however, this can be very usefull as you can query the PDS at any point during the run.
We are ready to go. Click the 'LOG' button at the bottom of the screen to bring up the log window (so you can follow what is going on) and then press 'RUN'. The tasks will go green one by one to show you the progress being made. As the tasks finish they will change to a purple colour to indicate that they have run successfully. Again for more complex strategies this can come in usefull, especially if you have multiple branches as you can see at a glance which tasks have run and which ones haven't.
Once the strategy has finished successfully, you can click on the magnifying glass on the 'fast rotation search' task to inspect the log files that PHASER has produced and read the .pdb files into PyMol. You can also click on the 'solution viewer' magnifying glass so view solutions from all the runs (which is the same in our case)
After running a rotation search we can then run a translation search with the output from the previous job. Click on the 'Tasks' tab and select 'fast translation search'. Again you might have to expand [+] phaser to see it.
Put the task right of the 'fast rotation search' task. Next click and drag the 'Solution' exit from the 'fast rotation search' onto the 'fast translation search'. A new connection between the two search task will be made and your setup should now look like this:
![]() |
Click on the fast translation search parameter list. The setup for this is very similar to the one for the fast rotation search with one major difference: the solution identifier at the bottom is compulsory. In order to run a translation search the rotation needs to be determined first. We have done that already so we can enter MR_FRF (they PDS beyword from the rotation job) into the solution identifier field. For each rotation that was in the solution list for that job, PHASER will perform a translation search. Depending on how many solutions the rotation search produced, this can be a lot of rotations to try, so let us cut down on that number. In the fields adjacent to it, select 'Solution Number' in the pulldown list and enter '1-3' in the next field. This tells PHASER to only consider the top 3 solutions for the translation search.
Your setup should look like this:
![]() |
You can now run the strategy again, and you will perform a rotation search
followed by a translation search. It is, however, not necessary to start the
whole strategy from scratch, as all the results from tasks that have run already
are in the PDS, so you can start the strategy from the 'fast translation search'
task. The start of a strategy is symbolised by a little green flag on one of
the tasks. Right now it should be on the 'start up' task. In order to start
the startegy later, click the little flag icon on the 'fast translation search'
task. It should turn green, showing you that this is the new start. Click 'RUN'
again to execute the rest of this strategy.
Of course we are interested to know whether our solutions are at all feasible. One such test is to see whether the molecule packs in the unit cell, i.e. To see that no part of the molecule occupies the same space as another molecule or a symmetry-related copy of itself. The packing function throws out any solutions that do overlap.
To see that our solution is indeed feasible, click on the 'Tasks' tab and select 'packing'. Put the task below the 'fast translatio search' task. Next click and drag the 'OK' exit from the 'fast translation search' onto the 'packing'. A new connection between the two search task will be made and your setup should now look like this:
Click on the packing parameter list. The setup for this is again very similar to the one for the fast searches. The solution identifier at the bottom is compulsory so we can enter MR_FTF (they PDS beyword from the translation job) into the solution identifier field. For each rotation that was in the solution list for that job, PHASER will perform a translation search. We can leave the other fields untouched.
Once again let's move the little green flag to the 'packing' task and click 'RUN' again to execute the rest of this strategy. You will notice that the solution we found indeed packs.
Now let us try something different. Remove the 'fast rotation search', 'fast translation search' and 'packing' tasks and replace them by picking the new 'fast AUTO MR search' task.
This single task does exactly what the three previous tasks did, all in one. It first performs a rotation search, then a translation search, then checks where any of the solutions pack and finally rescores the surviving solution(s).
The parameter list of 'fast AUTO MR search' is exactly the same as for a rotation search.
The fast searches usually only get the orientation and position right within a few degrees or Angstrom and generally small perturbations about these values can give even better likelihood scores.
Please get the 'refine' task from the sidebar and place it below the 'fast AUTO MR search'. The parameter list of 'refine' is again very similar to previous tasks and all that needs to be specified is the Solution ID from the previously run job. This is MR_AUTO.
Now rerun the strategy (starting from the new 'packing' task) and you will
notice that the likelihood significantly increases as the orientation and position
of the molecule are refined.
7. A full strategy: beta and blip
Let us now turn to a slightly more difficult problem. We will solve a complex made out of betalactamase (beta) and betalactamase inhibitor protein (blip). The complex is made out of 62% beta and 38% blip and the beta component is very easy to find. The blip component on the other hand is rather tricky to find on it's own. (try running a simple FRF on blip alone as an exercise).To simplify the task we will break the job into two parts, first we will solve beta, and then use the solution(s) from those runs to help us find blip.In order to do this we need a more complex strategy. Load up the 'complexFULL' strategy.
![]() |
Don't be overwhelmed by the sight of this strategy. If you look closely it really is nothing more than two simple jobs back to back. You use the output from the first set of runs and feed it into the second set.
You should be able to fill in the first few tasks without problems now. For the 'data setup', the relevant bits of information are that the .mtz file is named beta_blip_P3221.mtz (in the tutorial directory) and that the structure factor column if 'Fobs'. The molecular weight of the complex is 46375. Leave the other fields blank.
Next let us add the ensemble for beta. In the 'add ensemble' task, change the ensemble name to beta. The .pdb file is beta.pdb (located in the tutorial directory) and you can leave the RMS at 1.0. In the next task, specify another ensemble called 'blip'. The .pdb file is called blip.pdb (again located in your tutorial directory) and the RMS is also 1.0. We defined two ensembles because we have two independent parts of our complex that we search for. Note that is is different from the toxd case where we only have one part to search for but the model was made up of two .pdb files.
For the first 'fast rotation search' task, change the rotated ensemble name to beta and rename to job 'betaFRF'. We will have 2 rotations and 2 translations in this strategy so it is important to differentiate between the beta and the blip parts of the strategy. Leave the remaining fields blank. Next look at the translation search task. Again, change the ensemble name to beta and the job name to 'betaFTF'. We use the solutions from the rotation search so put 'betaFRF; into the solution field. Leave the other fields blank.
Ok, that is all we need to do to solve the beta part of the structure. We will now do exactly the same with blip on the bottom part of the strategy. In the rotation search task, change the ensemble name to 'blip' and rename the job 'blipFRF'. Now comes the interesting part. In the solution field, enter 'betaFTF'. This means that PHASER will use the solutions from the translation search of beta to infer extra information for blip and enhance the signal to noise ratio. This is one of the strong points of the likelihood based searches in PHASER and the main reason why we solve beta first.
Next fill in fields in the translation search, again changing the ensemble name to 'blip' and renaming the job 'blipFTF'. Finally we will use the solutions from the previous job, blipFRF. If you later look at the output from the 'solution viewer' task you will see that the solutions from blipFRF contain both the fixed positions for beta AND the rotation list for blip. Thus the input is continuously included back in the output and no information is ever lost.
That's it! You can now run the strategy. Be patient, it will take a couple of minutes, but you will get a very clear peak for both beta and blip. This is also a strategy where the solution viewer task comes in very handy. You can continuously check the solution contents in the PDS by clicking on the magnifying glass on this task. As the strategy executes you will notice that more and more solutions are added.
NB: You need to click the magnifying glass each time you want the display refreshed.
The data for beta and blip is highly anisotropic, which means that in different directions of the crystal we have collected data to different resolutions. Phaser can remove this anisotropy which greatly helps finding the correct solution.
Go to the task panel and look for a task called 'anisotropic correction' in the [+] phaser subtree. What this task does is to take the .mtz file and remove the anisotropy from it. It then stores the isotropic structures factors in a new .mtz file and also stores the new data in the PDS so that can be accessed in the same fashion as a the raw data.
Select the 'anisotropic correction' task and put it next to 'data setup' on your workspace. Sever the existing connection between 'data setup' and the first 'add ensemble' and instead link the output of 'data setup' to 'anisotropic correction'. Next link the exit from 'anisotropic correction' to the first 'add ensemble'. At the end of this your setup should look like this:
![]() |
You can view the parameters list for the 'anisotropic correction' task, but all the defaults are fine. What you do need to change though are the PDS data key fields in the 2 rotation and the 2 translation searches. Which our setup this go from 'data' to 'data_anis'.
You are now ready to run the strategy again and you should notice that the likelihood gain is better.
Finally, take a look at the complexAUTO strategy. This does exactly the same as the above but also checks the packing and refines the solutions for beta and blip.
![]() |