Advanced Photon Source at Argonne National Laboratory   APS USAXS instrument
USAXS instrument at the Advanced Photon Source,
X-ray science division, beamline 9ID-C

Advanced Photon Source

A U.S. Department of Energy, Office of Science,
Office of Basic Energy Sciences national synchrotron x-ray research facility

Argonne Home > Advanced Photon Source > USAXS >

Important links:

USAXS web page

Irena 2 (software for SAS modeling)

Nika 1 (software for SAS area detector  data reduction )

Irena 2 movies & Handouts

Nika movies & Handouts

Indra 2 (software for USAXS data reduction)

Some other useful code for Igor Pro I wrote:

Cromer-Lieberman code for IgorPro (ver. 4.0): AtomicFormFactors

Clementine, package for modeling decay kinetics

Other useful links…

Home page of Pete Jemian (more SAS)

APS SAS web page

Irena package for analysis of small-angle scattering data

Please use following citiation when using Irena package:

"Irena: tool suite for modeling and analysis of small-angle scattering", J. Ilavsky and P. R. Jemian, J. Appl. Cryst. (2009). 42(2), 347-353. (request pdf copy)

Irena is package of tools for analysis of small-angle scattering (SAXS, SANS, USAXS, USANS) data. It is mostly useable for analysis of data in materials science, chemistry, polymers, metallurgy, physics, and other systems of typically solid or liquid samples. It addresses complex systems with size distributions, hierarchical structures, diffraction peaks, etc. For less complex systems use NIST SAS data analysis package for Igor Pro. Irena also contains simple X-ray and neutron reflectivity tool, for more complex systems use Motofit. All of these packages are written for Igor Pro from Wavemetrics, Inc. Irena is typically NOT used for analysis of data from most bio-SAXS experiments, there you most likely need program ATSAS.

Current veraion contains main tools:

  1. Unified fit
  2. Modeling - Direct modeling of SAS from up to 10 populations on up to 10 data sets at once. Selection of form factors and structure factors, Unified fit, Mass or Surface Fractal, and Diffraction peaks.
  3. Size distribution using Maximum Entropy, Total Non-Negative Least Squares and Regularization methods
  4. Guinier-Porod model
  5. Fractal model (combination of mass and surface fractals)
  6. Debye-Bueche, Ciccariello-Benedetti, and Treubner-Streus models
  7. X-ray and Neutron reflectivity using Parrat's recursive method
  8. Small-angle diffraction tool (up to 6 diffraction peaks)
  9. Pair distance distribution function (PDDF, P(r), see GNOM from D. Svergun for more details)
  10. Powder diffraction peak fitting tool (WAXS)

    Support tools
  11. Data plotting tools - 2D, 3D, can create movies of plots.
  12. Merging of two overlappind data sets (SAXS curves from differnet distacnes etc.).
  13. Scattering contrast calculator, including anomalous effects using Croman-Liberman code
  14. Data import tool - imports data from ASCII & XML (CanSAS XML) files 
  15. Data export tool - exports data to ASCII files
  16. Data manipulation tools - subtract, scale, multiply, etc. - change data as needed.
  17. Desmearing using Lake method
  18. Data "mining" tool
  19. Scripting tool - scripts Unified fit, Modeling II, Ploting tool, and Size distribution to run automatically on multiple data sets
For more detailed description, please see here:

On-line manual : We now have on-line manual, you can open it in you web browser and read it here: .

Wiki : There is now wiki for Irena and Nika packages on our Github depository. Check it up - questions of general importance may be asnwered there, if someone already asked them.

Discussion forum for users (in testing mode): Gitter

Mailing group for Irena users: If you want to be informed about Irena updates and possibly have place to inquire about SAXS/SANS analysis problems, visit the page: where you can join this group.

Workshops on using Irena & Nika packages... since 2012 we organize at the APS ~ three sessions per year workshops on use of Irena and Nika packages. To request to be put on waiting list for next workshops send e-mail to Connie.

Current version
released 11/5/2017
Installation method
Igor 7.05 and higher
Use only one of these methods

(for most)

For Igor 7 only.
Check Youtube channel for instructions.
Uses Github to distribute Irena, Nika, and Indra. Most likely what you want!

Clone & link
(for experts)

For Igor 7 only. Clone the Github depository to your computer and link folders from your clone to proper Igor locations. If you need help, let me know.
NOTE: Github depository "master" version should be considered development version and while I try to submit to Github only working versions, the code is "beta" version only...

Manual & help
WEB version of manuals for Irena and Nika. If needed, download pdf version of the manuals from that web site.

Igor 6 version :


Igor 6.37 32bit
(Irena ver. 2.63 )

For Igor 6.37, Installs/updates/uninstalls Irena (+Nika, Indra, and 32 bit versions of xop),
uses APS depository
Irena version 2.63 is the last version which is Igor 6 compatible and is now obsolete.
NOTE: 64bit version of Igor 6.37 is NOT supported, use 32bit version ONLY.

If the above fails:
Igor 6.37, local copy

Universal Installer 1.32.pxp, (~50Mb)

If you have bad network connection or need to install on many computers at once. Download both files, unzip the zip file and place in the same folder with the Universal Installer. Run the Universal installer and choose "use local copy". For Igor 6.37, 32bit version ONLY.

