Theoretical Intensity Calculation and Comparison to experimental data

From SASTBX Wiki

Jump to: navigation, search

Two methods are commonly used to calculate SAXS intensity profiles: Debye Formula and Spherical Harmonic Expansion (She) method, and newly developed Zernike Polynomial Expansion (zernike) method.

First of all, like all other programs in sastbx, there is brief online help when no parameter is supplied to command line:

 sastbx.she

and you will see:

 Usuage: 
 
   sastbx.she model=mymodel structure=mystructure.pdb experimental_data=myexperimentaldata.qis pdblist=pdblist.txt q_start=q_start q_stop=q_stop n_step=n_step output=outputfile
 
 Required arguments:
 
   mystructure             the PDB file to be evaluated (must be provided)
 
 Optional arguments:
 
   mymodel                 the model type to be used, it should be either debye or she (default is she)
   myexperimentaldata.qis  the sas profile, columns are q, I(q), and std
   q_start, q_stop         defines the range of q
   outputfile              the file used to store computed sas profile, default is output.iq (could be overwritten)


Given a pdb model, the intensity profile will be calculated and saved. Here we use the lysozyme (6lyz.pdb) as an example:

 sastbx.she structure=6lyz.pdb

and then you will see:

 #phil __OFF__
 
 ======================================================================
                       Debye/SHE Model
    Model data from a Debye or Sphereical Harmonics Expansion engine
 ======================================================================
 
 
 
 #phil __ON__
 sas_I {
   method = *she debye zernike
   structure = "6lyz.pdb" 
   experimental_data = None
   data_reduct = False
   pdblist = None
   q_start = 0
   q_stop = 0.5
   n_step = 51
   output = "output.iq"
   internals {
     rho = 0.334
     delta = 3
     drho = 0.03
     max_L = 15
     max_i = 17
     f_step = 0.8
     integration_q_step = 0.01
     solvent_radius_scale = 0.91
     protein_radius_scale = 1.2
     use_adp = False
     implicit_hydrogens = True
     solvent_scale = False
   }
 }
 #phil __END__
 ****************** WARNING WARNING  *******************
 Did not find atom type:   default value 1.58 A was used
 *******************************************************
 Warning: unexpected atom found, and C element is used
 Inner surface Area of the Envelop is (A^2.0):  3494.73450491
 Inner Volume of the Envelop is       (A^3.0):  21621.2750018
 Volume of the Envelop shell is       (A^3.0):  12854.2701303
 start running at:                 Thu Oct 21 17:42:03 2010
 finished PDB file processing at:  Thu Oct 21 17:42:04 2010
 got all desired I(q) at :         Thu Oct 21 17:42:06 2010

The default range of q is from 0 to 0.5 A-1. The desired range and step of q can be changed by changing q_start, q_stop, n_step, for instance:

 sastbx.she structure=6lyz.pdb q_stop=0.3 n_step=101

The q range will be from 0.0 to 0.3A-1, with step of (0.3-0.0)/(101-1) = 0.003 A-1

The intensity profile will be saved to output.iq by default. The file name can be changed to any name by giving output=your_name_it, i.e.,

 sastbx.she structure=6lyz.pdb output=6lyz.iq

There are five columns in the 6lyz.iq, as you will see:

 # q     I_total         I_A             I_C             I_B
 0.0     4863126.02942   58101230.9286   33673146.271    148756.808148
 0.01    4826765.608     57722331.0013   33451497.2352   146836.711796
 0.02    4719225.79072   56599726.8924   32794907.9446   141204.121147
 0.03    4545027.99067   54774875.9287   31727950.8492   132229.788238
 0.04    4311373.92442   52314172.9493   30289950.157    120491.985207
 0.05    4027675.59372   49305120.3486   28532673.5198   106722.056289
 ...


We keep the entries consistent with Crysol output:

 q:       q value
 I_total: total intensity
 I_A:     intensity of the model in vaccum
 I_C:     intensity of the displaced solvent 
 I_B:     intensity of the solvation layer

You can use xmgrace or gnuplot to show the intensity.

eft

If there is experimental data available, you can supply it to the program, such that the calculated intensity profile will be fitted to the given experimental data, here we used the data collected from ALS in LBL on beamline 7.3.3., lyso.dat:

 sastbx.she structure=6lyz.pdb data=lyso.dat output=6lyz.iq

This time, the range of q's will be the same as the given experimental dataset.

There will be two output files: the raw intensities (6lyz.iq) and a fitted profile (6lyz.iq.fit).

Furthermore, similar to crysol, sastbx.she allows changes on solvents to improve fitting, for example:

 sastbx.she structure=6lyz.pdb data=lyso.dat output=6lyz_solv.iq solvent_scale=True

The optimized fitting data is saved to 6lyz_solv.iq.fit.

The comparisons are shown in this figure:

eft

The Volume of the molecule will be reported in the on-screen log file.

The optimized solvent displacement parameter and the solvation layer contrast density will be also shown.

The intensity discrepancy is measured by chi:

\chi\, =  \sqrt{\frac{1}{N}\ \sum_{i} \left( \frac{I_{i}^{expt} - I_{i}^{calc} }{s_i^{expt}} \right)^2 }

At last, if you have different conformations of the same molecule, you can list the PDB file names in a file, and add it to the command line, this will speed up the calculation by avoiding processing atom types and form factor calculations, i.e.,

 sastbx.she structure=6lyz.pdb pdb pdblist=list.txt

In the list file, the PDB file names should look like this:

 file_1.pdb
 file_2.pdb
 file_a.pdb
 ...

and the corresponding intensity profiles will be:

 file_1.pdb.int
 file_2.pdb.int
 file_3.pdb.int
 ...

Finally, as usual, there will be online help if there is no parameter to the command:

 sastbx.she

and you will see:

 Usuage: 
 
   sastbx.she model=mymodel structure=mystructure.pdb experimental_data=myexperimentaldata.qis pdblist=pdblist.txt q_start=q_start q_stop=q_stop n_step=n_step output=outputfile
 
 Required arguments:
 
   mystructure             the PDB file to be evaluated (must be provided)
 
 Optional arguments:
 
   mymodel                 the model type to be used, it should be either debye or she (default is she)
   myexperimentaldata.qis  the sas profile, columns are q, I(q), and std
   q_start, q_stop         defines the range of q
   outputfile              the file used to store computed sas profile, default is output.iq (could be overwritten)

Theoretical Intensity Calculation and Comparison to experimental data

P(r) Estimation

Structural Refinement

Shape Recovery

Personal tools