One often has a case where one has a set of peak lists that represent resonances from the same atoms, but there is currently no relationship established between the corresponding peaks in each of the lists. In many cases, one of the lists may already have assignments (though this is not necessary for the following tool to work). In this section we describe a tool for comparing two lists and finding an optimal match between the peaks in the first list and the peaks in the second list. The tool can obviously be used sequentially to link peaks in multiple lists back to those in the first one. The underlying algorithm used here is exactly the same as used for the Peak Atom matching described above, but here the two sets of nodes used in the bipartite matcher correspond to peaks in the two different lists.
To start this process bring up the Peak -Peak Matcher from the menu entry. Choose the first peak list that you wish to assign by clicking on the list chooser near the top left, and the second from the top right.. Once you choose a list you'll see a series of rows of information, with one row for each dimension.
For each dimension number listed choose the name of the dimension to match. You must choose matching dimensions from each list for each desired dimension. Typically the dimension labels for each row will be the same (as show below, HN on the first, and N on the second), but you may well have used different names for what are actually corresponding dimensions (perhaps N in one list and 15N in a second). You can set tolerances to be used for the matching process. If you leave these blank it will default to 0.1 ppm. Sometimes you know that the peaks are all shifted by a certain amount in one or more dimensions from the assigned each other. This might be due to a splitting from residual dipolar couplings, for example. If this is the case enter an approximate value for the expected shift. In the example below the peaks are shifted by the dipolar coupling so we'll enter a shift of about 0.5 ppm to allow for the expected shift in the 15N direction (the spectra are collected at 81 MHz (15N)so the shift is roughly 90.0/81/2.0). Be careful to choose the sign of the offset correctly. The offset value specified is added to the chemical shift of each peak from the lists before the comparison is done.
![]() |
The matching process is started by clicking on the button. The shifts of each peak in the first list will be compared with the shifts of the each peak in the second list and a bipartite pattern matching algorithm will be used to generate an optimal matching of two sets of peaks..
The table below the control section will be filled in with the peaks from the first list and the peak of the second list that corresponds to that in the optimal assignment (if one is found within the specified tolerance). The score value is based on the chemical shift deviation between the matched peaks. Remember that you can click on any column header to sort (ascending or descending) by the values in that column.
Clicking the button will link together the matching peaks by setting them to share a common resonance. As with all resonance based linking, if one of the peaks is already assigned, the second one will now share the assignment.
The optimal matching between two peak lists will depend on how well aligned the two peak lists, or how well chosen the offset values are that are used. The Peak-Peak matcher can iteratively refine the match by modifying the global offset value for each dimension. This can be turned on by selecting the button prior to initializing the match with . Matching with optimization turned on will be slower than without it, because the optimization process is repeated multiple times until convergence.
The process then, is:
Select Peak List One
Select Peak List Two.
Choose dimensions, tolerances, and offsets.
Check the button if you wish to automatically optimize the peak-peak offset for each dimension.
Click to match peaks from the two lists.
Review scores and deselect any inappropriate matches.
Click to link selected (match checkbox) peaks in the two lists.