THE SHELX HOMEPAGE        (substantially modified 1. January 2001)

This homepage provides general information about the SHELX system of crystallographic programs, and should be read by anyone planning to use the programs for the first time. See below for how to obtain the programs. Existing users should check this site at regular intervals for the latest information.

The current full release of the complete SHELX system is still 97-2 (24 March 1998), but some programs have been recompiled for new versions of operating systems and the new program SHELXD has been added. The SHELX users' list has been added to this homepage and is being updated at regular intervals. Please let me know if your email address is given incorrectly or if you wish to be removed from the list for any reason.

The new structure solution program SHELXD is now available as a beta test from the SHELX ftp server; it can be downloaded in the same way as the rest of SHELX by registered users. The instructions are in the file shelxd.htm; currently only Linux/Intel, Windows 95/98/NT/2000 and SGI IRIX (5.3 and 6.5) precompiled versions are available. Since this is a test version and I am not yet entirely happy with it, it has an expiry date so that users have to download a new debugged version in due course. The previous version of SHELXD expired on January 1st 2001 and has now been replaced by a new improved version with an expiry date of January 1st 2002. Registered users may download the new version using the same procedure as before, no further application form is required.

Several tutorials are in the process of being added; for details see below. The corresponding test data files are in the tutor subdirectory on the SHELX ftp server; this directory also contains the commented .ins file (and an .hkl file) for a typical refinement of tetragonal lysozyme since this is frequently used as a test crystal (kindly provided by Peter Mueller). New sets of RNA and DNA restraints were added in February 2000 (thanks to Peter S. Klosterman and Chad C. Sines resp.).

The notes for the July 2000 SHELX Workshop at the ACA Meeting in St. Paul are in the MSWord file aca2000.doc on the SHELX ftp server. These contain full background information to SHELXD and also introductions to the use of SHELX for new macromolecular users (there are separate chapters for heavy atom location and structure refinement, together with FAQs from first-time macromolecular users).

The new Windows executables should run under Windows 95, 98, NT and 2000 but not under DOS or Windows 3.1. They may be started either from a MSDOS input window or by double-clicking on the program in the Windows Explorer etc. In this case they will prompt for the filename stem for the data files, which has to be given with its full path but no extension; this will encourage short directory path names! The programs also wait for the user to hit <Enter> before finishing and deleting the extra window that they have created. There are two side-effects: when running the programs from a MSDOS window, it is also necessary to hit <Enter> after they have finsished, and the program SHELXWAT is not available for Windows because its mode of operation is incompatible. I should be interested to hear how many users think that these changes represent net progress!

As of 1st January 2001, I have decided that VMS is extinct and so I no longer provide precompiled versions for it! The same applies to MSDOS and IBM's AIX.

What is SHELX ?

How to obtain SHELX

Application form

List of files on ftp site and CDROM

How to install SHELX-97

Program compilation (where necessary)

Frequently asked questions (small molecules)

Frequently asked questions (macromolecules)

Thomas Schneider's FAQs

SHELX-based computer benchmarks

Support and bug reporting

Sheldrick group homepage

SHELX users' list

XtalView, SHELX and Linux (Duncan McRee)

Mini-protein refinement tutorial (Isabel Uson)

P1-Lysozyme refinement tutorial (Thomas Schneider)

Twin refinement tutorial (Regine Herbst-Irmer)

Small-molecule disorder tutorial (Peter Mueller)

Chris Waddling (UCSF) site with online HTML SHELX-97 manual

PDF version of SHELX-97 manual (Mitch Miller)

You may PRINT this file to obtain full details of obtaining and installing SHELX-97, FAQ's and new features in this version. To obtain the programs it is first necessary to send us a completed application form by fax or post; this form may also be printed directly from a browser.

All for-profit and academic users of release 97-1 may update to 97-2 free of charge and without sending a further application form.

