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

"Nika" package of 2D -> 1D SAS data reduction macros for Igor Pro


Please use following citiation when using Nika package:

Jan Ilavsky, "Nika - software for 2D data reduction", J. Appl. Cryst. (2012), vol. 45, pp. 324-328. DOI:10.1107/S0021889812004037 .

Workshops on using Irena & Nika packages... at APS we organized four workshops in 2012, two in 2013 and two in 2014 and 2015. In November 2012 was course at Australian Lightsource and one is scheduled at Brazilian lightsource in end of February 2013. Next workshop at APS is scheduled for future. To request to be put on waiting list for next workshops send e-mail to Connie.

Nika is one of my projects, which can reduce area detector (e.g., CCD) data into 1D "lineouts" for SAXS ortt WAXS. Similarly to Irena package for 1D SAS data analysis and  USAXS data analysis Indra 2, this one is written for Igor Pro, version 6 from Wavemetrics, Inc.

Current version : 1.74 (6.3x and higher) released 6/28/2016.

Igor 7 note: Current version of Irena is compatible with Igor 7, it has been extensively tested. Universal Installer 1.31.pxp is compatible with 64 bit version of Igor Pro. It will run and install the code correctly, but not all extensions (xop) are available for 64 bits. Therefore some functionality of Irena will be impacted. Nika should be OK, as far as I know. I suggest you use 32 bit versions.


Current version
released 6/28/2016

Most likely correct:

Simple & easy. Uses Igor Pro itself to do all work :-)

Installs/updates/uninstalls Nika (+Irena, Indra, and xop), uses http to download the latest version from APS depository.

If the above fails:
Installation method
Link for download
Use only one of these methods
Igor - local copy

Universal Installer 1.31.pxp, (~78Mb)

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.3x and higher.

java - http

For default installation of Igor Pro 6.3x with standard locations of Igor folders (Mac or Windows). Seem to fail on non-English versions of Windows! Uses http and can check available/installed versions, uninstall the packages, and install/update to the latest versions. Report any problems.

Igor - http/ftp
Universal Installer

older version
Universal Installer 1.26.pxp

For Igor version 6.3x and higher. Universal Installer 1.19.pxp

Prior version for Igor 6.20: Universal Installer 1.14.pxp


Older versions of installer for older Igor Pro or in case of issues with current version.

Can uninstall, install, or update to latest relased version of Irena using Igor. Uses http, ftp, or local copy; prior versions use only ftp or local copy.

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. You can also download latest versions of these xops from IgorExchange.
Is included in the zip file.
Prior versions

Nika v 1.31, Nika_v1.60

1.18 is the last release for Igor 5.0: Nika_v_1.18

New... Mailing group for Nika users: If you want to be informed about Nika updates and possibly have place to inquire about data reduction problems, visit the page: where you can join this group.

Obtaining help:

  1. Read manual
  2. Need help and udnerstanding 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

BUGs can be expected, please, let me know if something is not right!

Extending the code capabilities beyond design.


Modification history:

1.74 6/28/2016
Due to some new features used, requires Igor 6.34 or higher
Added more lines to calibrants. Up to 10 diffraction lines re allowed and used if user selects.
Added control which sets default scaling for images when loaded, so user can set preferred scaling. Note: Igor does enforce maximum size of image and will not scale above screen size.

1.73 3/5/2016
Added Panel scaling to most large panels
Added option to provide string function which will create name for the data to enable fancy renaming of input data. Has help which pops up with example.
Moved the modification conditions for auto naming (based on 2D data name) to the tabs for sectors and lineouts, where it belongs.
Modified USAXS/SAXS/WAXS configurator for Pilatus 200kw and use of empty background subtraction (with the transmission diode measurement).

1.72 2/1/2016
Igor 7 compatibility release
Modified FITS loader to handle data from different sources, as long as we are looking for sufficiently large 2D image (either in primary or any extension).
Added small function in Menu which enables to set all paths for Nika to the same place (sample, empty, Calibration, mask…). Can be changed later, but helps to setup easily.
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.
Added time stamp to the Live processing print statements for user orientation.

