Filter by Supported Igor version:
Login or register to modify the filter.

Packages include individual Igor procedure files or collections of Igor procedure files that are related, as well as external operations (XOPs). To browse ALL projects (including those that have not been officially released) click on the Advanced Browse link above.

May 24, 2017

Semi-Automated Routines for Functional Image Analysis (SARFIA)

Last changed: 6 hours 31 min ago

SARFIA has been developed for the analysis of functional fluorescence data, for instance recordings from cells labeled with fluorescent calcium indicators. However, it allows access to a variety of inbuilt and custom-written image processing functions.


May 23, 2017


Last changed: 22 hours 52 min ago

FitXPS is a procedure to fit a core-level X-ray photoemission spectrum (XPS) to a Voight profile with Shirley or Tougaard type background.


May 22, 2017


Last changed: 1 day 20 hours ago

The bpc_Dialogs XOP provides some external functions that facilitate writing interactive Igor procedures/functions. While similar functionality could also be achieved to some extend with Igor code, bpc_Dialogs.xop is supposed to make life a little easier, both for the programmer and also for the user. bpc_Dialogs.xop supports 32bit Igor running on 32bit or 64bit windows. It was developed and tested with Igor 6.2. But it uses standard Windows programming techniques, and there is a good chance that the XOP works just fine also with Igor 7.

bpc_Dialogs adds the following functions to Igor:


May 9, 2017

Arc Hull Baseline

Last changed: 2 weeks 1 day ago

Arc Hull is a baseline approximation for spectral data.

A concave-upward arc is defined by a circle centered at the midpoint of the spectrum. The depth of the arc is adjustable. The arc is added to the spectrum, and the lower portion of a convex hull is calculated for the resultant spectrum. The baseline consists of the sum of the arc and the convex hull.

Setting arc depth to zero creates a convex hull (a.k.a. 'rubber band') type baseline.


April 11, 2017

SimpLiFi - Simple line profiles for TEM/STEM images

Last changed: 6 weeks 1 day ago

The SimpLiFi package provides an interface for extracting and analyzing line profiles from TEM/STEM images. This tool is in part a simplified version of the Image Line Profile tool provided in the ImageProcessing package by WaveMetrics ( SimpLiFi does not handle paths - only straight lines - and only greyscale images). It is also in part modified to mimic functionalities of the Line Profile tool available in Gatan's Digital Micrograph:

- A Frame is displayed on the image to show the width over which the profile is drawn


April 7, 2017

XOP function stub generator

Last changed: 6 weeks 5 days ago

From a specially crafted C header file, this Perl script can generate all necessary (resource file, header, and function) stubs for creating a XOP.
See the file example-header.h for an example input file, the output is in the files functionBodys.cpp, functions.cpp, functions.h, functions.rc.
Requirements: A recent version of Perl and utags from
Call the script as ./ example-header.h.


March 23, 2017

Unit Testing Framework

Last changed: 8 weeks 6 days ago

This project aims at providing a complete set of tools for programmers for writing and maintaining unit tests.

  • Runs on Windows and MacOSX
  • Completely documented and with lots of examples
  • Includes more than ten test assertions coming in three versions
  • Allows for the arbitrary grouping of test cases
  • Easily expandable and adaptable
  • Support for executing test suites from the command line
Planned features (open for collaboration):

March 8, 2017

EccentricXPS - Analysis and Organisation of XPS Spectra

Last changed: 11 weeks 16 hours ago

EccentricXPS is an Igor Pro procedure initially written to load, display and analyze the two-dimensional x-ray photoelectron spectroscopy (XPS) images produced by our VG Scienta SES 200 hemispherical analyzer at the University of Erlangen-Nuremberg. EccentricXPS can load and display the images from the raw .txt files produced by the SES software (version 1.2.2, build 37) and then convert the images to normal one-dimensional spectra, which can be easily displayed, compared and fitted, either as single spectra or in bulk.


March 6, 2017

A tool that can autocomplete commands typing

Last changed: 11 weeks 1 day ago

Autocompletion is very common in a real programming language IDE, such as VS, but it is a pity that IGOR Pro does not support this. Therefore, I have written a tool to do autocomplete in IGOR Pro.
The Package includes two files: Autocomplete_JXW.ipf, datacache.dat, the first is the procedure file, the second is a database file, contains function/operation name and a brief description of it.

How to use:

1 open Autocomplete_JXW.ipf and compile it,



Last changed: 11 weeks 2 days ago

GenCurvefit uses differential evolution (genetic optimisation), with a user defined fit function, to fit data with up to 50 independent variables. The technique is extremely good at finding global minima in Chi^2, even with poor starting guesses.

Copyright - Andrew Nelson and the Australian Nuclear Science and Technology Organisation 2007.

IGOR.5.04.x-1.4.x-dev2014-Sep-21Development snapshot for Igor 5.04.x and aboveHelp

March 1, 2017

XMLutils - XOP to facilitate working with XML files

Last changed: 12 weeks 25 min ago

