Scattering Factors in XtalView

What, Where and How of XtalView Scattering Factors

*This information applies to XtalView 3.0 and later

What is a scattering factor?

Every element scatters X-rays differently depending upon its electronic structure. The scattering factor is a mathematical formula representing this scattering as a function of resolution or scattering angle. The International Tables for X-ray Crystallography Vol. IV has a listing of scattering factors (Table 2.2B, pg. 100) expressed as a polynomial expansion with the terms a1, b1, a2, b2, a3, a4 and c. These scattering factors represent a wavelength indpendent contribution to the scattering. The formula used is:

f0= a1*exp(-b1*s^2) + a2*exp(-b2*s^2) + a3*exp(-b3*s^2) + a4*exp(-b1*s^2) + c

where s is sin(theta)/lambda, where theta is the scattering angle and lambda is the wavelength of X-rays used in the experiment.

There is also a wavelength dependent component expressed as f' and f''. These values can be found for common wavelengths used in Table 2.3.1, pg. 149 in the same volume. They are applied after calculating f0 as f = f0 + f' + f''.


Where are scattering factors stored?

The scattering factors are found in a file ScatteringFactors. The program first looks in the current working directory for this file then looks in $CRYSTALDATA and finally looks in $XTALVIEWHOME/data. If not found in any of these places the programs default to a small subset that usually is sufficient but not if you have unusual atoms in your protein or if the naming is different than a simple convention.


How are the scattering factors related to the atom name?

In the ScatteringFactors file is a list of coefficients (see What) of the form:

atom_match res_match a1 b1 a2 b2 a3 b3 a4 b4 c Zeff f' f''

atom_match = this string is matched to the atom name. Matching is done to the first characters of the atom name and any extra are ignored. i.e. if atom_match is C it is matched as the UNIX C* and it will match C, CA, CD1, etc. The matching is done in the order in the file such that a later match will supersede an earlier one. Thus if you use CA+ as the name for a calcium ion you can distinquish it from carbons by putting a line with "CA+" later in the file. The special character "*" matches anything and is used to set the default scattering factor.

res_match = a string to match the residue type (e.g. ALA, GLU). Normally this is "*" to match any residue type. For difficult naming cases you may need to specify a residue type to prevent other atoms from being mistaken. An example would be NAD where the carbon atoms in the A ring are named AC* instead of the more usual C*.

a1,...c = the coefficients as explained in What.

Zeff = the effective Z number of the atom (i.e. the number of electrons bound to that atom. For Fe metal this would be equal to its atomic number 26 and for the ionic form Fe+3 it would 26-3 or 23. This is used by the structure factor calculating routines when building artificial electron density (rho) to invert.

f', f'' = the real and imaginary components of the anomolous scattering component. If you aren't explicitly using anamolous scattering in xheavy these can be set to 0.0.