What is SHELX ?
SHELX is a set of programs for crystal structure determination from single-crystal diffraction data. The first version of SHELX was written at the end of the 1960's. The gradual emergence of a relatively portable FORTRAN subset enabled it to be distributed (in compressed form including test data as one box of punched cards) in 1976. SHELX-76 survived unchanged - the extremely compact globally optimized code proved resistant to mutations - until major advances in direct methods theory made an update of the structure solution part necessary (SHELXS-86). Rewriting and validating the least-squares refinement part proved more difficult, but was finally achieved with the release of SHELXL-93. During this time operating systems such as RDOS, VMS and MSDOS, under which FORTRAN and SHELX flourished, rose and fell. Even punched cards became obsolete (except in Florida). The current version SHELX-97 is essentially upwards compatible with SHELX-76, for example the format of the reflection file remained unchanged (Microsoft please note). These programs are used in well over 50% of small-molecule structure determinations. Although SHELX was originally intended only for small molecules, improvements in computing performance and data collection methods have led to increased use of SHELX for macromolecules, especially the location of heavy atoms from MAD, SIR and SAD data using SHELXS (and recently SHELXD), and the refinement of proteins against high-resolution data (2.5A or better) using SHELXL.

SHELX-97 consists of the following programs:

SHELXS - Structure solution by Patterson and direct methods
SHELXD - Structure solution for difficult problems (and location of anomalous scatterers)
SHELXL - Structure refinement (the version SHELXH is for large structures)
CIFTAB - Tables for publication via (small molecule) CIF format
SHELXA - Post-absorption corrections (for emergency use only)
SHELXPRO - Protein interface to SHELX
SHELXWAT - Automatic water divining for macromolecules

The program SHELXA was kindly donated by an anonymous user. It applies "absorption corrections" by fitting the observed to the calculated intensities as in the program DIFABS. SHELXA is intended for EMERGENCY USE ONLY, eg. when the world's only crystal falls off before there is time to make proper absorption corrections. Under no circumstances should the results be published; the anonymous author does not wish to be cited in this non-existent publication because it might ruin his reputation!

Back to main menu

How to obtain SHELX

SHELX-97 is currently available by ftp transfer and on CDROM. It is free to academics (small donations are however not refused) and for a license fee of US$2499 to for-profit organizations. One license covers the use of all the programs for an unlimited time on an unlimited number of computers at one geographical location. This license income is essential for supporting the distribution and further development of the programs; we do not make a profit. A two-month free trial is available to for-profit users; at the end of that time they should either pay the license fee or send a signed declaration on company notepaper that they have destroyed all their copies of SHELX. Academic users who request the programs on CDROM are expected to contribute US$99; this may be waived for poorer countries without adequate ftp access. Applications should be made by post or by fax (NOT email) using the application form. CDROMs will be dispatched by normal post unless otherwise agreed; users intending to obtain the programs by ftp will receive the necessary instructions by email. As part of the license agreement. Users are expected to cite SHELX-97 in any publication in which it proved useful. It is understood that the author has no liability for any damage or loss caused by the programs; they may prove addictive!

