cwepr documentation

Welcome! This is the documentation for cwepr, a Python package for processing and analysis of continuous-wave electron paramagnetic resonance (cw-EPR) spectra based on the ASpecD framework. For general information see its Homepage. Due to the inheritance from the ASpecD framework, all data generated with the cwepr package are completely reproducible and have a complete history.

What is even better: Actual data processing and analysis no longer requires programming skills, but is as simple as writing a text file summarising all the steps you want to have been performed on your dataset(s) in an organised way. Curious? Have a look at the following example:

 2  type: ASpecD recipe
 3  version: '0.2'
 6  default_package: cwepr
 9  - /path/to/first/dataset
10  - /path/to/second/dataset
13  - kind: processing
14    type: FrequencyCorrection
15    properties:
16      parameters:
17        frequency: 9.8
18  - kind: processing
19    type: BaselineCorrection
20    properties:
21      parameters:
22        order: 0
23  - kind: singleplot
24    type: SinglePlotter1D
25    properties:
26      filename:
27        - first-dataset.pdf
28        - second-dataset.pdf

Interested in more real-live examples? Check out the use cases section and the growing list of examples providing complete recipes for different needs.


A list of features:

  • Fully reproducible processing and analysis of cw-EPR data.

  • Gap-less record of each processing/analysis step, including explicit and implicit parameters.

  • Import of EPR data from diverse sources (Bruker ESP, EMX, Elexsys; Magnettech; NIEHS PEST)

  • Generic representation of EPR data, independent of the original format.

  • Datasets contain both, numerical data and all crucial metadata, a prerequisite for FAIR data.

  • Generic plotting capabilities, easily extendable

  • Report generation using pre-defined templates

  • Recipe-driven data analysis, allowing tasks to be performed fully unattended in the background

And to make it even more convenient for users and future-proof:

  • Open source project written in Python (>= 3.7)

  • Extensive user and API documentation


The cwepr package comes with a rather minimal set of requirements:

  • Python >= 3.7 with aspecd, numpy, scipy and matplotlib packages

  • command-line access for recipe-driven data analysis

  • metadata (in addition to the usual parameter files)

  • EPR data in readable formats (details in the cwepr.io (sub)package)

How to cite

cwepr is free software. However, if you use cwepr for your own research, please cite both, the article describing it and the software itself:

To make things easier, cwepr has a DOI provided by Zenodo, and you may click on the badge below to directly access the record associated with it. Note that this DOI refers to the package as such and always forwards to the most current version.


Where to start

Users new to the cwepr package should probably start at the beginning, those familiar with its underlying concepts may jump straight to the section explaining frequent use cases.

Those interested in a hands-on primer on cw-EPR spectroscopy, covering necessary information for how to obtain usable data with your cw-EPR spectrometer, may have a look at the cw-EPR primer.

The API documentation is the definite source of information for developers, besides having a look at the source code.


To install the cwepr package on your computer (sensibly within a Python virtual environment), open a terminal (activate your virtual environment), and type in the following:

pip install cwepr

Have a look at the more detailed installation instructions as well.

Actual use cases

The cwepr Python package has been used already for analysing published cwepr data, and for some, the data and recipes have been published as “data publications”. See the list of data publications for further details.

Indices and tables


This program is free software: you can redistribute it and/or modify it under the terms of the BSD License. However, if you use the cwepr package for your own research, please cite it appropriately. See How to cite for details.