1.70 10/30/2015
Verified to work on Igor 7 beta 1
Added Configuration manager - allows users to have multiple fully configured "versions" of Nika inside one experiment and switch between them for convenience. Great if you have two different sample-to-detector distances etc.
File import - modified Pilatus img file loader - sample which contained 4096 bytes header was provided by user, so I added code which checks for the header and if present, skips the header and stores the header in the wave note. Some minor changes to logic of all Pilatus file types, hopefully I did not break anything.
9ID/15ID normalization SAXS - minor fix. WAXS, well, it is still settling down, not sure what the right numbers are…

1.69 never released
Major addition - created new calculation of the Q resolution using integration width of pixel (that used to be there), beam size and pixel size. Added beam size controls. If set to 0, ignored.
Added some warning and better handling when preferences change uncertainty calculation method
9ID/15ID configuration - force SEM as uncertainty method for WAXS and pinSAXS (Pilatus) while Std. Dev for big SAXS (MarCCD).
Added ability to type in Q distance from center for line profile. Is rounded to nearest full pixel.

1.68 3/8/2015
Fixed Ag Behenate line 5 which had typo it the d spacing.
ADSC file format - finish, need dialog, for now added ADSC_A
Fixed Azimuthal data export ASCII export tool. Bug caused garbage production, data in Igor were correct.
Renamed Prev. tab into PolTran = Polra transform. Better term for what the procedure does.
Bug fix - Fixed calculation of one of the angles in GISAXS geometry (alpha-f), which was incorrect. This require adding two options for GISAXS geometries and adding new panel which provides user selection. It also requires extensive description in the manual. Read the manual for description.
Modified Instrument config for 9IDC USAXS/SAXS/WAXS (should work as well for 15IDD USAXS/SAXS/WAXS)

1.67 9/15/2014
Mask tool - fix bug which caused the Listbox to be always empty.

1.66 8/20/2014
Main panel - moved dezinering controls from tab4 to tab2, some users thought that dezinering was available only for Empty/dark and not for sample images…
Hook functions - added new: ImportedImageHookFunction which can be used to modify any image after load, AfterDisplayImageHook, which modifies detector images displayed by Nika. Fixed PilatusHookFunction.
Removed some print statements to reduce amount of information in history area.
Added Cbf file format importer (it has compression, so it was bit more work).
Added right click menus to most Listboxes,users can now refresh the content and there is also some more functionality where appropriate
Added Pilatus 3, 200k.
Added ability to import 2D calibrated data, for now ASCII (qx qy I dI) from EQSANS and NIST (DAT).
Added flexible support for CanSAS/Nexus (hdf5 file format). Can export to new or append to existing CanSAS/Nexus file - for now 2D calibrated data. Working on appending 1D data. Can also import a calibrated 2D data set from CanSAS/Nexus file.
Major new feature - export 2D calibrated data. Either full resolution or pseudo log-q rebinned data. Usable for 2D fitting programs.
15id support - change sector for pinSAXS & WAXS analysis from 10 to 30 degrees halfwidth.

1.65 2/20/2014
Fixed minor bug in LP profiles note handling. Matching release for Indra package.

1.64 1/5/2014
All files - extended copyright to 2005 - 2014
Installer - version 1.23 will handle stale links to hdf5 xops.
Beam center utils - added many more lines for Lab6, Si, and Ce standards. Modified to disable fitting both SDD and Wavelength, very unlikely this would be possible with most data

1.63 11/23/2013
Added calibration of Intensity popup and "Units=Arbitrary" or "cm2/cm3" or "cm2/g" for Intensity to help Irena to handle calibration of data.
Attempted to add cbf Pilatus file format, but example data provided by user were incorrect, so code has been disabled again.

