Potku – a ToF-ERDA analysis software


Introduction – what is Potku?

Potku (Finnish: kick, recoil) is an open source analysis software intended for depth profiling of thin film samples based on time-of-flight elastic recoil detection analysis. The software is composed of a graphical user interface, implemented with Python 3.3 (originally), PyQt and Matplotlib. For the analysis itself a backend of standalone command line programs in written in C are used. The analysis components can be used independently of the GUI, if necessary.

The Accelerator Based Materials Physics group at the Accelerator Laboratory is the current maintainer and developer of the software, but Potku started as a student project within the Faculty of Information Technology, and the user interface was developed as a part of a student software project course. The analysis code is originally written by Kai Arstila with contributions by Jaakko Julin. Users are encouraged to participate in the development of the software.

2016 December UPDATE: "easier" windows installations are here! Slightly modified version of Potku is now available for Windows operating systems using 64bit Anaconda3 version of Python installation. Also 32 bit Python-Windows version is provided, together with the "all inclusive" 32bit package wich includes all necessary files, ready to run without any installation. See more below.

New 2016: Sign up for the Potku community e-mail list here! (opens new window)


Usage and features

The user is expected to provide a list of time-of-flight–energy events in ascii or some supported binary format. The software is also bundled with a coincidence tool, which can extract these events from time-stamped list mode data. Some details such as the geometry and beam must be provided and currently the user has to manually identify elements/isotopes from the ToF-E–spectra.

Potku can then be used to

  • perform time-of-flight calibration
  • study composition changes over the length of the measurement
  • create energy spectra from time-of-flight spectra (to export measurement to other software)
  • create depth profiles

See a presentation for a more in detail look at the features and usage of Potku.


Screenshot of Potku UI


The development versions are hosted at GitHub. The site acts as a hub for development.
The latest stable release can be downloaded from the downloads section. Please see the requirements before installing! If you install Potku from GitHub you must compile the C programs using the provided scripts. The files available for download also contain the executables. 2016 December UPDATE: minor (non-physics) modifications are not yet in the GitHub.

Requirements and files:


2016 December UPDATE:
  • 64 bit Windows (Win 7, Win 10, most likely also Win 8) installation of Python libraries working with potku are provided. Also 32 bit (python) windows version(s) are provided. Downloads and installation guides from here.
  • 64 bit Potku 1.1 for Windows
  • 32 bit Potku 1.0 for Windows
Install notes for Potku version 2014-2015
  • Mac OS X 10.6 or later (tested on 10.6 and 10.7), Relatively modern Linux (tested on Arch), Windows XP or later (testing platforms are Windows 7 and 8)
  • Python 3.3
  • Numpy 1.7
  • SciPy 0.12
  • MatplotLib 1.2
  • PyQt 4.8 (or later)
  • "awk.exe" for data import (gawk-3.1.6-1-setup.exe) (needs PATH for windows)
  • Plenty of memory and hard drive space

Many of the Python packages for Windows are available here.

For development

  • C compiler (gcc), make and other essential C development tools, provided by MinGW on Windows

Known limitations and bugs

Some of the analysis code uses hard-coded defaults, which might not be optimal for your data. The program is far from mature, so expect small bugs. The known bugs listed below are fixed in the latest master-branch version found from the repository. Bug reports are welcome.

Version 1.1 (December 2016, not yet in the GitHub)

  • PyQT related issues fixed for the tool icons, labes
  • AWK.exe file included from the gawk package to potku files directly (no need to instal gawk separalety)
  • Currently known bugs and TODO and "need to check" -list here

version 0.8.2 

  • ....

version 0.8.1

  • Depth profiling uses previous settings, i.e. has to be run always twice. (Fixed 2013-09-26)
  • Stopping in carbon foil is neglected in depth profiling code. (Fixed 2013-11-15)
  • Choice of stopping model in general settings has no effect (Removed option 2013-11-19, use stoppings.txt instead)
  • Number of depth steps fixed to 100. (User option added 2013-11-21)

version 0.8

  • SRIM stopping generator in gsto doesn't work (Fixed 2013-09-13)
  • Efficiencies only work on Windows platform (Fixed 2013-09-16)


This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public Licence as published by the Free Software Foundation; either version 2 of the Licence, or (at your option) any later version. See LICENCE file inside package for detailed information.

Several of icons used in Potku are a part of Reinhardt Icon Set which is under LGPL licence. See LICENCE.txt and README.txt files in ui_icons/reinhardt directory for detailed information.


A preliminary manual is included in the distribution.

Example - getting started with Potku

Some sample data is included in the distribution. A complete data set is available from the sample data section.

Version history


Potku 1.1 - Windows installers provided, minor bugfixes relating to PyQT


Bugfix release, v.0.8.2


First public release, v0.8