View on GitHub

J-graph

Graphical representations of NMR scalar coupling constants

Other applications of J-graphs

Other uses include the comparision of calculated (DFT/GIAO) and experimental coupling constants of androsten. The abscissa corresponds to the chemical shifts.

J-Graph.

Note: This J-graph is not using the proposed color map. Ref: Supplementary information of
Cotte et al. Angew Chem Int Ed Engl. 2015, 6016, doi:10.1002/anie.201500831.

Matlab implementation (2019)

J-Graph.

J-Graph.

Note: This J-graph is not using the proposed color map. Used by J. Keller, Master thesis, University of Geneva, 2019.

Implementation

For each spin, a pillar is positioned at the position of the chemical shift (or shifted horizontally to avoid overlap) shows the label of the spin (at the bottom) and the values of J’s vertically. Ticks are drawn at 5, 10 ,15 and 20 Hz. Draw dots or crosses at the positions of level of all Jval(a,b) on the pillars of a and b. A better solution to a simple horizontal line between the pillars of a and b is proposed in the next paragraph to improve the readability of the J-graphs when J coupling are similar (overlap of lines and lines over the dots).

Improved implementation

Instead of a straight horizontal lines between a and b, draw a three-segment line or a Bésier curve. See Matlab implementation above to see examples of three-segment lines used to avoid overlap. Note the Matlab implementation is not implementing the algorithm presented in this paragraph.

The middle segment should drawn at a level corresponding to Jmodif(a,b). The Jmodif(a,b) is initially set to J(a,b) and imbricated loops will increment Jmodif according to the desired space. This space may be just the width of the horizontal lines plus some margin for readability or more if the value of the coupling or other text is added on the lines.

Loop 1: Loop over increasing spaced pairs of pillars a and b. Start with abs(PillarIndex(a) - PillarIndex(b)) == 2 (one pillar between a and b) and increment until abs(PillarIndex(a) - PillarIndex(b)) == PillarIndex.size() - 1.

Loop 2: Loop j over increasing values of coupling of pillar i between a and b. (Sort all J’s found between a and b by increasing value.)

If a value of Jmodif(a, b) is close to Jmodif(i, a) or J(i, a) : increment Jmodif(a, b). This will ensure the horizontal line will touch neither the dots nor the horizontal lines located between a and b.

NMRium implementation

J-graphs are used by NMRium as a guide to find coupling partners in NMR assignment - not to show the assigned J’s.

Color code for scalar coupling constants

A color map was introduced specifically for J(H,H).