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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: penguins-0.2.1.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.2.1.tar.gz
Algorithm Hash digest
SHA256 842359d7e6eba8ea5f9cd756d34b8b9d7f3c7066c2204d324c604c6d566d5372
MD5 d6bd492e633e435c905980e62ac9876f
BLAKE2b-256 208220cfedd984c1432a57438e7d7a6af3361fa9305e844369e2199fdc64178f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: penguins-0.2.1-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.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7e7f748a1bb1fdff7206f8360190dd93e8ec03ddb23ff062c359861ac9e0604c
MD5 f9c19343d86304b8347c9de704c165b5
BLAKE2b-256 0c277210624bca7579627225d7d4bbcc6f088d25f30fd1a7465ad2c75c429b9c

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