Ion Beam Analysis (IBA) is a powerful suite of techniques, widely adopted in fields like materials science, nuclear physics, and biology. However, despite its utility, the management and analysis of IBA data can often require specialised software and expertise.
In today's data-driven scientific landscape, managing and sharing data efficiently is pivotal. The recent introduction of the Ion Beam Data Format (IDF) seeks to meet this need in the IBA community. The IDF's main objective is to streamline the storing, sharing, and processing of IBA data, aligning well with contemporary research practices like FAIR (Findable, Accessible, Interoperable, and Reusable). A universal file format is essential for enhancing collaboration between labs and ensuring scientific transparency. This is especially crucial in significant European projects like RADIATE EU Project and the newly introduced ReMade@ARI EU Project, where vast amounts of data are generated and spread across various facilities.
To boost the utility of IDF files and simplify IBA data analysis and management, we developed pyIBA, an open-source Python library.
pyIBA offers a suite of methods to create, edit, process, and analyse IDF files. Based on Object-Oriented Programming principles, it presents a clear and intuitive syntax, making it not just powerful, but also user-friendly. It integrates seamlessly with other established Python scientific libraries, such as Numpy, Matplotlib, and TensorFlow (see examples in the documentation). Moreover, it's tailor-made for use with Jupyter Notebooks, combining interactive coding with the notebook's unique logging capabilities.
In addition to all its core features, pyIBA also supports NDF, a recognised analysis code in the IBA community. NDF's ability to perform simultaneous analysis of data from multiple experiments and techniques is noteworthy. Leveraging the IDF format's capabilities, all related details – from parameters and models to results – can be stored alongside experimental data in a single IDF file. This unified approach ensures that all relevant information is readily accessible in one place.
Moreover, the modular design approach of pyIBA promises easy future integrations, leaving the door open for more codes and tools in addition to NDF.
We have also developed IBA Studio, a graphic user interface based on pyIBA. This interface allows for quick viewing, editing, and analysis of IDF data, especially catering to users who might be less inclined toward coding.
For further information on pyIBA, head to:
- Why adopt a standardised format? for more information on the IDF format
- Installation page to start using IDF
- API for a full list of the methods in each class, their documentation and some examples of their use.
- Basic Examples for everyday examples and an introduction to the pyIBA environment
- Advanced Examples for more advanced examples and how to run NDF from pyIBA
For further documentation head to the **documentation**
Note
This project is under active development. Any contribution is welcome!
To install pyIBA follow one of the methods below.
For an online installation using pip tools:
$ pip3 install pyIBA
Alternatively, you can install from the source:
Clone the repository from GitHub.
Navigate to the project directory where setup.py is located.
Install the project:
$ pip3 install .
Note
If you're actively developing, you might want to install in "editable" mode using pip3 install -e .
. This ensures changes made to the source code immediately reflect in the installed package.
Alternatively, to avoid installing pyIBA system-wide or using a virtual environment:
- Download the source files from GitHub.
- Add the following Python commands in your python code before importing pyIBA:
Note
Usually, pip3 is used to install Python3 packages while pip is used to install Python2 libraries. However, in some environments, the command pip may point to pip3, just as python may point to Python3. You can use which pip
or pip --version
to check this.