IMP logo
IMP Tutorial
FoXS: fitting structures against SAXS data

Table of Contents

Introduction

Nup133 is one of the proteins that make up the yeast Nuclear Pore Complex (NPC). The structure of this protein has been characterized by both X-ray crystallography and small angle X-ray (SAXS).

IMP includes a command line tool foxs for handling SAXS profiles, which will be demonstrated in this example. There is also a web interface available, which functions similarly.

This tutorial can be followed in several ways:

For full help on the foxs tool, run from a command line:

foxs -h

Calculation

The structure of the C-terminal domain of yeast Nup133 is available in the RCSB Protein Data Bank (PDB) as code 3kfo (file 3KFO.pdb), while the experimental SAXS profile is given in the 23922_merge.dat file, both in the foxs/nup133 subdirectory. The atomic structure can be fit against the SAXS profile by running FoXS:

cd foxs/nup133/
foxs 3KFO.pdb 23922_merge.dat

FoXS calculates the theoretical profile of the 3KFO structure and fits it against the experimental profile, and determines the quality of the fit, 𝝌 or Chi, with smaller values corresponding to closer fits. It also generates two .dat files, one containing the theoretical profile and the other this profile fit against the experimental profile. These files can be input to a plotting package (two gnuplot input files with a .plt extension are provided).

The fit in this example is not a good one (𝝌=2.96 or 𝝌2=8.76). To understand why this is so, the header of the 3KFO PDB file can be examined in a text editor. This reveals two problems. Several residues at the N and C termini were not resolved in the X-ray experiment (9 in total, 2 at the N terminus and 7 at the C terminus), and the sidechains of 16 other residues could also not be located (REMARK 465 and REMARK 470 lines). This problem can be resolved by adding in the missing atoms and residues by using MODELLER, which generated the 3KFO-fill.B99990005.pdb file.

See add-missing-residues.py for the MODELLER script used. It simply builds a model of the full sequence of 3KFO using the partial sequence as a template (see the alignment file alignment.ali). Multiple models are generated; each is fit against the SAXS data using FoXS and the best-fitting model (3KFO-fill.B99990005.pdb) selected.

The fits of the original PDB and the new structure can now be generated by running:

foxs -g 3KFO.pdb 3KFO-fill.B99990005.pdb 23922_merge.dat

The output shows that the new structure has a significantly better fit (𝝌=1.15 or 𝝌2=1.31). FoXS generates a gnuplot input file fit.plt which will plot the fits of all of the PDBs given against the profile. This can be run with:

gnuplot fit.plt

This generates an image, fit.png, showing the theoretical profiles (lines in top panel), the experimental profile (points in top panel) and the ratios of the experimental to theoretical profiles (bottom panel):

For fitting multiple states against a SAXS profile, see the next section on MultiFoXS.

CC BY-SA logo