Ethan's X-PLOR scripts
for solvent models and structure refinement

I have collected here several XPLOR scripts that I routinely use for structure refinement. These particular scripts illustrate the use of both a discrete solvent model constructed on the fly and a bulk solvent model using Babinet's principle. They also illustrate the use of an overall anisotropic B correction during refinement. Note that in all cases the Fobs values are left untouched, unlike the examples in the XPLOR manual. The scripts are

This script adds a discrete solvent model to your refinement, built by looking for H2O residues in a file current.solvent. Since the model is built on the fly from inside the refinement script, you can modify your solvent model at any time without having to alter your base protein structure file (generate.psf). If you have no discrete solvent model, just put the single word "END" in current.solvent.
This script adds a bulk solvent correction to your refinement using a method suggested by Dale Tronrud. It is the same approach to handling bulk solvent as is used in TNT and in SHELXL. Fcalc is corrected by a factor
Fc´ = Fc * (1. - Ksol exp(-Bsol * s**2))
where s = sin(theta) / lambda.
This correction allows you to use all low-resolution data for refinement (i.e. set your low-resolution cutoff to 100Å).
This pair of scripts helps to find the optimal values of Ksol and Bsol for your bulk solvent model. Each script takes a fixed value for one of the parameters and tests a range of corresponding values for the other. Generally two passes through the pair of scripts should yield an optimal set of Ksol and Bsol. For example:
  1. Set Ksol to 0.70 and run bsolref.inp to estimate the optimal value of Bsol.
  2. Set Bsol to your new estimate and run ksolref.inp to estimate a better value of Ksol.
  3. Iterate once more through the pair of routines to refine these initial estimates.
Each run of one of these scripts produces a data file which may be plotted using gnuplot. Here is a sample plot generated by a simple gnuplot script.
This script loops over a range of values for the parameter Bsol to help you choose appropriate values for the parameters in your bulk solvent model. Output is to several data files that can then be viewed using gnuplot. The idea is to choose values for Ksol and Bsol which yield the flattest Luzzati plot.
This script calculates an overall anisotropic B correction, and adds it to the existing contents of Fpartial. Both Fobs and Fc are left unchanged on exit (unlike the example scripts provided with the XPLOR tutorial).
This is my main script for crystallographic refinement. It
All my refinement scripts invoke a file by this name to establish the XPLOR force field, refinement parameters, specify the unit cell, scattering factors, etc. This one is not very different from the sample in the XPLOR tutorial, but it does make a few choices that are influenced by what my other scripts want.

Ramachandran plots
I have a script that prepares Ramachandran plots for gnuplot, with the prefered regions contoured to reflect the analysis recently performed by Kleywegt and Jones (Structure 4:1395-1400, 1997). You will have to edit the script slightly to properly describe your protein. You will also have to edit the eventual PostScript file slightly to correct the placement and font of the title.
Transfer of Rfree flags from one data set to another
There are many cases in which it is appropriate to replicate the set of reserved reflections used to track Rfree so that the same set is used for multiple data sets.

As always, I welcome any suggestions or corrections to these scripts or the description of them.
Ethan A Merritt
January 1999