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.