APS USAXS/SAXS/WAXS facility

Ultra-Small-Angle X-ray Scattering Facility

Software by Jan Ilavsky

Software

We provide software in two ecosystems: Python (newer, under active development) and Igor Pro (mature, widely used, maintained and relatively stable). Choose based on the platform you prefer and the task at hand.

Quick guide — what do you need?

  • Analyze small-angle scattering (1D) dataIrena (Igor Pro) or pyIrena (Python)
  • Reduce area-detector (2D → 1D) SAXS/WAXS dataNika (Igor Pro)
  • Reduce USAXS instrument dataIndra (Igor Pro) or Matilda (Python)
  • Fit exponential decay dataClementine (Igor Pro)
  • Calculate anomalous X-ray contrast (f′, f″)Cromer-Liberman (Igor Pro)

Python software

pyIrena — Irena tools in Python

pyIrena is an ongoing conversion of the Irena tools into Python. Current first stable release is 1.0.1 (at the time of this edit) and under active development. It is available on PyPI for installation on macOS, Windows, or Linux. More details are on the pyIrena page here.

Installation:

pip install pyirena[gui]

Matilda — USAXS data reduction in Python

Matilda is the Python version of the Indra & Nika packages used by the USAXS instrument for data reduction. It has a GUI, can be installed on macOS, Windows, or Linux, and can be used for GUI-based data reduction of USAXS/SAXS/WAXS data.

Installation:

# 1. Clone the repository
git clone https://github.com/APS-USAXS/Matilda.git
cd Matilda
# 2. Create the conda environment
conda env create -f environment.yml
conda activate matilda
# 3. Install Matilda with GUI dependencies
pip install -e .[gui]

Igor Pro software

Tools for Igor Pro (www.wavemetrics.com), currently at version 10.0.

Which package do you need?

  • IrenaSmall-angle scattering data analysis. Package for analysis of SAS (1D) data. It can also analyze simple reflectivity data and has basic tools to evaluate WAXS (powder diffraction) data. A number of support tools (graphing, data manipulation, etc.) are included. Widely used package.
  • NikaArea detector data reduction. Package for data reduction (2D → 1D) of SAXS or WAXS (= powder diffraction) data generated with area detectors. Widely applicable, used by the SAXS and WAXS community around the world.
  • IndraUSAXS data reduction. Package needed for reduction of USAXS data — that is, for the Bonse-Hart USAXS component of the USAXS/SAXS/WAXS instrument. Unless you used my instrument, you should not need this; the same package can in principle reduce data from desktop Bonse-Hart instruments by Rigaku, but this has not been tested for a long time.
  • ClementineExponential decay data fitting. Package for fitting any exponential decay data. It uses the maximum entropy method to generate a distribution of exponential decay coefficients for complicated (mixed) or simple exponential decay data.
  • Cromer-LibermanAnomalous X-ray contrast calculation. Igor code that calculates Cromer-Liberman f′, f″, etc. Converted from the original Fortran code.

Installation (Irena / Nika / Indra)

Current release: June2026, for Igor 9.05 and 10.x.

Irena, Nika, and Indra are all installed, updated, or removed using the same Igor experiment installer:

  1. Download the installer: GH_Installer v1.17 (older: GH_Installer v1.16; both for Igor 8.04 and higher)
  2. Run the downloaded Igor experiment in Igor and install, upgrade, or remove the packages you need. Use the same experiment later to upgrade/downgrade packages.
  3. If you are installing these packages for the first time, install the XOPs as well.

The easiest way to get started is to watch the How to install movie on my YouTube channel. Note: these packages check monthly for updates.

Older Igor versions

  • Igor 8.04 — the last supporting release is June2025, installed with GH_Installer v1.17.
  • Igor 7.08 — the last compatible release is February2020, installed with GH_Installer v1.10. Download the installer and install packages from the February2020 release, not higher.
  • Igor 6.37 — versions compatible with this release are obsolete (last updated around 2015). Links are still provided on the Irena & Nika pages, but I strongly discourage their use.