Code Development

Research is fun when it consists of new and unique tasks. For repetitive ones on the other hand, computers are uniquely suited. Furthermore, in order to run RIMS instruments control software is required. We have worked and are currently engaged in multiple code development projects. You can find many of these projects on the lab’s GitHub page, Reto’s GitHub page, or the RIMS-Code GitHub page. Below we outline some notable projects.

Note: We are strong supporters of free and open source software (FOSS). Scientific research is generally paid for by the taxpayer. The outcome should thus be freely available for everyone. We strive to publish all software under open source licenses and only use open source software in our daily life.

Python Logo

As you will notice, a dominating programming language in our lab is Python. This becomes especially clear when you look at the GitHub pages given above. If you are interested in any of our specific code or you have questions, please feel free to contact us! Also, contributions to our codes are always welcomed. Please have a look at the developer guides (when available). Feel free to create pull requests for documentation enhancement, small bug fixes, etc. We are looking forward to your ideas and issues.


To process resonance ionization mass spectrometry data, we created a rimseval python package and wrapped a GUI user interface around it.


The software is published open-source and can be found on GitHub:

To get started, have a look at the documentation. The easiest way for users to process data is to use the GUI, detailed information on installation can be found here.

The solar system initial abundances in python: iniabu

iniabu is a package for python that you can use to easily calculate the inital abundances of the solar system and return ratios as δ-values or in bracket notation. By default the initial abundances from Lodders et al. (2009) are used. You can install this module by simply calling:

pip install iniabu

The full documentation of iniabu can be found here. Full examples in the form of jupyter notebooks can be found here. This package is completely rewritten from its first version. It is also fully open source, the code base is available on our GitHub page. On that page are also instructions on how to install the latest development version, how to install from source, and how to contribute.

On the GitHub page there is also a discussion section where users are encouraged to share examples and ask questions on usage. Furthermore, you can raise an issue if you find a bug in the software, would like some specific feature included, or need help.

InstrumentKit – Drive your laboratory equipment with python

The freely available InstrumentKit has been used to interact with hardware for the LION instrument at Lawrence Livermore National Laboratory. Several classes have been contributed by us to this excellent compilation of tools. This allows you and anybody else in the world to utilize more tools, might motivate you to continue down the Python path, and contribute your own instruments one day.

Linear regression with CEREsFit

In Stephan and Trappitsch (2023) we presented the methods to calculate linear regressions for measurements that have uncertainties in both dimensions. For this work, we also implemented a python tool CEREsFit, which is freely available on pypi and GitHub. In the repository, example Jupyter notebooks on how to use the module and how to plot the regressions lines with rotated error bars for correlated uncertainties are also shown.

Resonance Ionization Scheme Drawer

Would you like to make resonance ionization schemes like the one we show here for titanium? Check out our RIMS Scheme Drawer software. This GUI allows you to draw your own resonance ionization schemes with just a few clicks and results in publishable figures.


Coordinate Transformation

If you work with samples in various instruments, our coordinate transfer program might be of interest to you. Assuming you have coordinates for your particles, our program allows you easily transfer these coordinates from one system into the other. You can use fiducial marks or simply find some of your sample positions again and start from there.

Coordinate Transformation

Enjoy, and if you want, the source code is there for you as well!