Theoretical Intensity Calculation and Comparison to experimental data
From SASTBX Wiki
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.
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:
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:
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