Potential users of the Bruker SHELXTL version should contact Susan Byram (fax: +1(608)276-3006; email at Bruker AXS in Madison, Wisconsin, USA or Eric Hovestreydt (fax: +49(721)595-4506; email at Bruker AXS in Karlsruhe, Germany.

Back to main menu

List of files on ftp site and CDROM

To obtain a password for the ftp site, you first have to send a completed application form! The ftp site and CDROM contain the following files and subdirectories:

'shelx.htm' - the SHELX homepage as an HTML file. This file is primarily intended for users who obtain the programs on CDROM; where possible the real SHELX homepage should be consulted since it will be more up to date.

'applfrm.htm' - application form in HTML format.

Subdirectory 'unix' contains the sources of all programs for relatively standard UNIX systems. These should also compile successfully on most other operating sytems too.  Note that the source of SHELXD has not yet been released.

Subdirectory 'doc' cotains the full manual in MSWord format, one file per chapter. It is designed to print on letter sized paper.

Subdirectory 'ps' cotains the full manual in Postscript format, one file per chapter. It is also designed to print on letter sized paper.

Subdirectory 'egs' contains the test jobs and other examples files. These are in MSDOS text format, because all SHELX programs can read this format, even if they are running under UNIX, but the MSDOS versions cannot read UNIX text format.

Subdirectory 'sgi' contains the SGI IRIX executables; they should run under IRIX 5.3 or later. The executables shelxs65, shelxd65, shelxl65 and shelxh65 were compiled under IRIX 6.5 and should run appreciably faster under this and later versions of IRIX, but have not been extensively tested.

Subdirectory 'linux' contains the Linux executables for Intel processors (compiled using Portland PGF77).

Subdirectory 'win' contains executables compiled with Lahey Fortran 95 that should run under Windows 95, 98, NT or 2000. It is recommended that they are started from an MSDOS input window. Note that you can define a batch file that can set the PATH etc. on opening such a window.

Subdirectory 'dig-unix' contains executables for digital UNIX systems for Alpha CPUs; they may also run under True64UNIX. They were compiled with the -non_shared option.

Subdirectory 'tutor' contains extra tutorials and test data for macromolecular refinement.

Subdirectory 'bench' contains the sources, test data and readme file for the SHELX-based benchmarks.

'shelxd.htm' - HTML instructions for using SHELXD (not yet included in the manual)

'aca2000.doc' - MSWord format notes distributed at the SHELX Workshop at the ACA2000 Meeting. Contains detailed background information to the use of SHELXD for ab initio structure solution and location of anomalous scatterers in MAD experiments etc., as well as advice on refining macromolecules with SHELXL.

'new-dna.dic' and 'new-rna.dic' - DNA and RNA restraints in SHELXL format, kindly provided by Peter S. Klosterman and Chad C. Sines respectively.

'sfac.dsp' - table of f', f" and linear absorption coefficients for most elements as a function of wavelength; useful for planning SAD and MAD experiments and refinement against Laue data.

'shelx.pdf' - SHELX manual, as in subdirectories ps and doc, but in pdf format with links from the subject index. Converted and kindly made available by Mitch Miller.

In addition, the main directory contains gzip compressed tar files (*.tgz) of the above subdirectories. These are recommended for faster downloading.

Back to main menu

How to Install SHELX-97

In many cases it will be possible to use the precompiled versions provided. The executable programs (and the CIFTAB format files) should simply be copied from the appropriate directory on the CDROM or ftp site to a directory on your machine. This directory should be specified in the PATH so that the executables can be found. On UNIX systems the lazy way is to copy the programs into /usr/bin or /usr/local/bin; under Windows they are usually copied to C:\EXE and this directory name is then added to the PATH specified in a batch file that is called when you open the MSDOS input window. You may also wish to copy the documentation and examples files. By way of example, for a PC running Linux the following files should be fetched to your working directory using a browser (recommended) or by ftp (binary transfer !); for most other UNIX systems the installation procedure is similar:

Download the files: linux.tgz, ps.tgz (or shelx.pdf), egs.tgz and (for protein refinement) tutor.tgz

The compressed tar files can then be unzipped and extracted:

gunzip *.tgz
tar -xvf linux.tar
tar -xvf ps.tar
tar -xvf egs.tar
tar -xvf tutor.tar

which will create the subdirectories linux, ps, egs and tutor. The executables can be copied to /usr/local/bin or to /usr/bin (needs system manager priviledges!). Note that this will also put the CIFTAB format files ciftab.def, ciftab.rta and ciftab.rtm into /usr/local/bin, which is where the precompiled Linux version of CIFTAB expects to find them. For IRIX they are assumed to be in /usr/bin. Note that CIFTAB will first look for the format files in the current working directory, so that individual users may create special versions (which may also use different filename extensions).

cp linux/* /usr/local/bin

Under Linux it is particularly easy to print the documentation, because lpr can recognize and print Postscript even on a non-Postscript printer:

lpr ps/*

Under Windows it might be better to print the .doc files using MSWord. Alternatively on many systems the Adobe Acrobat reader can be used to print the file shelx.pdf. The installation is now complete!
Back to main menu

Program compilation (where necessary)

The UNIX version (sources in the unix subdirectory) has been designed to be easy to compile on a wide range of UNIX (and other) systems, but of course you will need a FORTRAN compiler! The resulting compiled programs do not need any environment variables or hidden files to run; it is simply necessary that the executable program is accessible via the PATH or an alias.

For example, for True64Unix the switch -fast is used to optimize the code for the processor in question:

f77 shelxl.f shelxlv.f -fast -o shelxl

On modern IRIX systems -Ofast should be substituted for -fast here. IT IS NECESSARY TO BE VERY CAREFUL ABOUT OPTIMIZATION. The safest is to compile without any optimization first (e.g. -g rather than -O3), run the ags4, sigi and 6rxn tests, and rename the resulting output files *.res, *.lst, *.fcf and *.pdb. Then recompile with highest optimization (e.g. -O3), rerun the tests, and use the UNIX diff instruction to compare the results with those from the unoptimized version. Small differences in the last decimal place do not matter, and of course the CPU times will differ, but if there are significant differences then the optimization level should be lowered and the tests repeated. For some systems only the shelxlv.f file (containing the rate-determining routines) can be compiled with the highest optimization level; shelxl.f must be compiled at a lower level. When the pgf77 compiler was instructed to produce optimal Athlon code, the jobs ran up to 20% faster on an Athlon, but some of the numerical answers were wrong!

The shelxl.f source calls the following routines that are not standard FORTRAN77 and may be different or not available for some FORTRAN compilers:

IARGC and GETARG: these have always worked so far; if necessary the standard C routines could be adapted since the specifications are the same.

EXIT and FLUSH: if these cause problems they can safely be commented out in the source or replaced by the dummy FORTRAN subroutines provided. EXIT is used in 2 places to tidy up before terminating, FLUSH(6) occurs once to flush the logfile so that a batch job can be watched as it runs (eg. with tail -f).

ETIME and FDATE: most UNIX FORTRAN compilers will recognize these routines. For FORTRAN90 compilers, the call to ETIME can be replaced by CALL CPU_TIME(T). For other compilers, both FORTRAN and C substitutes are provided. Usually at least one substitute will work, but the following points should be checked carefully: Some FORTRAN compilers add an underscore to the end of procedure names before searching them in a library (this avoids confusion with standard C routines that happen to have the same names). The C versions are provided both with underscores (files fdate_.c and etime_.c) and without (fdate.c and etime.c). The FORTRAN substitute for FDATE (fdate.f) calls FORTRAN routines TIME and DATE. Some compilers link in the C procedure 'time' instead, with strange results because the parameters may be different. The alternative fdate.c is safer. The C replacement for ETIME (etime.c) may suffer from time 'wrap-around' if a large value for CLOCKS_PER_SEC (say 1000000) is combined with the use of a 32-bit or shorter integer to pass the time (!). Check the type time_t and CLOCKS_PER_SEC in /usr/lib/sys/time.h (you may need to consult a Guru).

SHELXS uses the same routines and should be compiled just like SHELXL; the same applies to SHELXH, the large version of SHELXL, which uses shelxh.f and shelxlv.f etc. The rate-determining routines for SHELXS are in shelxsv.f, the rest in shelxs.f.

One commented line near the start of SHELXL, SHELXH and SHELXS needs to be changed if these programs should write MSDOS format ASCII text files rather than UNIX format when run on a UNIX system. This is useful for a heterogeneous UNIX/MSDOS network, because the UNIX versions of all SHELX programs can read MSDOS format files. but not vice versa.

The remaining programs do not require optimization (except possibly SHELXA and SHELXPRO) and do not require FDATE, ETIME, FLUSH and EXIT, so they are straightforward to compile, e.g.

f77 shelxpro.f -o shelxpro

However note that one line near the start of the SHELXPRO source may need to be altered to define the size unit of the binary files used for maps for the program O, see the comments in the source. SHELX does not itself use binary files, this avoids many incompatibilities, especially on networks of mixed computer types. Unlike SHELXL and SHELXS, there are some intentional deviations from the strict FORTRAN-77 standard in these programs. REAL*8 and list-directed reading of internal files are used in several cases, and SHELXPRO uses types INTERGER*2 and BYTE in order to produce binary map files for O. Most FORTRAN compilers have no problems with these extensions, but may output warning messages.

Note that CIFTAB will search the current directory for a specified format file, and if it doesn't find it there it will look for it it a directory that is defined in the source. Unless this is edited before compiling, the directory is set to /usr/bin, so if the executable programs are located in /usr/bin the format files ciftab.* should be there too.

Parallel and vector machines

SHELXL and SHELXS are designed to run very efficiently on vector computers (such as older Cray and Convex machines); no changes should be needed to the code. Unfortunately the crystallographic algorithms involved are less suitable for parallel computers (or multiprocessor systems); in such cases the avaliable computer resources are more efficiently used by running several jobs simultaneously, one per processor.

SHELXH - version of SHELXL for very large structures

SHELXH is a special version of SHELXL for the refinement of very large structures (with more than about 10000 unique atoms). The only difference between shelxh.f and shelxl.f is the first FORTRAN statement in which the array dimensions are specified by means of a PARAMETER statement. If even SHELXH is not large enough, you will need to change the dimensions of the arrays A and B as explained in the comments at the start of the source file. Large versions of SHELXS, SHELXPRO and SHELXA may be created in the same way, but it is rather unlikely that they will ever be required. Further details are provided by comments in the respective sources. SHELXL will print a suitable error message if it is necessary to increase the dimensions of the large arrays A or B.

A little care and fine-tuning may be required so that such large structures can be refined efficiently. If the computer does not have enough physical memory available, or if the 'maximum vector length' is set too large, SHELXH will run in disk exercising mode. This 'maximum vector length' refers to the number of reflections that are processed in one vector run, which may be smaller than the number in the input/output buffer. Some trial and error is needed to set the maximum allowed value so that the physical memory is fully exploited with a minimum of disk I/O for the virtual memory swap file. This number is set as the fourth parameter on the L.S. or CGLS instruction, and should be a multiple of 8; a good value to try for a 64MB computer is 64 (the third number on the L.S. or CGLS instruction is almost always zero). The array B is used as working space for these vectors (CGLS and L.S.) as well as for the least-squares matrix (L.S.). If the array B is not big enough, the program will use a smaller maximum vector run.

Back to main menu

Frequently asked questions (small molecules)

Q1: Please send me a copy of SHELX-76. I am afraid that I cannot use the new version because my diffractometer measures F-values, not intensities.

A: Buy a CCD detector. They measure intensities! In fact, diffractometers measure intensities too. You just need the right data reduction program. If you are desperate you can even feed SHELXL with F-values using HKLF 3.

Q2: When I start SHELXL on my PC the disk rattles loudly for several hours and smoke comes out of the back. Is this a bug?

A: You must be trying to run SHELX under some version of Windows! The best solution is to reformat the hard disk and install Linux. However the current release should produce less smoke than 97-1.

Q3: The referee rejected my paper because the weighted R-factor was too high and because the stupid program had forgotten to fix the y coordinate of one atom to fix the origin in space group P21. What should I do?

A: Try another journal; if you emphasize the 'biological relevance' enough, they may not notice the R-factor! Note that wR2 (based on intensities and all data) is of necessity 2 to 3 times higher than wR1 (based on F and leaving out reflections with say F<4sigma. Unfortunately SHELXL cannot work out wR1, because the weighting scheme for intensities does not apply to F-values. It is better to quote the unweighted R1 (with or without a 4sigma threshold) anyway, because it is too easy to cheat on wR2 by modifying the weights! It is no longer necessary or desirable to fix the origin by fixing coordinates, the program applies appropriate floating origin restraints automatically when they are needed.

Q4: The program tells me to refine extinction, this does reduce the R-factor but the extinction parameter becomes very large although my crystal could hardly be described as 'perfect'. Is this reasonable?

A: No. The most likely causes of large apparent extinction are: (a) you have input F with HKLF 4, (b) A few reflections that should be very strong have been measured as weak because they were cut off by the beam-stop, (c) your counter was saturating and an inadequate dead-time correction was made (in the case of an image plate this is an 'overload'), or (d) your counter was defective or the energy discrimination was set wrongly. Overloads may be eliminated by 'OMIT h k l' if necessary.

Q5: The structure could only be solved in P1, not P-1, but on refinement some of the bond lengths and U-values are wildly different in the two molecules. If I use SAME the geometries of the two molecules become very similar but how do I restrain the Uij components of equivalent atoms to be the same?

A: You could use EADP, but it might be better to look for the inversion center instead, otherwise you will probably be 'marshed'.

Q6: I included batch numbers in the .hkl file and BASF parameters in the .ins file, but the stupid program still didn't refine the batch scale factors!?

A: You need MERG 0 (the default MERG 2 will average the batch numbers).

Q7: How do I obtain the molecular replacement program PATSEE?

A: PATSEE has been maintained by its author, Ernst Egert, since he moved from Goettingen to the University of Frankfurt. He can be contacted by fax (+49-69-7982-9128) or email (

Q8: What should I do about 'may be split' warnings?

A: Probably nothing. The program prints out this warning whenever it might be possible to interpret the anisotropic displacement of an atom in terms of two discrete sites. Such atoms should be checked (e.g. with the help of an ORTEP plot) but in many cases the single-site anisotropic description is still eminently suitable.

Q9: I get the message ' ** UNSET FREE VARIABLE FOR ATOM ... **' but I haven't used any 'free variables'!?

A: There is a typo in your atom coordinates, e.g. a decimal point missing or replaced by a comma. Alternatively you may have really referenced a free variable that wasn't defined by FVAR!

Q10: The program prints out a Flack x parameter of 0.3 with an esd of 0.05. Is the crystal racemically twinned?

A: Not necessarily! The Flack parameter estimated by the program in the final structure factor calculation ignores correlations with all other parameters (except the overall scale factor). Since these parameters may have refined so as best to fit a wrong absolute structure, it is quite possible to get an estimate of about 0.3 for the Flack parameter when the true value is 1, i.e. the structure needs to be inverted and is not racemically twinned. On the other hand a value close to zero with a small esd is a strong indication that the absolute structure is correct. If there is any doubt the Flack parameter should be refined together with all the other parameters using TWIN and BASF.

Q11: How can I produces nice tables from the final .cif file to pad out my thesis?

A: Run CIFTAB and specify the formats 'rta' (Angstroms) or 'rtm' (SI units). This will produce a Rich text format (rtf) file that can be read directly into MSWORD or other word processors. The tables will be already formatted, but it is then easy to add a personal touch with the word processor.
Back to main menu

Frequently asked questions (macromolecules)

Q12:  The manual is too long and was clearly written for small molecule crystallographers who still seem to have time to read that sort of thing. How about a short guide for stressed protein crystallographers?

A: Print out (and maybe even read!) the notes of the ACA2000 SHELX Workshop (in the MSWord file aca2000.doc). They consist primarily of notes about SHELXD (useful in MAD phasing etc.) and about refinement of macromolecules with SHELXL. A printed version is available from the ACA.

Q13: How do I transfer my data, including Rfree flags, from X-PLOR etc. to SHELX?

A: Use the 'Y' option in SHELXPRO to convert the .fob file to .hkl, and the 'I' option to convert .pdb to .ins. Although SHELXL prefers intensities, for macromolecules it is OK to continue use F-values if you were using them with X-PLOR or CNS. In CCP4, the mtz2various program can write SHELX format files. The Bruker XPREP program (also available for a small fee to non-users of Bruker detectors) provides a space-group general option for transferring Rfree flags from one dataset to another, taking equivalents into account. It can also process MAD or SIRAS data to generate FA values for input to SHELXD etc.

Q14: I have a non-standard ligand, how do I make the topology file?

A: SHELXL doesn't have a topology file, the restraints etc. are all included in the .ins file. A good way to generate such restraints is to find a suitable fragment in the CSD, then use the 'J' option in SHELXPRO. If it's not in the CSD, you could do a quick small-molecule structure determination (using SHELX of course) and feed that into SHELXPRO.

Q15: Why are the R-factors different from those output by X-PLOR, TNT etc.?

A: Check that you are using the same data (F or intensity, resolution cutoffs, Rfree flags ?) and that the bulk solvent model is not causing problems (it tends to interact with the B-values, so it might be best to do a few refinement cycles first to sort it out).

Q16: After using SHELXPRO to prepare the .ins file from a PDB file and then running SHELXL, I get the message: 'No match for 2 atoms in DFIX' but otherwise everything seems OK.

A: This message probably refers to the fact that SHELXPRO labels the oxygens of the carboxy-terminus OT1 and OT2 so that different bond length restraints can be applied than to the same type of amino-acid when it is within a peptide chain, in which case the message can be safely ignored. Other such messages should always be investigated carefully, they may indicate missing or bad restraints or bad initial connectivity (which can be corrected using BIND and FREE).

Q17: I can solve the structure by molecular replacement in the space group P32 but the R-factors are high and the Rsym for P3221 was not much higher than for P32. What should I do?

A: Your structure may well be merohedrally twinned, but don't panic! The E-statistics can be calculated using e.g. SHELXS, SHELXD or XPREP; <|E2-1|> << 0.736 would also indicate twinning. All you need to do in this particular case is to include the two instructions:

TWIN  0 1 0   1 0 0   0 0 -1
BASF  0.3

in your .ins file and repeat the refinement job! If the BASF parameter (you can find it in the .lst or .res file) refines to a value intermediate between 0 and 1, and Rfree drops significantly, you are winning. No other special action is needed, SHELXPRO and XtalView can be used in the usual way because the .fcf file is effectively 'detwinned'.

Q18: Where is the best place to look to see where the model needs improving?

A: Atoms that are involved in restraint violations, large positive or negative difference electron density, regions with high and/or very anisotropic displacement parameters, violations of non-crystallographic symmetry, and residues in disallowed regions of the Ramachandran plot. The .lst file contains most of this information, and SHELXPRO may be used to plot displacement parameters or NCS differences as a function of residue number as well as Ramachandran and Kleywegt plots.

Q19: When is it justified to refine anisotropically?

A: In general if the resolution is worse than about 1.5 A, it is unlikely to be worth trying, but it depends on the completeness and quality of the data as well as the percentage of the solvent. A drop in Rfree of about 1% or more might be considered to justify full anisotropic refinement. In borderline cases tighter restraints, including ISOR for all atoms, may well be required. However anisotropic refinement of selected heavier atoms (iron and sulfur in metalloproteins, selenium for native selenomet data) may well be justified at lower resolution.

Q20: When should I add hydrogen atoms?

A: As late as possible because they cost computer time, though including hydrogens usually brings a drop in Rfree of between 0.5 and 1.0%. In many cases it is more trouble than it is worth to include the OH hydrogens; they tend to have higher B-values and are more difficult to position automatically. If one is unlucky, the stupid program will put two OH hydrogens along the same hydrogen bond, and the combination of antibumping restraints and the riding hydrogen model can then distort the rest of the structure.

Q21: How can I obtain real esds on the structural parameters?

A: If high resolution data are available - there must be appreciably more data than parameters - and the structure is not too large, it may be possible to obtain rigorous esds by matrix inversion. The structure should first be refined to convergence with CGLS, setting the second parameter to -1 to calculate Rfree, than a further refinement should be performed against all data by deleting this second parameter, and finally a single full-matrix cycle should be performed with L.S. 1 and zero damping and a zero shift multiplier (DAMP 0 0) in which all restraints have been removed. Often BLOC 1 will be needed to reduce the size of the matrix by leaving out the displacement parameters; the inversion will then also be more stable. BOND, RTAB, HTAB and MPLA instructions may be needed to define the dependent parameters for which esds are required. SHELXL uses the full correlation matrix to estimate the standard deviations in all dependent parameters, with the exception of the angles between least-squares planes for which an approximate treatment is used. Although the marix inversion in SHELXL is both efficient and robust, if the data to parameter ratio is too small or the matrix is too large it may fail. In principle recompiling SHELXL with 8-byte reals (for many compilers the switch -r8 suffices) should reduce numerical problems on matrix inversion at the cost of doubling the memory requirements, but in practice this has surprisingly little effect.

Q22: SHELXL complains that it does not have enough memory, what should I do?

A: Use the larger version SHELXH. If even this is not large enough, you will have to change the dimensions of the arrays A and B and recompile the program. This is explained in the comments at the start of the file shelxl.f as well as in the section on compiling in this homepage. If the problem occurs when estimating standard deviations, use BLOC to break up the matrix into smaller blocks.

Q23: What does 'nan' mean?

A: 'Not a number'. Of course no self-respecting crystallographic program should ever generate nans, so it means that something has gone very seriously wrong with the calculation. Check the .lst file for other warning messages and in particular the list of disagreeable restraints for indication of the cause. Perhaps you are simply trying to refine more parameters than the data can support. It is always a good idea to introduce changes in small steps rather than changing everything at once. Note that MORE 3 can be used to write more diagnostic information to the .lst file (which may then get rather large). It could be a compiler optimizing error, maybe it is worth trying a different type of computer system.

Q24: What is the worst resolution that is acceptable for: (a) solution of a structure by direct methods using SHELXD or SHELXS, (b) refinement with SHELXL?

A: Direct methods assume randomly distributed resolved atoms. Direct methods are crucially dependent on having atomic resolution data, say better than 1.2A. A good rule of thumb is that a least one half of the theoretically possible number of reflection s between 1.1 and 1.2A should have been measured with I>2sigma for direct methods to be successful, though this rule can be relaxed somewhat for centrosymmetric structures and structures containing heavier atoms.

The resolution is not so critical for the location of heavy atoms from delta-F data, provided that the minimum distance betwen heavy atoms is much greater than the resolution; a resolution of 3.5A if sufficient for a selenomet MAD experiment, provided that the data were measured with a high redundancy (at least 4!).

SHELXL lacks the energy terms used by e.g. X-PLOR or CNS for refinement against low-resolution data. This imposes an effective limit of about 2.5A for SHELXL refinement, but this limit may be extended a little to lower resolution if NCS restraints can be used.

Q25: I only have one heavy atom and SHELXD can't find it!?

A: SHELXD was designed to find large numbers of atoms, and it also rejects all atoms on special positions because these are usually false ('unranium atom') solutions. If you are trying to find a small number (say less than about 5) of anomalous scatterers from delta-F or FA data it is usually better to use the PATT option in SHELXS. This can even solve a one-atom Patterson and allows atoms to be on special positions.
Back to main menu

SHELX-based benchmarks of some current computer systems

To benchmark PC's and Workstations for a mix of typical number-crunching crystallographic calculations, a SHELX benchmark may be performed using the files in the subdirectory bench on the SHELX ftp server. They are based on the tests distributed with the programs with minor changes to artificially increase the computer time requirements.

log2000 - like the log test but with TREF replaced by TREF 2000.
cumos10 - like the cumos2 test but with PATT 2 replaced by PATT 10.
6rxn - exactly as in the 6rxn test distributed with SHELX.
7rxn - like 6rxn, but with CGLS 10 -12 replaced by L.S. 1 and BLOC 1.

The first two require shelxs, the last two shelxl. The total CPU time in seconds (t) for all four is then the benchmark time: the performance in Vax units is given to a good approximation by 200000/t (the Vax780 mainframe and later the Microvax II, the computer of choice for crystallographic computing for many years, both ran at about 1 Vax given enough memory). Windows executables were compiled with Lahey FORTRAN-90 version 5.6, Linux/Intel executables with version 3.2 of the Portland Group PGF77 compiler; the current Linux version of the Lahey compiler produces slower executables. The default compiler options were used for PGF77 (when the code was specially tuned for the Athlon, the tests ran up to 20% faster, but some numerical answers were wrong). For Lahey the switches -nstchk -nomap -block 32768 were employed; for True64Unix on the Alpha the option -fast and for IRIX 6.5 -Ofast were used (tests showed that these settings were more or less optimal).

Computer                           Sum of 4 CPU times    Vax units
--------                           ------------------    ---------

800MHz Athlon / W98 Lahey F95:  33.3+12.6+27.1+48.2 = 121.2  1650

800MHz Pentium-III/Linux PGF77: 22.5+13.8+27.8+50.5 = 114.6  1745

800MHz Athlon / Linux PGF77:    22.3+15.4+25.7+44.5 = 107.9  1854

300MHz SGI R12000 IRIX 6.5:     16.5+7.5+25.1+42.8  =  91.9  2176

500MHz AXP 21264 / True64UNIX:  12.9+10.1+17.2+23.1 =  63.3  3160

The cumos10 tests uses relatively little memory and does less floating-point arithmetic than the others, resulting in a different relative performance. However the four tests together represent a realistic mix for crystallographic calculations. The 800MHz Athlon chip costs under $200, so it is difficult to beat in terms of Vaxes per dollar.

Back to main menu

Support and bug reporting

The author is happy to provide advice by email ( or fax (+49-551-392582) but not phone. Questions already answered in this file or in the full documentation may be moved to the bottom of the pile! In particular he would like to be informed of any suspected bugs in the programs or of errors or lack of clarity in the documentation; the current release has benefitted enormously from such contributions by users.

Important announcement about new versions etc. will be posted on this SHELX homepage and on appropriate crystallagraphic email newsgroups.

Back to main menu