Manual methods (not recommended, unless above methods fail)
zip files
Download, unzip and install manually to proper places as indicated by folders in the zip file. Iinstall xop support manually (see below), including installing HDF5 support (provided by Wavemetrics, but not installed by default).
XOP zip files


Install when using zip file installlation. Please make sure you install the correct version for your platform.
Prior versions,,

2.16 is the last release for Igor 5.0:

Obtaining help:

  1. Read manual :
  2. Need help and understanding of Igor Pro? Check Wavemetrics youtube channel!
  3. Watch Help movies. Try my Youtube channel!
  4. Participate in one of the workshops
  5. Register for discussion group and ask author question there.
  6. E-mail author a question

Extending the code capabilities beyond design.

New for this version........:

2.65 11/05/2017
Promoted required minimum version to 7.05 due to bug in Igor prior of this version.
Panels now restore prior size and position. This is set when you drag lower-left corner to scale them up. Data stored on the user computer and size is limited to 50% width and 90% height of current screen size. Hold down any modifier key and size will be reset to original default state.
Merge two data sets - added option of sorting qrs names by xyz_string, needed for Nika. Added SMR and DSM data to USAXS.
Modeling - added calculation of Rg for size distributions. Requested by Dale Schaefer.
Unified fit - changes to two phase systems requested by Dale. Added ability to handle multiple levels at the same time where possible…
Data merging tool - modified Optimize code to prevent failures, hopefully improved fitting capabilities.
WAXS - Added option to import free AMS diffraction data ( - this database contains d, hkl, intensities for minerals.
All packages - internal changes and improvements resulting in less and cleaner code.
Removed pdf manual from distribution. It is obsolete, use on-line version and if needed, download pdf from the on-line source.
Added Update Message to CheckForUpdate code. If present, it will display a message for users.

2.64, 5/1/2017
Made Igor 7 compatible ONLY. Thanks to GeneralProcedures changes will not work on Igor 6.
Added buttons with links to web based manual pages to each tool.
Version check - using Github now.
Smearing/Desmearing data support - increased smearing speed about 3x
Unified Fit - Modified to handle Slit smeared data which do not extend beyond slit length. Same logic as in Modeling II - extend temporary data to 3*slit length and then truncate.
Data merging - added name modifier string and defaulted to new folder name even for QRS name systems.
Size distribution - removed limitation that Qmax > 3*slit length for slit smeared data. Optimized speed (2x improvement)
Size distribution - fixed bug introduced in MaximumEntropy
Fixed more slow debugging calls, few more packages see improvement in speed now.
Completely removed Modeling I - about 2k lines of code. Moved code where needed and removed about 3 ipf files from loading.

2/63, 5/1/2071
Version 2.62 updated with on line manuals, for Igor 6 only.

Updated manual
Modified Nexus support, added new library to use it.
Moved some common functions to IN2G_GeneralProcedures
Fix to QRS names which failed on names containing string "spec" in the name.
Added checkbox for slit smeared/desmeared USAXS data in Merge 2 data sets tool.
Small-angle diffraction - when user selects "oversample" the parameters for peaks (d, q, width) are now calculated at 5x higher resolution than measured Q points.
Desmearing - propagate dQ and if does not exist, create dQ based on points distance.
Pair Distance Distribution - changed Matrix solving method since the one used was deprecated by Igor 7.
Plotting tool - added ability to add top 2pi/Q linked axis. Using Transform axis package from Igor Pro. Added few new styles and modified existing settings. Fixed Gizmo for Igor 7 which stopped working due to Gizmo function syntax changes.
WAXS - removed LaueGo capability and added import of PDF-4+ xml files. Fixed help file.
Modeling II - if you hold any modifier key (shift/ctrl/opt/alt…) while clicking on parameters change arrows, the step for next step is set 10x smaller. This enables making small changes to the values. Just keep holding the modifier key, first step is still large, subsequent are small.
Size distribution - fixed Regularization for Igor 7, modified trust ranges which were using wrong logic. Now large size is estimated 2pi/Q while small size pi/Q.
Fixed slow down caused by debugging messages function

2.61 6/28/2016
Due to some new features used, requires Igor 6.34 or higher
ASCII import - added ability to slit smear the data on import. Redistributed controls on the Import panel.
ASCII import non SAS data - first version of Import non-SAS data tool. No manual yet.
Fixed panel scaling and added better package preferences management.
Added package for handling files outside Igor to make it easier to write tools working with external files directly. Should not be visible to users.

2.60 3/5/2016
Added Panel scaling to most large panels
Modified GUI package preferences handling. It was reseting the GUI choices, wrong logic.
Data merging tool - fix problem with liberal names.
Added multi-package loader (Irena+Nika)

2.59 2/1/2016
Igor 7 compatibility release
Unified fit - GUI behavior improvements and minor bug fixes.
WAXS-Powder diffraction tool - version 1 of Powder diffraction tool for users. Still work in progress, but usable for testing by users.
Modified check for updates macro to use http once, if it fails use ftp, if that fails also then bail out and give error. Should be much easier for users who are on systems without net connectivity.


This set of macros is currently being developed for use on any SAS data. Their use by anyone for open science is free of charge. If you want to use them for proprietary work, please contact me, the author, Jan Ilavsky, for permission. There are no warrantees with respect to functionality of these macros, please, verify all results by independent methods.





Privacy & Security Notice  |   Contact Us    
This page last modified: 2017-11-04 4:35 PM