Penguins: an ENjoyable Gateway to Unpacking and Illustrating NMR Spectra
Project description
NOTE:
penguins
is not under active development.
I mostly used this as a tool for my own papers and my PhD thesis, and it served me admirably; however, I've since moved on to other stuff, and I don't have the time or motivation to work on new features.
If you are using it, and would like any help with using it to make plots / analyse data, I'm more than happy to help; just write to me at {myGithubUsername} at gmail dot com.
Please put penguins
in the subject title, or I will ignore it.
Penguins: an ENjoyable Gateway to Unpacking and Illustrating NMR Spectra
penguins
is a Python 3 package intended mainly for generating publication-quality plots of NMR spectra in a programmatic, reproducible fashion.
It also performs a very small number of processing and analysis of NMR spectra, namely integration as well as generation of projections/slices.
Install
python -m pip install penguins
(It's a good idea to use a virtual environment.)
Example
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", 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()
Get started
Documentation can be found at https://yongrenjie.github.io/penguins. There are tutorial-type articles intended for entirely new users; I'm working on documentation beyond that, but it's not my main job, so it's a little slow.
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.
NOTE: You may want to silence type checking. There are plenty of issues with this which I have yet to fix. I have chosen to design penguins to provide Pythonic, friendly syntax, which unfortunately makes it very difficult to correctly specify types.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file penguins-0.5.2.tar.gz
.
File metadata
- Download URL: penguins-0.5.2.tar.gz
- Upload date:
- Size: 3.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 94c0ca2c3bee44e1920af2c65bdae4d0f98643995acf44894bff93fd889a5c0b |
|
MD5 | 93463c94f02c3817e036b3093d9d3693 |
|
BLAKE2b-256 | 60495f97a08ed2921808b78caadbd0e0243ca864227850420adb207a39b36508 |
File details
Details for the file penguins-0.5.2-py3-none-any.whl
.
File metadata
- Download URL: penguins-0.5.2-py3-none-any.whl
- Upload date:
- Size: 39.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f66a8ee942948da0d721eeda1ba933fcd9df09e8a898ccc3f40f2bc33337009c |
|
MD5 | a2bcfe0c6aadf0e3cf8d3d5a617ded3c |
|
BLAKE2b-256 | c8c0eec81bd93282f0540f2533378d0d84c2ac84593e785f4b22c847f2d6f792 |