Skip to main content

PyPI version Python Version Downloads License: MIT

SpinLab — Bringing the Power of Python to MR Spectroscopy

SpinLab is an open-source, object-oriented Python package for importing, processing, and analyzing data from:

Documentation: spinlaboratory.com


Features

  • Universal data import — load data from 13 spectrometer formats with automatic format detection
  • N-dimensional data objects — the SpinData object keeps data, axes, and experimental parameters together at all times
  • Comprehensive processing — apodization (7 window functions), Fourier transform with zero-filling, phase correction, baseline removal, alignment, integration, and more
  • Analysis tools — relaxation fitting, peak finding, DNP enhancement profile simulation
  • Publication-quality figures — fancy_plot() automatically applies axis labels and formatting based on the experiment type
  • Processing audit log — every processing step is automatically recorded with its parameters for full reproducibility
  • HDF5 save/load — store complete SpinData objects including axes, attributes, and audit log

Supported File Formats

Spectrometer / Software Extension
Bruker Xepr / Elexsys (BES3T) .DSC, .DTA
Bruker WinEPR / ESP .par, .spc
Bruker TopSpin experiment directory
Varian / Agilent VnmrJ .fid directory
JEOL Delta .jdf
Magritek Prospa .1d, .2d, .3d, .4d
FeMi SpecMan4EPR .d01, .exp
Tecmag TNMR .tnt
RS2D .xml, .dat
VNA (S-parameters) .s1p, .s2p
SpinLab HDF5 .h5
CSV (via sl.load_csv())

Quick Start

import spinlab as sl

# Load data — format detected automatically
data = sl.load("spectrum.DTA")

# Inspect the data object
print(data)

# Plot
sl.plt.figure()
sl.plot(data)
sl.plt.show()

NMR processing workflow:

import spinlab as sl

data = sl.load("experiment/1/")                         # load TopSpin FID
data = sl.apodize(data, kind="exponential", lw=5)       # line broadening
data = sl.fourier_transform(data, zero_fill_factor=2)   # FFT with zero-filling
data = sl.phase(data, p0=12.5)                          # phase correction
data = sl.remove_background(data, deg=1)                # baseline correction

sl.plt.figure()
sl.plot(data)
sl.plt.show()

sl.save(data, "processed.h5")                           # save result

Installation

SpinLab requires Python 3.10 or higher.

pip install spinlab

To upgrade an existing installation:

pip install --upgrade spinlab

Documentation

Full documentation including user guides, processing reference, and API reference is available at:

spinlaboratory.com


Development

Contributions are welcome! See the Contributing Guide for details on setting up a development environment, running tests, and opening pull requests.

git clone https://github.com/SpinLab/spinlab
cd spinlab
pip install -e spinlab
python -m pytest

Citing SpinLab

If you use SpinLab to process data for a publication, please add a reference to the SpinLab documentation in your Materials and Methods section.


Authors

Current maintainers: Timothy Keller, Yen-Chun Huang, Thorsten Maly

SpinLab originally started as DNPLab, created by:


License

SpinLab is released under the MIT License.

Metadata

Release files for spinlab 1.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for spinlab 1.1.5
File Size Uploaded
spinlab-1.1.5.tar.gz 119.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for spinlab 1.1.5
File Interpreter ABI Platform
spinlab-1.1.5-py3-none-any.whl Python 3 none any Details

Total release size: 265.0 kB

Release files / spinlab-1.1.5.tar.gz

Download URL spinlab-1.1.5.tar.gz
Size 119.6 kB
Tags Source
SHA-256 checksum
How to use checksums
ea6d99610864170a315b60570e999ac06fee546e61ac92aac8add4db17c136f2
BLAKE2b-256 checksum
How to use checksums
97326852af3363b43c369ae83076560e30547bda58f6ec4a2c87bc32e5c64f75
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / spinlab-1.1.5-py3-none-any.whl

Download URL spinlab-1.1.5-py3-none-any.whl
Size 145.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4d4b1c9b218f23ccc3c3a62073dd8f97b8f26d83833e54e0b4dbab92d7d42ce5
BLAKE2b-256 checksum
How to use checksums
baa033200eea636f4fe53c4fba24d1302d66e1c197385ef3b298aa4f96e5765b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release history Release notifications | RSS feed

This release

1.1.5 This release

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

0.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page