1.62 7/23/2013
Added double click action to other list boxes in Main panel and in Beam center tool
Added *.mccd file format (tif, actually) and combined mpa file formats into the same loader. I am missing "csv" working example so that is not working, but asc, dat, and spe (internal names) are working now.
Mask tool - Added double click function and offset when Start mask draw is selected to accommodate tools.

1.61 4/8/2013
Added monthly check for updates and reminder of references for publications.
Modified to compile on computers even without xop and abort & produce message when xop is called with instructions.
Fixed Pilatus ESRF edf file format. Header was set to 1024 bytes, which is incorrect, it is n*512Bytes. Changed to look for separator and cleaned up the header to match Nika/Irena wave note styles(removed unneeded spaces).
Modified 15IDD pinSAXS, WAXS support to use new Nexus data, fixed few bugs in calculations.
Added scroll buttons to enable scrolling of the main panel content for smaller displays.

1.60 1/4/2013
Added ability to trim name of data in end (default, same as before), in front (new) AND remove from the name string. Needed for some users who cannot be thought that name needs to be at most 20 characters long.
Fixed error message when processing 15idd pinSAXS data about empty name not matching USAXS empty. Introduced in last update to pinSAXS data processing.
Fixed bug which caused issues when exporting ASCII from lineprofile. Introduced during converting the export to use free waves.
Fixed problem when if beam center was way too far from detector the beam center alignment stopped working for higher order lines.

1.59 11/5/2012
Fixed Pilatus 300k import problem
Fixed Masking on Preview graph. Software bug introduced few updates ago.
Fixed minor bug in restore saved settings which caused problem to Image type popup.
Added three new NIST standards to Beam center & calibration tables

1.58 8/13/2012
Updated manual.
Added ability to "watch" folder with data and automatically display or process latest data set.
Added SSRL Material Science SAXS support. Tiff file with associated text file of the same name.
Added double click reaction to the 2D data (samples only).
GUI fonts control - fixed bug in Windows 7 which caused that fonts were not changed.
XMLutils xop updated to fix speed in loading xml data files
Fixed bug in Data selection "cleaning" which removed any file which had as second character "_".

1.57 5/30/2012
Added support for SSRLMatSAXS instrument. Lookup functions and ability to read their txt file containing records.
New nika_users mailing list. See: for details.
Fix BSL file - wrongly read detector size in pixels for non-square detectors (Pilatus).
Added small fix to catch debugger in case user creates movie, adds no frames and closes it.

1.56 4/30/2012
15ID pinSAXS support, fixed the slit length used to create _usx data for merging of 15ID USAXS data with pinSAXS data.
15ID SAXS support, added various functions to support our large SAXS camera.
Added option to add colorscale to the main image and to fix range of displayed intensities for the images. Requested features. Seems useful and fun.
Added more ColorTables as well as option to reverse them. Fit2D is closest to Geo32_R if anyone wants to get close to Fit2D.
Changed Match search to use GrepList - that means it uses now RegEx (regular expressions). Note: ^XYZ means start with XYZ, XYZ matches XYZ anywhere, etc.


These macros MAY produce Huge files. In my testing I have seen files well beyond 1 Gb. Conversion of CCD images at 3.5k x 3.5k level (Mar Image plate) and beyond takes some time and requires major CPU power. Make sure your hardware is up to the challenge. Note, I do not yet include any pixle splitting and do not provide any "bin width" data for q space smearing...


I have been testing this package against Fit2D package. In my test cases I have been able to reproduce same Intensity vs q dependence. Nika provides statistical errors calculated simply from statistics of pixles included in any given q bin...
 If you believe, the results are incorrect, let me know ASAP.

Registration/e-mail list:

Please, if you are using these macros let me know via e-mail. This will allow me to have some idea who is interested in these macros and how much of my time is worth to invest in further development. Also, please, indicate if you would like to be included on e-mail list I would like to maintain – I can then sent e-mail announcements when a new version is available. I will not misuse the e-mail list in any way…

 Quick disclaimer:

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: 2016-07-29 2:26 PM