datft
Manual
The following sections briefly describe how to run DATFT from the command- line, the required input and the produced output files.
Introduction
DATFT performs a direct Fourier transform of experimental scattering data to obtain a pseudo pair distance distribution function \(p(r)\) without regularization. The transform is calculated as an approximation of:
\[p(r) = \frac{r^2}{2 \pi^2} \int_0^\infty s^2 I(s) \frac{\sin(sr)}{sr} ds\]If values for the options --rg and --i0 are provided by the user, the
scattering curve is completed in the range \(0 \le s \lt s(\text{first})\)
by extrapolation using the Guinier approximation. Further, the scattering
is extrapolated to infinity based on the Porod exponent defined with the
--decay option.
For a regularized \(p(r)\), use GNOM or DATGNOM.
Running datft
Usage:
$ datft <SASDATA> [OPTIONS]
OPTIONS known by DATFT are described in the next section, the required argument SASDATA in the section on input files.
Command-line arguments and options
DATFT requires the following command line arguments:
| Argument | Description |
|---|---|
| SASDATA | Exactly one experimental SAS data (.dat) file. |
Absolute as well as relative path to data files are accepted. Instead of a file name, the argument may be given as ‘-‘ to read data from stdin.
DATFT recognizes the following command-line options:
| Short option | Long option | Description |
|---|---|---|
| --rmax=<VALUE> | Maximum real-space distance \(D_{max}\). If not set, --rmax is computed as \(\pi/\Delta s\) from the data sampling. |
|
| --nr=<N> | Number of points in real space. If not set, DATFT derives a grid size from --rmax and \(s_{max}\). |
|
| --stop-at-zero | Stop output when \(p(r)\) becomes negative; the last value is set to zero. | |
| --first=<N> | Index of the first data point to use (default: 1). | |
| --tail=<N> | Number of points to extrapolate beyond \(s_{max}\) using a power-law tail. Default: 0. | |
| --decay=<M> | Power-law decay exponent for the tail, \(I(s) \propto s^{-M}\) (default: 4.0). | |
| --i0=<VALUE> | Forward scattering intensity \(I(0)\) for Guinier extrapolation to \(s=0\). | |
| --rg=<VALUE> | Radius of gyration \(R_g\) for Guinier extrapolation to \(s=0\). | |
| -o | --output <FILE> | Write output to FILE instead of standard output. |
| -v | --version | Print version information and exit. |
| -h | --help | Print a summary of arguments, options, and exit. |
Runtime output
The transformed \(p(r)\) data are written to stdout or to the file specified by --output.
datft input files
DATFT expects background-subtracted experimental SAS data (.dat).
If the data do not start at \(s=0\), provide both --i0 and --rg so DATFT can
extrapolate to \(s=0\) using the Guinier approximation. The --first option
allows you to skip initial points (indexing is 1-based).
datft output files
The output is a two-column text file with the real-space distance \(r\) and the corresponding \(p(r)\) value:
r p(r)
After the data points, DATFT appends key-value metadata.
Examples
Transform with Guinier extrapolation;
values for --rg, --i0 and --first from AUTORG.
$ datft --nr=101 --rmax=50 --rg=15.0 --i0=6.47 --first=2 lyzexp.dat -o lyzexp.csv
The resulting \(p(r)\) in lyzexp.csv may be displayed with PRIMUS.