Skip to main content

Penguins: an Easy, NPE-free Gateway to Unpacking and Illustrating NMR Spectra

Project description

GitHub Actions Build Status CodeCov coverage PyPI version License

Penguins: an Easy, NPE-free Gateway to Unpacking and Illustrating NMR Spectra

pip install penguins

penguins is a Python 3 package intended mainly for generating publication-quality plots of NMR spectra in a programmatic, reproducible fashion.

Documentation can be found at https://yongrenjie.github.io/penguins. Everything is documented in one form or another, although I'm still working on tutorial-type pages which are easier to read than the docstrings.

Note that penguins is still in development, so the interface should not be assumed to be (too) stable. For now, I am working directly on the master branch, and rebasing/force pushing may occur without warning.


As an example of the output, here's Figure 2 from Angew. Chem. Int. Ed. 2017, 56 (39), 11779–11783:

And here's a similar plot that can be done in under 20 lines of PEP8-compliant code using penguins (it's the same compound, but not the same data):

import penguins as pg
hmqc, hsqc, cosy, noesy = (pg.read("penguins-testdata", expno)
                           for expno in range(22001, 22005))

fig, axs = pg.subplots2d(2, 2)
hmqc.stage(axs[0, 0], levels=7e3, f1_bounds="110..130", f2_bounds="7..9.5")
hsqc.stage(axs[0, 1], levels=4e4, f1_bounds="12..65", f2_bounds="0.5..5")
cosy.stage(axs[1, 0], levels=8e5)
noesy.stage(axs[1, 1], levels=1e5)

titles = [r"$^{15}$N HMQC", r"$^{13}$C HSQC", "COSY", "NOESY"]
for ax, title in zip(axs.flat, titles):
    pg.mkplot(ax, title=title)
    pg.ymove(ax, pos="topright")

pg.label_axes(axs, fstr="({})", fontweight="semibold", fontsize=12)
pg.cleanup_axes()
pg.show()

(The 'NPE' in the name stands for the "billion-dollar mistake", i.e. the NullPointerException familiar to TopSpin users.)

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

penguins-0.4.0.tar.gz (3.3 MB view details)

Uploaded Source

Built Distribution

penguins-0.4.0-py3-none-any.whl (57.4 kB view details)

Uploaded Python 3

File details

Details for the file penguins-0.4.0.tar.gz.

File metadata

  • Download URL: penguins-0.4.0.tar.gz
  • Upload date:
  • Size: 3.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.2

File hashes

Hashes for penguins-0.4.0.tar.gz
Algorithm Hash digest
SHA256 3861afd0bea5161fbafaa35d89fb453e1692f8c603b0f13fb3206ee674dfdcd5
MD5 22253c3ff33b8eba9fe121dd74ef473d
BLAKE2b-256 37e72f1eba64c68c4e61554dbce04d52c79f6e3a28789cf16d6141ba3de0e5a7

See more details on using hashes here.

File details

Details for the file penguins-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: penguins-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 57.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.2

File hashes

Hashes for penguins-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ff2c6c3ed7e92f1837d60fc0a40969832bd1eefe445021f11848e7b923c58016
MD5 13f0bd2e7acd117ce8eb3f6eddced125
BLAKE2b-256 73fca10aef10c8cc787c208fe68bb8accfbf1f2f38afc637b48b2ac8c15fbd23

See more details on using hashes here.

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