Skip to main content

Extend NeXus for experiments and characterization in Materials Science and Materials Engineering and serve as a NOMAD parser implementation for NeXus.

Project description

Ruff DOI

pynxtools is a tool designed for making your experimental data FAIR. It allows to develop ontologies and to create ontological instances based on the NeXus format.

Scope

pynxtools is a parser for combining various instrument output formats and electronic lab notebook (ELN) formats into an HDF5 file according to NeXus application definitions.

Additionally, the software can be used as a plugin in the research data management system NOMAD for making experimental data searchable and publishable. NOMAD is developed by the FAIRmat consortium which is a consortium of the German National Research Data Infrastructure (NFDI).

Installation

It is recommended to use python 3.11 with a dedicated virtual environment for this package. Learn how to manage python versions and virtual environments.

Install the latest stable version of this package from PyPI with

pip install pynxtools

You can also install the latest development version with

pip install git+https://github.com/FAIRmat-NFDI/pynxtools.git

Documentation

Documentation can be found here.

Repository structure

The software tools are located inside src/pynxtools. They are shipped with unit tests located in tests. Some examples from the scientific community are provided in examples. They guide you through the process of converting instrument data into the NeXus standard and visualising the files' content.

NOMAD integration

Does this software require NOMAD or NOMAD OASIS?

No. The data files produced here can be uploaded to NOMAD. Therefore, this tool acts as the framework to design schemas and instances of data within the NeXus universe. It can, however, be used as a NOMAD plugin to parse nexus files, please see the section below for details.

How to use pynxtools with NOMAD

To use pynxtools with NOMAD, simply install it in the same environment as the nomad-lab package. NOMAD will recognize pynxtools as a plugin automatically and offer automatic parsing of .nxs files. In addition, NOMAD will install a schema for NeXus application definitions. By default, pynxtools is already included in the NOMAD [production]https://nomad-lab.eu/prod/v1/gui/ and staging deployments.

Contributing

Development install

Install the package with its dependencies:

git clone https://github.com/FAIRmat-NFDI/pynxtools.git \\
    --branch master \\
    --recursive pynxtools
cd pynxtools
git submodule sync --recursive
git submodule update --init --recursive --jobs=4
python -m pip install --upgrade pip
python -m pip install -e .
python -m pip install -e ".[dev]"

There is also a pre-commit hook available which formats the code and checks the linting before actually commiting. It can be installed with

pre-commit install

from the root of this repository.

Test this software

Especially relevant for developers, there exists a basic test framework written in pytest which can be used as follows:

python -m pytest -sv tests

Run examples

A number of examples exist which document how the tools can be used. For a standalone usage convenient jupyter notebooks are available for each tool. To use these notebooks, jupyter and related tools have to be installed in the development environment as follows:

python -m pip install jupyter
python -m pip install jupyterlab
python -m pip install jupyterlab_h5web

Troubleshooting

Please check this guide for any issues you face with the tool. If you don't find a solution there, please make a new Github Issue.

Questions, suggestions?

To ask further questions, to make suggestions how we can improve these tools, to get advice on how to build on this work, or to get your parser included into NOMAD, you can:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pynxtools-0.8.2.tar.gz (5.3 MB view details)

Uploaded Source

Built Distribution

pynxtools-0.8.2-py3-none-any.whl (5.7 MB view details)

Uploaded Python 3

File details

Details for the file pynxtools-0.8.2.tar.gz.

File metadata

  • Download URL: pynxtools-0.8.2.tar.gz
  • Upload date:
  • Size: 5.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pynxtools-0.8.2.tar.gz
Algorithm Hash digest
SHA256 6b9e07877fdc00322cf97eee8a85715e4755f15c6ab0caf42f788fec2febdbfa
MD5 17e165aa4bddffb60e50f90738ad26ba
BLAKE2b-256 b6838b0ba6b44a6bd527a1ca669d41a37ade789f7e60140b68d6b330cc00c2ae

See more details on using hashes here.

Provenance

The following attestation bundles were made for pynxtools-0.8.2.tar.gz:

Publisher: publish.yml on FAIRmat-NFDI/pynxtools

Attestations:

File details

Details for the file pynxtools-0.8.2-py3-none-any.whl.

File metadata

  • Download URL: pynxtools-0.8.2-py3-none-any.whl
  • Upload date:
  • Size: 5.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pynxtools-0.8.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b722d5a511ef0a3e6a8541b494256934a765de07458b967ecce1f16fd98e046e
MD5 8faacbbf81ae15fb8214b368b4efbd80
BLAKE2b-256 472bcb60a07f08dcf83c9b4467d13856a41add38c22107dfaae7fe6013e76833

See more details on using hashes here.

Provenance

The following attestation bundles were made for pynxtools-0.8.2-py3-none-any.whl:

Publisher: publish.yml on FAIRmat-NFDI/pynxtools

Attestations:

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page