I've already sent a preliminary response off-line to Colin, but waited to post to the BB until I could sort out how to do things both with the latest 2.2.x version of Phaser (distributed with nightly builds of Phenix), and with the version distributed in Phenix and CCP4 last summer (2.1.4). The computer with the relevant documentation is back in action, so here is the full response. ------------------------------------ There isn't a way to do what you want directly within Phaser, but it's fairly easy to do the calculation you want with a bit of manual intervention. However, at the moment you'll have to do the Phaser parts of this with command scripts (or the ccp4i GUI) -- the upcoming Phenix GUI for Phaser will have enough flexibility that it should become possible to do these parts from the Phenix GUI as well. If you want to place the anomalous scatterer on a particular point, regardless of orientation, the easiest way to accomplish this is to translate the starting model so that the anomalous scatterer is at the origin (i.e. apply a translation equal to minus the current coordinates of the anomalous scatterer). Let's call the resulting file "model_AS000.pdb". Rotations are centered on the origin, so the anomalous scatterer won't move as you rotate it. Then if you apply a translation equal to the desired position of the anomalous scatterer, it will end up where you want in the rotated/translated model. You'll need a list of possible rotations, which can be combined with the required translation to put the anomalous scatterer back at its known position following the rotation. To get a rotation list, you currently either have to run Phaser from the ccp4i GUI or from a command script. I'll give you command scripts, but the ccp4i GUI should be reasonably intuitive, if you know what you need to do. First, I think that if there's any value at all to the MR model, you don't need to do an exhaustive search for all orientations. The correct orientation should be somewhere near the top of the list from a rotation search. I'd probably start by trying the top 100, but if that doesn't give a clear solution it might be worth trying the top 1000. So here's how you can generate a list of the top 100 orientations, using the version of phaser in recent nightly builds of Phenix (2.2.x): phenix.phaser << eof > FRF_top100.log SUITE CCP4 HKLIN mydata.mtz ROOT FRF_top100 MODE MR_FRF LABIN F=FO SIGF=SIGFO ENSEMBLE model_AS000 PDB model_AS000.pdb IDENT 0.3 COMPOSITION protein SEQ myprot.seq NUM 1 SEARCH ENSEMBLE model_AS000 PEAKS ROT CLUSTER OFF PEAKS ROT SELECT NUM CUTOFF 100 eof The command "SUITE CCP4" is needed (for version 2.2.x, but not for version 2.1.4) because when Phaser is being run from the Phenix suite, it expects to pass rotation lists and solutions through the Python interface, not .rlist and .sol files. But we need the .rlist file containing the orientations. The syntax for selecting and clustering peaks has changed, so to make this work in version 2.1.4, replace the "PEAKS ROT" lines with: FINAL STEP 2 CLUSTER OFF FINAL SELECT NUM 100 This job will create a rotation list file called FRF_top100.rlist, with lines like: SOLU TRIAL ENSEMBLE model_AS000 EULER 80.572 41.339 186.796 RFZ 4.46 You want to take each of those lines and construct from it a potential solution (a SET in Phaser's nomenclature) with the rotation and translation both specified, and put those solutions in a .sol file. Let's say that your anomalous scatterer is at position 0.1,0.2,0.3 in fractional coordinates. Then in the .sol file, you should have: SOLU SET SOLU 6DIM ENSEMBLE model_AS000 EULER 80.572 41.339 186.796 FRAC 0.1 0.2 0.3 Actually, there's a slight wrinkle to this. The rotation search will give you a unique set of rotations, but the copy of your molecule with its anomalous scatterer in the known position might be in a symmetry- related orientation. So you either need to generate and test all symmetry-related copies of the orientation or all symmetry-related copies of the translation. The latter is probably easier for a script. For simplicity, let's assume that the crystal is P222, so that the symmetry operators are x,-y,-z, -x,y,-z and -x,-y,z. Then you need these lines in the .sol file for one orientation: SOLU SET SOLU 6DIM ENSEMBLE model_AS000 EULER 80.572 41.339 186.796 FRAC 0.1 0.2 0.3 SOLU SET SOLU 6DIM ENSEMBLE model_AS000 EULER 80.572 41.339 186.796 FRAC 0.1 -0.2 -0.3 SOLU SET SOLU 6DIM ENSEMBLE model_AS000 EULER 80.572 41.339 186.796 FRAC -0.1 0.2 -0.3 SOLU SET SOLU 6DIM ENSEMBLE model_AS000 EULER 80.572 41.339 186.796 FRAC -0.1 -0.2 0.3 I'm sure there are more elegant ways to do this (probably involving Python), but this command works (at least under tcsh on a Mac -- you may have to replace "awk" with "gawk" on some Linux systems): grep "SOLU TRIAL" FRF_top100.rlist | awk \ '{print "SOLU SET\nSOLU 6DIM ENSEMBLE",$4,$5,$6,$7,$8,\ "FRAC 0.1 0.2 0.3\nSOLU SET\nSOLU 6DIM ENSEMBLE",$4,$5,$6,$7,$8,\ "FRAC 0.1 -0.2 -0.3\nSOLU SET\nSOLU 6DIM ENSEMBLE",$4,$5,$6,$7,$8,\ "FRAC -0.1 0.2 -0.3\nSOLU SET\nSOLU 6DIM ENSEMBLE",$4,$5,$6,$7,$8,\ "FRAC -0.1 -0.2 0.3"}' \
FRF_top100_translated.sol
The fastest thing to do at this point is to just score these solutions: phenix.phaser << eof > LLG_top100_translated.log HKLIN mydata.mtz ROOT LLG_top100_translated MODE MR_LLG LABIN F=FO SIGF=SIGFO ENSEMBLE model_AS000 PDB model_AS000.pdb IDENT 0.3 COMPOSITION protein SEQ myprot.seq NUM 1 @FRF_top100_translated.sol eof But it's probably more robust to refine them, in case the position of the anomalous scatterer relative to the bulk of the fold is a bit different, and to compensate for the grid sampling of orientations. phenix.phaser << eof > RNP_top100_translated.log HKLIN mydata.mtz ROOT RNP_top100_translated MODE MR_RNP LABIN F=FO SIGF=SIGFO ENSEMBLE model_AS000 PDB model_AS000.pdb IDENT 0.3 COMPOSITION protein SEQ myprot.seq NUM 1 @FRF_top100_translated.sol eof Anyway, this is sufficiently involved that, if anyone ends up trying to follow these instructions, they should feel free to contact us for help! Regards, Randy Read On 6 Jun 2009, at 10:12, Colin Levy wrote:
Within Phenix,
is it possible to specify and lock the centre of rotation for a molecular replacement search. I have a single intrinsic anomalous scatterer within my protein which I can locate easily, therefore I would like to manually specify this point as the centre of rotation and then carry out a rotation search only about this single fixed point.
Thanks for any suggestions,
Colin _______________________________________________ phenixbb mailing list [email protected] http://www.phenix-online.org/mailman/listinfo/phenixbb
------ Randy J. Read Department of Haematology, University of Cambridge Cambridge Institute for Medical Research Tel: + 44 1223 336500 Wellcome Trust/MRC Building Fax: + 44 1223 336827 Hills Road E-mail: [email protected] Cambridge CB2 0XY, U.K. www- structmed.cimr.cam.ac.uk