Skip to content

Peak lists

A PeakList is an assigned peak table — most often an amide HSQC (¹H–¹⁵N) synthesized from assigned chemical shifts, but it can also be read from a CSV or built for arbitrary dimension pairs.

Building a peak list

"From chemical shifts"

import makeshift as ms

cs = ms.ChemicalShifts.from_bmrb(5363)
peaks = ms.PeakList.from_chemshifts(cs)     # or simply cs.peaklist()

"From an entry / BMRB id"

peaks = ms.PeakList.from_bmrb(5363)

# or

entry = ms.NMRStarEntry.from_bmrb(5363)
peaks = ms.PeakList.from_entry(entry)
peaks = ms.PeakList.from_csv("peaks.csv", seq_offset=0)

Choosing dimensions

By default a peak list is the amide HSQC. Pass dims= to build other correlations. Each dimension pair names the two atoms correlated in a peak:

peaks = cs.peaklist(dims=[("H", "N")])   # amide HSQC (default)

Select a single entity in a multi-entity complex with entity_id=, or a specific chemical-shift saveframe with cs_saveframe=.

The table

peaks.data

Columns include the per-dimension ppm values (e.g. H_ppm, N_ppm) and an assignment label, one row per peak.

Assignment strings

assignment_string renders a compact per-residue label string against a sequence — 'A' for an assigned residue, '.' for a missing one, and 'P' for proline:

peaks.assignment_string()
peaks.assignment_string(entity_id=1)

This is handy for a quick, at-a-glance completeness check of an assignment.

Aligning two peak lists

To match an experimental peak list against a reference assignment (for example before a chemical-shift-perturbation analysis), use map_peaklists from makeshift.spectra. See Spectra.

Full API

See the PeakList reference.