An external XOP designed to facilitate working with XML files. Based on the libxml2 library by Daniel Veillard, released through the MIT licence for libxml2

Win32 and Mac Universal binaries are available

XMLopenfile - open an XML file
XMLsavefile - save a modified XML file
XMLclosefile - close (and save?) an XML file
XMLelemlist - List all ELEMENT_NODES in XML document
XMLdocDump - Dump the entire XML file to IGOR history
XMLlistXPath - get the nodes that match a specific XPath
XMLstrfmXPath - get content from nodeset selected by an XPath and return it as a string

IGOR.5.04.x-1.x-dev2012-Jun-19Development snapshot for Igor 5.04.x and aboveHelp

February 18, 2017

MatrixFileReader XOP

Last changed: 13 weeks 4 days ago

The MatrixFileReader XOP enables Igor Pro to read data acquired with the MATRIX Data acquisition system developed by Omicron Nanotechnology GmbH. The files are not interpreted directly, rather they are accessed through libraries from the Vernissage Toolkit by the same company.

Main Features
  • Very fast wave creation from a broad range of SPM/STS data types
  • Meta data conservation for a proper measurement documentation
  • No detour via the flat file format required
  • Check for recently acquired bricklets in the result file
  • Extensive documentation inside Igor
  • Works with data from all MATRIX versions
  • Possibility to access the raw untransformed data, therefore compatible with all matrix data types
  • The complete source code is available under a FLOSS license (LGPLv3 or later) for maximum flexibility and openness

February 17, 2017

Point Labels

Last changed: 13 weeks 5 days ago

Puts labels on waves at position of cursor A.
Labels are the x position of the point.
Uses wave scaling or an x-axis wave.
Multiple labels on each wave.
Multiple waves in one graph.
Labels can be deleted on a per-wave basis.


February 8, 2017

Visualization and Analysis of Broadband Transient Absorption Data

Last changed: 15 weeks 8 hours ago

Updated to work with current Helios (v14) and EOS software. Please continue to email with any comments or bugs.

This package includes a set of functions for processing and graphing wavelength and time-resolved absorption data. This code was designed to process data created by the Helios Femtosecond Transient Absorption spectrometer produced by Ultrafast Systems, LLC. However, it will work with any data with the format:

0, time_1, time_2, . . . , time_M
wavelength_1, deltaOD_1_1, deltaOD_1_2, . . . , deltaOD_1_M


February 2, 2017

Periodic Table Selector

Last changed: 15 weeks 6 days ago

Periodic Table Selector (PTS)

What and Why:
J. J. Weimer has contributed the very nice Periodic Table Menu package. It shows data for one element at a time, but I needed a way to quickly select several elements. PTS is derived from Periodic Table Menu and has the following characteristics:

- Graphically select any number of elements, the resulting list is processed separately.
- Use mouse clicks or very fast mouseover to select or deselect elements.
- Panel can be rescaled (as in Periodic Table Menu).
- Panel can be closed, then later reopened, the selection is retained.


January 31, 2017

Fermi Distribution + DoS Plot

Last changed: 16 weeks 1 day ago

This demo shows the curves for the Fermi-Dirac distribution function multiplied wiht a projected density of states (DoS) from a free-electron metal. Change parameters with sliders to see the changes in the curves.


January 29, 2017

ALP Alternate Line Profile

Last changed: 16 weeks 3 days ago

Why ALP?
The Igor 7 image line profile has fewer features than in Igor 6. Wavemetrics is not currently planning to make significant changes, the
workaround suggested is to use IP6 procedures. Some issues are:
- The profile graph cannnot be modified, or the data explored, for example with a cursor.
- Does not take wave scaling into account.
- No longer possible to graph a profile, it can only be saved. (Has been changed in Igor 7.02)
- The saved wave is now a triplet. This is not visible in the default New Graph menu, inexperienced users can not easily graph it themselves.


January 16, 2017

Baseline Spline Fit

Last changed: 18 weeks 2 days ago

For fitting and subtracting spline type baselines to spectroscopic data. A spline is a continuous curve that passes through points ("nodes") selected by the user. This Igor procedure file provides an interface that allows the user to position the points and see the resulting baseline. Some sub-menus are added to the macro menu, including an option to subtract the baseline from the data.



December 31, 2016


Last changed: 20 weeks 4 days ago


CommandPanel.ipf provides an alternative command-line interface for Igor Pro.


December 22, 2016

IR Shifted-peak fitting

Last changed: 21 weeks 6 days ago

This is a set of routines designed to fit temperature-dependent amide I infrared spectra of proteins and peptides. It has been shown that these peaks are temperature-dependent. The data is fit to a sum of Gaussian peaks, with center position and width of each peak assumed to shift linearly with temperature. In addition, the model allows an equilibrium between peaks, so that each peak may (optionally) increase or decrease in amplitude with temperature. The change in amplitude with temperature is modeled as a two-state equilibrium.


December 2, 2016

Graphical Memory Display

Last changed: 24 weeks 5 days ago

