![]() | Chazin Home | Ca-binding Protein DB | Vanderbilt Home | ![]() |
Research Description | Publications | Wisdom | Search | ||
How to contribute | About this page |
Art Palmer's Modelfree is a very efficient and powerful program for the modelfree
analysis of relaxation data -- if you can get it to run. For the most part, you
can follow the manual and expect things to work correctly, although certain
things will cause problems, usually resulting from problems in the input files,
which are created in our lab through a set of scripts
to assist the analysis of FELIX data written by Mikael Akke.
The README from that package is below,
with some modifications and clarifications I figured out the hard way.
The following is a flow-chart type description of the analysis procedure;
additional information on a certain script is generally available
in the header of that script.
The evaluation of peak intensities are made within Felix. Felix macros (.mac)
and schemas (.sch) are provided for this purpose.
1. Create an xpk:peaks entity in your dba. Back-up this data base (just to
be on the safe side).
2. Copy the schema xpkhgtv.sch to your schema directory.
3. Run the macro xpk_hgt_vol.mac. This will create a new entity called
peakmax in your dba. This macro has one small problem with it. It tries
to delete vol:volumes and xpk:peakmax, which is fine, although the first time
you run it there won't be those two tables and the macro will crash. Copy the
macro, rename it, and run it again, with both deletion commands commented out.
peakmax looks much like xpk:peaks, but contains
the following additional items: (i) the intensity maximum found within the
xpk boundaries and (ii) the volume of the xpk. in addition, the coords for
the xpk center will be replaced by the coords for the intensity maximum.
The macro will write out the peakmax entity. You may want to change
the name of the output file, so that it fits nicely with subsequent
analysis scripts (read on).
If you have a number of matrices to measure peak intensities in (as you
most likely will have), then the macro doall.mac can be useful, at least
as a starter for further modifications. Felix2.3 allows batch processing,
making it easy to process-evalutate-and-delete the matrices, and thereby
saving space on the disk. The script doall does just this.
NOTE: For all data sets, e.g. T1, T2 and NOE, there may be a concern that
for weak peaks, especially at later time points of the relaxation
data, the xpk_hgt_vol.mac will find the peak maximum at a location
that doesn't correspond to that where the stronger peaks have been
found. To check if this presents a problem run the script:
checkmaxpt (more below).
If this indeed does present a problem, then a possible solution for
the T1 and T2 data sets is to first run xpk_hgt_vol.mac on the
spectrum with the highest intensities, and then xpk_hgtvfix.mac
on the low intensity spectrum using the database that was modified
by xpk_hgt_vol.mac.Note that xpk_hgtvfix.mac can
have the same problems as xpk_hgt_vol.mac above; if it crashes,
comment out the appropriate deletion command and re-run the macro.
After this stage, you will have one Felix output-file for each matrix
(e.g. int.1, int.2, etc), containing the peak intensity information.
Assuming that you have recorded duplicate spectra for some of the relaxation
delays, the next step will be to use these for the evaluation of uncertainty
in peak intensities in the spectra.
1. Run the snratio_felix script for each pair of duplicates:
snratio_felix int.1 int.2 > output
2. For T1 and T2 data:
Create a masterfile (use your favorite text editor, e.g. `vi'),
that contains a list of the identifier for the int file (e.g. for file
int.2, the identifier is 2), the corresponding relaxation delay in seconds
and the uncertainty in peak height (as obtained from snratio_felix).
Interpolate points in order to obtain estimates of the uncertainties for
the relaxation time points where no duplicate were taken.
A example masterfile lies below.
1 | 0.016 | 4561.33 |
---|---|---|
2 | 2.608 | 3313.22 |
4 | 1.224 | 3012.10 |
5 | 0.216 | 3411.75 |
6 | 0.800 | 2919.85 |
7 | 0.360 | 3290.46 |
8 | 0.544 | 3135.48 |
9 | 0.216 | 3411.75 |
10 | 0.800 | 2919.85 |
11 | 0.016 | 4561.33 |
12 | 2.608 | 3313.22 |
NOTE: Several of the scripts get their input by doing an `ls' and looking
for all files present that conform (in some way) to the file name(s)
provided on the command line.
The draw-back with this is that you may need to think twice about
how you name your files (and make sure that you keep rather clean
directories), but the great benefit is that you never need to give
the number of files, nor give a list of all of the files, as input.
3. For T1 and T2 data:
Run the felix2relax script:
felix2relax filename masterfile output_extension
filename is the core filename (i.e. int, in our example).
masterfile is (you guessed it) the name of the masterfile.
output_extension is the extension of the output-file names.
One output file will be created for each peakmax entity (i.e. each record
in the int.* files). The output-file name will be given by the xpk name
(e.g. s74) and output_extension (e.g. t1) [resulting in s74.t1].
felix2relax will take care of ambiguous xpk names; currently we have
indicated ambiguity by incorporating a "/" or "?" in the xpk name in the
Felix dba (e.g. a12/g54, t24?, s45/, v34/k73?, e33/y99/w90, or any such
combination). You can easily modify this to fit your own taste.
3 1/2. For T1 and T2 data:
Run the checkmaxpt script:
checkmaxpt file_name cut_off_w2 cut_off_w1 new_extension outfile
filename is the core filename (i.e. int, in our example).
cut_off_w2 is the maximum number of points that you allow the location
of the peak maximum to differ in w2 between different spectra in
the series.
cut_off_w1: ditto for w1.
new_extension is for output files corresponding to each individual
residue.
outfile is file containing all of the individual files concatenated.
checkmaxpt creates a file called outfile.summary that contains only
those instances where the peak maximum location for a certain xpk
differs more than cut_off points from the average coordinates.
3 1/2+. For T1 and T2 data:
Run the merge_input script:
merge_input input_extension1 input_extension2 checkmaxpt_file \
masterfile output_extension
input_extension1 is the extension filename for the relaxation series,
where the intensity is evaluated by searching for the maximum point.
input_extension2 is the extension filename for the relaxation series,
where the intensity is evaluated at fixed coordinates.
checkmaxpt_file is the summary output file from checkmaxpt (possibly
edited by you, after you have looked into the origin of the deviations).
masterfile is the same as the one described above.
output_extension is the extension of the resulting output files (e.g.
t1merge).
4. For T1 and T2 data:
Run the run.r1 (run.r2) script:
run.r1 input_extension output_extension output_file
input_extension is the same as output_extension from the previous step
(i.e. t1, following the example of 3 above).
output_extension is the extension of the output-file names for the
individual xpk files (e.g. rifit).
output_file is a file that contains the contents of all of the indivual
files.
run.r1 will drive the invrecr1 program that fits your t1 inversion recovery
data (your *.t1 files), create one output file of fitted relaxation
parameters for each residue (*.r1fit) and one output file containing the
contents of all of the individual output files.
5. For T1 data:
Run the r1X2comp script:
r1X2comp input_file > output
input_file is the same as the output_file from run.r1 (step 4).
r1X2comp will check which xpks have been successfully fitted to
the inversion recovery equation, and which have not.
6. For T2 data:
Run the r2bestfit script:
r2bestfit input_file > output_file
input_file is the same as the output_file from run.r2 (step 4).
r2bestfit will check which xpks have been successfully fitted to
the cpmg decay equation, and how many parameters are needed for the fit.
7. For T1 data:
Run the r1plotextract script to get a file that can be fed to
your favourite plotting program (e.g. kaleidagraph, templegraph):
r1plotextract input_extension output_file
input_extension is the same as output_extension from the previous step
(i.e. r1fit, following the example of 4 above).
8. For T2 data:
Run the r2plotextract script to get a file that can be fed to
your favourite plotting program (e.g. kaleidagraph, templegraph):
r2plotextract r2bestfit_output output_file
r2bestfit_output is the output_file from r2bestfit (step 6).
9. For NOE data:
Run the noecalc_felix script:
noecalc_felix noe_int no_noe_int >output
noe_int and no_noe_int are int files (Felix output). (Preferrably
from a pair of spectra that have been acquired interleaved).
output is a file with the xpk name and the noe, i.e. the ratio of the peak
intensity in noe_int and no_noe_int [i.e. intensity(noe)/intensity(no_noe)]
as calculated from both the peak heights and volumes.
10. For NOE data:
Run the noeavesd script:
noeavesd noe_file_1 noe_file_2 ... > output
noe_file_1 is the output from noecalc_felix for one pair of spectra.
noe_file_2 is the output from noecalc_felix for another pair of spectra.
(noe_file_3 is the output from noecalc_felix for a third pair of spectra.)
noeavesd calculates the average noe and the standard deviation from the
duplicate (triplicate?...) noe_files.
The output can be directly imported into plotting programs.
11. Now you have all the relaxation data in neat little files.
Time to create the input files for mfgrid. Run the makemfgin script:
makemfgin r1_file r2_file noe_file output_file (=mfinput)
You will need to edit the output file in order to set some flags
that the optimization program uses.
12. After having run mfgrid and modelfree, you will probably want to
extract the model-free parameters, and put them into a plotting-
program-friendly format. Run the s2plotextract script:
s2plotextract modelfree_output_file > output
There are several different versions of s2plotextract that outputs
different statistical data (*.95, *.gearyz) or the entire sequence
of residue numbers (*.seq).
For further notes and help, please first take a look in the header of the
script in question, or look at the man pages of the model-free programs.