No project description provided
Project description
PyEPR
About
PyEPR is a Python based software package for designing, running and processing EPR experiments on a wide variety of hardware. It is built to be modular and extensible, allowing easy integration of new hardware and experiment types. PyEPR is developed by the Jeschke Lab @ ETH. To extend the functionality of PyEPR we are actively looking for contributors.
PyEPR currently supports BRUKER ElexSys spectrometers running Xepr 2.9 and Andrin Doll style homebuilt spectrometers running Matlab based control software. Extending support for new hardware is straightforward and we are happy to assist anyone interested in doing so.
PyEPR was developed to provide the hardware abstraction layer for autoDEER, a software package for running automated DEER experiments. However, PyEPR can also be used as a general purpose EPR data processing and simulation library.
Features
- Fully python based, open-source and free to use
- Intuitive object-oriented pulse sequencer
- Pre-defined common EPR experiments (CW, Hahn Echo, Inversion Recovery, Carr-Purcell, DEER, etc.)
- Easy to define custom experiments
- Pre-defined common pulse shapes (rectangular, Gaussian, sech/tanh, etc.)
- Easy to define custom pulse shapes
- Hardware abstraction layer for interfacing with different spectrometers
- BRUKER PulseSpel compiler from PyEPR sequences
Installation
It is recommended to install PyEPR in a virtual environment, from source.
Dependencies
- numpy
- scipy
- matplotlib
- DeerLab
- pyyaml
- xarray
- h5netcdf
- toml
- numba
Requirements
PyEPR is generally compatible with Windows, Mac and Linux and requires Python 3.11 or 3.12. Support for new Python versions will only be added once they become stable, and have been fully tested with PyEPR. This can take some time, so please be patient. The specific hardware implementation may add additional limitations for example, when using XeprAPI a modern Linux OS is required.
Citing PyEPR
At the moment, no paper is associated with PyEPR. Once published, it will be linked here. It is kindly requested that in the meantime the appropriate DOI number is cited. The associated Zotero entry is available here.
Citing academic software is important as it helps to ensure the long-term sustainability of the software, and allows the developers to track the impact of their work and secure future funding. It also helps to provide credit to the developers for their hard work.
Contributing
Contributions to PyEPR are welcome! If you have discovered an issue or have a feature request, please open an issue on the GitHub repository. If you would like to contribute code, please fork the repository and submit a pull request. If you have any questions or need help, please open an issue or contact the authors.
License
PyEPR is licensed under the GNU GPLv3 public license, and is released without warranty or liability. Commercial use is allowed, however it is advised to contact the authors for support.
Copyright © 2021-2025: Hugo Karas, Stefan Stoll and Gunnar Jeschke
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyepr_esr-1.0.1.tar.gz.
File metadata
- Download URL: pyepr_esr-1.0.1.tar.gz
- Upload date:
- Size: 125.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
00294c3890710c7754e0403404ccade4f30018ec7b0a335c7ba48b5a86a16233
|
|
| MD5 |
b85287137f9c7b67d88a3a45cc8b1151
|
|
| BLAKE2b-256 |
e840e49d7cc225a0099f24522d7569c341b831e5be4ee86d721f1d70da09f08e
|
Provenance
The following attestation bundles were made for pyepr_esr-1.0.1.tar.gz:
Publisher:
PyPI_upload.yml on JeschkeLab/PyEPR
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyepr_esr-1.0.1.tar.gz -
Subject digest:
00294c3890710c7754e0403404ccade4f30018ec7b0a335c7ba48b5a86a16233 - Sigstore transparency entry: 654325503
- Sigstore integration time:
-
Permalink:
JeschkeLab/PyEPR@a9308cb57358f5705cf51dc71a26b99e74eaf8d0 -
Branch / Tag:
refs/heads/release/v1.0 - Owner: https://github.com/JeschkeLab
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
PyPI_upload.yml@a9308cb57358f5705cf51dc71a26b99e74eaf8d0 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyepr_esr-1.0.1-py3-none-any.whl.
File metadata
- Download URL: pyepr_esr-1.0.1-py3-none-any.whl
- Upload date:
- Size: 138.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d166cbe07161ccca1763dcbf95c59729cce5527f5ac646b8e234f82cf5e7d748
|
|
| MD5 |
316dedfab96e6e95359937b0dc0ea261
|
|
| BLAKE2b-256 |
52e1a6761090f60d3a7826c69dbedaa34860f0d0f14f678b089ebb4f0ac1830e
|
Provenance
The following attestation bundles were made for pyepr_esr-1.0.1-py3-none-any.whl:
Publisher:
PyPI_upload.yml on JeschkeLab/PyEPR
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyepr_esr-1.0.1-py3-none-any.whl -
Subject digest:
d166cbe07161ccca1763dcbf95c59729cce5527f5ac646b8e234f82cf5e7d748 - Sigstore transparency entry: 654325511
- Sigstore integration time:
-
Permalink:
JeschkeLab/PyEPR@a9308cb57358f5705cf51dc71a26b99e74eaf8d0 -
Branch / Tag:
refs/heads/release/v1.0 - Owner: https://github.com/JeschkeLab
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
PyPI_upload.yml@a9308cb57358f5705cf51dc71a26b99e74eaf8d0 -
Trigger Event:
push
-
Statement type: