Skip to main content

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

Project description

Travis CI Build Status Code Coverage PyPI version

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("tests/data/noah", i, 1)
                           for i in range(1, 5))

fig, axs = pg.subplots(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=9e4)

titles = [r"$^{15}$N HMQC", r"$^{13}$C HSQC", "COSY", "NOESY"]
for ax, title, char in zip(axs.flat, titles, "abcd"):
    pg.mkplot(ax, title=title, autolabel="nucl")
    ax.text(x=0.02, y=0.98, s=f"({char})", transform=ax.transAxes,
            fontweight="semibold", verticalalignment="top")
    pg.move_ylabel(ax, pos="topright")

pg.cleanup_axes()
pg.show()

[Regarding the 'NPE' in the name: I made this package after getting fed up of getting java.lang.NullPointerException in TopSpin's Plot tab. It's especially bad on OS X Catalina, but even on Windows it's rather buggy. Also, penguins are cute. 🐧]

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.1.2.tar.gz (35.3 kB view details)

Uploaded Source

Built Distribution

penguins-0.1.2-py3-none-any.whl (37.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: penguins-0.1.2.tar.gz
  • Upload date:
  • Size: 35.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.9.0

File hashes

Hashes for penguins-0.1.2.tar.gz
Algorithm Hash digest
SHA256 5b1a88ca423bd40a1c60da6ac079494fe5639bc7905e11808003975e57712a87
MD5 8ae3b465a1d9d022b6f2ce24d257d868
BLAKE2b-256 b31b2f8a0f9d6b7577e1650b3b4f598faf7d40990886a858f7aa4f92b3fb41dd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: penguins-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 37.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.9.0

File hashes

Hashes for penguins-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 fa18ae7f174b0b90ee810c66f5006334a250b501f0e452f2d07dcbde0e322930
MD5 9f7985661dd445c424bb882f22c41335
BLAKE2b-256 6c78467940ba422f05d6332590969794b68d40453cdb6949759e5688939ab5e8

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