cheminfo / nmrium

React component to display and process nuclear magnetic resonance (NMR) spectra.
https://docs.nmrium.org
MIT License
55 stars 25 forks source link

feat: tool for a computer-assisted assignement of scalar coupling #156

Open djeanner opened 4 years ago

djeanner commented 4 years ago

I propose to develop a tool for the assignment of scalar couplings.

Why do we need assigned couplings ?

Coupling constants without assignment provide fragments of the coupling network (left below). When assigned, the coupling network is assembled (right below) - like the pieces of a jigsaw puzzle.

image

Once we have the full coupling network (see below), we can simulate the spectra (with second-order effects - when existing - a first step towards validation by spectral-matching and parameter optimization...)

image

J-graph

J-graphs are representations of the coupling constants found in multiplets: on a vertical arrow, a (coloured) dot is drawn at the level corresponding to the coupling constant. When couplings are assigned, horizontal lines (in pink below) link the circles of the two coupling partners.

image

These graphs should be useful for computer-assisted assignment of coupling. In favourable cases, the lines could be drawn automatically (see above). The horizontal position could be according to the chemical shift in the spectrum, or by proximity on the molecules - or a mix (the user should be able to move them at wish).

The J-graph would be the user interface for the assignment. Clicking and pulling from dot-to-dot would add/remove the lines that are drawn horizontally between the dots. When the assignment of chemical shifts is already done, only part of the J-graph of the neighbouring protons would be shown. When the two values of the couplings are different, an average value could be used.

A separate window could show the corresponding coupling network. The map should reflect the chemical structure, but the user could move the nodes (chemical shifts) to facilitate the reading to facilitate the reading and human validation (for example check that couplings are large between pairs of axial protons). Indeed, having the coupling drawn on the molecule directly is possibly too crowded. (see the end of this movie https://www.dropbox.com/s/ufk04hw91r6pp4g/movie_j_Angel_nmredata_displayer.mov?dl=0)

With the assignment at hand, we would have a table for chemical shift/coupling already filled for spectral simulation. When looking at single multiplet clicking on the spectral simulator could display only the relevant part of the spin network, prefill it and allow refinement of those (few) coupling. In this way, we dont' have all the parameters of the spectrum to fit simultaneously - it could be done step-by-step and the user could validate parameters...

Example of J-graph of androsten

Picture1

See the structure and numbering of H of androsten

Note that such graph facilitates the comparison of experimental data with data from DFT data (or other predicted data...). Indeed, the chemical shift ofter vary significantly while the values of the coupling are better predicted. The similarity of J-graphs of simulated and experimental is easiy to catch by visual inspection and should facilitate computer-assisted assignement. image (from Fig. S6 of Cotte et al. Angew. Chem. Int. Ed. 2015, 54, 1 – 4 doi: 10.1002/anie.201500831)

lpatiny commented 3 years ago

@hamed-musallam

In the ranges panel we should add one more toggle icon.

image

This will add some space on the top of the spectrum to insert a schema like

image

We will check in all the ranges -> signals -> couplings the values and for each signals.delta we will display dots for the corresponding coupling.

djeanner commented 2 years ago

Work in progress in

https://nmredatainitiative.github.io/J-graph/