Skip to main content

nmrkit

PyPI version Python 3.12+ License Poetry

nmrkit is a Python library for nuclear magnetic resonance (NMR) data processing and analysis.

This is an early-stage project under active development. Contributions are welcome to help expand its capabilities!

Features

  • Data Import/Export: Support for common NMR formats including TopSpin and Delta
  • Basic Processing: Fourier transform, apodization (exponential multiplication), zero filling, phase correction
  • Acquisition Planning: Calculate DOSY diffusion experiment timing and gradient settings
  • Visualization: Interactive plotting with customizable parameters
  • Simple API: Intuitive functions for data processing workflows

Requirements

  • Python >= 3.12
  • NumPy
  • SciPy
  • Matplotlib (optional, for visualization)

Installation

From PyPI (Recommended)

pip install nmrkit

With visualization support:

pip install nmrkit[visualization]

Quick Start

Automatic Processing

Use the auto_process function for automated application of common processing steps:

import nmrkit as nk

# Load NMR data
data = nk.read('path/to/data')

# Automatically process the spectrum
data = nk.auto_process(data)

# Save the plot to a PDF file
nk.plot(data, output_path="spectrum.pdf")

Manual Processing

For more control, use individual processing functions:

import nmrkit as nk

# Load data with explicit format specification
data = nk.read('path/to/data.jdf', format='delta')

# Apply exponential multiplication (apodization) with 1.0 Hz line broadening
data = nk.em(data, lb=1.0)

# Zero fill to 2048 points for improved resolution
data = nk.zf(data, size=2048)

# Perform Fourier transform
data = nk.ft(data)

# Apply phase correction
data = nk.phase(data, ph0=10.0, ph1=25.0)

# Plot the manually processed spectrum
nk.plot(data)

DOSY Acquisition Planning

Use acquisition helpers to estimate DOSY experiment settings from a diffusion coefficient and the maximum gradient strength of an instrument:

dosy_params = nk.calculate_dosy_settings(
    diffusion_coefficient_m2_s=5.8e-10,
    max_gradient_t_m=0.535,
    target_attenuation=0.05,
)

print(f"Diffusion time (big delta):   {dosy_params.diffusion_time_ms:.2f} ms")
print(f"Gradient duration (little delta): {dosy_params.gradient_duration_ms:.4f} ms")
print(f"Achieved residual signal:     {dosy_params.achieved_attenuation:.4f}")

License

nmrkit is released under the Apache License 2.0. See the LICENSE file for more information.

Contributing

The nmrkit project welcomes your expertise and enthusiasm!

Reporting Issues

If you encounter a bug or have an idea for a new feature, please open an issue on GitHub. When reporting bugs, please include:

  • A clear description of the issue
  • Steps to reproduce (if applicable)
  • Expected vs actual behavior
  • Your Python version and operating system

Contributing Code

To contribute code to nmrkit:

  1. Fork and Clone: Fork the repository and clone it locally
  2. Set up Development Environment:
    poetry install
    
  3. Create a Branch: Create a new branch for your feature or bug fix
    git checkout -b feature/your-feature-name
    
  4. Make Changes: Implement your changes following the existing code style
  5. Run Tests: Ensure all tests pass
    poetry run pytest
    
  6. Commit: Commit your changes with clear, descriptive messages
  7. Push and Submit PR: Push to your fork and submit a pull request

Development Guidelines

  • Follow PEP 8 style guidelines
  • Add type hints for new functions
  • Include docstrings following the existing format
  • Add tests for new functionality
  • Ensure all tests pass before submitting PR

Small improvements or fixes are always appreciated. Even minor contributions can make a significant difference!

Contact

Metadata

Release files for nmrkit 1.0.1

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

Source distribution (sdist)

Source distribution for nmrkit 1.0.1
File Size Uploaded
nmrkit-1.0.1.tar.gz 41.4 kB Details

Built distribution (wheel)

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

Total release size: 92.3 kB

Release files / nmrkit-1.0.1.tar.gz

Download URL nmrkit-1.0.1.tar.gz
Size 41.4 kB
Tags Source
SHA-256 checksum
How to use checksums
6ad550b42a73821d3e73e273c53fa2487c06e0c087ca8f959209d4b3a7ec5d18
BLAKE2b-256 checksum
How to use checksums
300220475f76f4d785cfab1b66fc013a35ac0d0898ed07e8160c91f41f3c8938
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 20, 2026.

Transparency log

Release files / nmrkit-1.0.1-py3-none-any.whl

Download URL nmrkit-1.0.1-py3-none-any.whl
Size 50.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
eb50f222cbddc305b39d046f1eac2852f07f9156524ddd3c20f94530b7b1bec4
BLAKE2b-256 checksum
How to use checksums
5d5a76292bc4452cd7cec667e12bb38c64ea6637605b3b329b732e0775e018d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 20, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.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