For long term projects, it's easy for an experiment file to get very large and accumulate a lot of waves that might not be needed. This is a command line function that provides an interactive graphical view of the waves in the indicated parent folder and all immediate subfolders. All of the waves in each subfolder are color coded by their size.

Top panel buttons:
Update: updates the display if waves have been deleted or added
Folder Size: appends a graph of the size of each folder (in terms of cumulative # rows in all the waves)
Remove: removes folder size graph


November 25, 2016

PHI SPE File Loader

Last changed: 25 weeks 5 days ago


This package contains a loader for PHI SPE files. The files are generated by PHI XPS and AES instruments. The procedure is based on generous and greatly appreciated contributions from the folks at this link:


Here are some insights to the use of this procedure.

November 20, 2016

SOCKIT - a TCP/IP client for speaking and listening to network sockets using IGOR Pro

Last changed: 26 weeks 2 days ago

SOCKIT provides TCP/IP (IPv4/IPv6) network socket communication between a server and IGOR Pro (the client).

One can connect to a server then send and receive string messages with it. A string is just a collection of bytes, so you can send any collection of data you want.
The received messages are buffered to a text wave (optionally printed in the history window). One can also provide a 'processor function', which acts as an event handler for the message. One example of the processor function could be to act as a parser for Igor commands.

IGOR.5.00.x-1.x-dev2015-Feb-09Development snapshot for Igor 5.00.x and aboveHelp

November 17, 2016

Doxygen filter for procedure files

Last changed: 26 weeks 6 days ago

This project here is a proof of concept implementation in AWK of an filter which translates procedure files into C-ish output for doxygen consumption.

Requires GNU AWK available for windows here.

Supported Features
  • Functions, including parameter type resolution, call-by-reference recognition and optional parameters
  • Constants
  • Macros
  1. Comment procedure files using doxygen commands

November 1, 2016

ZIP - inflating and deflating strings and files using zlib and minizip

Last changed: 29 weeks 1 day ago

This XOP is able to inflate and deflate strings and unzip zip archives.

The deflation and inflation of strings is encoded in .z and .gz formats. You can use this to compress strings (or any other data) inside IGOR. By using fbinread you can also zip individual files.

You can also unzip zip archives that contain multiple files.

ZIP is based on the free zlib library ( and the Minizip code by Gilles Vollant (


string test = "0123456789"
string test2 = zipencode(test)
string test3 = zipdecode(test2)

IGOR.5.04.x-1.x-dev2012-Jun-13Development snapshot for Igor 5.04.x and aboveHelp

October 31, 2016


Last changed: 29 weeks 2 days ago

A XOP for web browsing URL/URI's. This could take the form of http://, https://, ftp://, file://, sftp://, scp:// connections. The operation directs output either to a string variable, or to File. A threadsafe operation is available.
Uses the Curl library.

Use it for downloading webpages, ftp, etc.

  • Authentication mechanisms are available.
  • Proxy compatible
  • Form/Post support
  • VersionDateLinksStatus
    IGOR.5.00.x-1.x-dev2013-Dec-22Development snapshot for Igor 5.00.x and aboveHelp

    October 25, 2016

    Abeles - specular Neutron/Xray reflectivity curve simulation

    Last changed: 30 weeks 1 day ago

    This XOP generates neutron/Xray specular reflectivity curves from parameters that describe a scattering length density profile at an interface. The XOP is intensively used by the Motofit reflectivity fitting package.

  • multithreaded
  • VersionDateLinksStatus
    IGOR.5.00.x-5.x-dev2014-Feb-11Development snapshot for Igor 5.00.x and aboveHelp

    October 24, 2016

    Create NetCDF - NCGEN

    Last changed: 30 weeks 2 days ago

    This allows users to create NetCDF files from IGOR Pro. It works by using the ncgen.exe utility created by UCAR (


    October 4, 2016

    Code Browser

    Last changed: 33 weeks 1 day ago

    Makes browsing through projects with multiple files and lots of functions easier.


    • Shows all functions/macros from a procedure file including parameter types, return types and special properties (like static, threadsafe, etc.)
    • Shows constants/string constants and structure definitions
    • Alphabetically sorted list of functions/macro (can be toggled)
    • Allows jumping to their definitions by mouse and keyboard
    • Works with Independent Modules

    For reasons of ease-of-use the function declarations are displayed as


    September 22, 2016

    TEA_MT - Intensity versus time trace of fluorescent spots extraction and analysis software

    Last changed: 34 weeks 6 days ago

    The software was written so that all of the daily single-molecule (and other fluorescent spots) data analysis tasks are accessible at one place:
    1. fluorescent spot detection,
    2. co-localization of the fluorescent spots from 2 channels,
    3. intensity versus time traces extraction for selected type of fluorescent spots,
    4. filtering of traces
    5. normalization of traces to an excitation field
    6. intensity change point detection in the traces,
    7. characterization of detected states,
    8. manual selection of extracted traces,
    9. 2D histogram plotting of the analysis results.


    Back to top