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

Uploaded Source

Built Distribution

penguins-0.3.0-py3-none-any.whl (56.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: penguins-0.3.0.tar.gz
  • Upload date:
  • Size: 41.9 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.2

File hashes

Hashes for penguins-0.3.0.tar.gz
Algorithm Hash digest
SHA256 d0aaa8cdf8087bfadfe6e1ab16c2a6eae8952f2111383d9e45b5815cd71dbdb2
MD5 f775021270f5d2f66e7f3476abbe642e
BLAKE2b-256 9b21477a447cfa13ceb3172e06c92f069dbdd9decc9c1b655dad3c9bf87edfd8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: penguins-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 56.1 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.2

File hashes

Hashes for penguins-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c28878ea1442d8a101eacdce8dade7a64c0ad156231d1049e5af0af35b5b3cc0
MD5 0cf3d668d9a6e63697dbe097c1f822c8
BLAKE2b-256 d8fd55c48236e3d9330b5e8acfceb137b75867c20ec79098517a6ce84efc1689

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