nmr-processing 9.7.7 → 9.7.9-pre.1690349439

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (541) hide show
  1. package/lib/apodization/compose.js +1 -1
  2. package/lib/apodization/compose.js.map +1 -1
  3. package/lib/assignment/get13CAssignments.d.ts +1 -1
  4. package/lib/assignment/get13CAssignments.js +3 -3
  5. package/lib/assignment/get13CAssignments.js.map +1 -1
  6. package/lib/assignment/get1HAssignments.d.ts +2 -4
  7. package/lib/assignment/get1HAssignments.js +3 -3
  8. package/lib/assignment/get1HAssignments.js.map +1 -1
  9. package/lib/assignment/getAssignments.d.ts +3 -5
  10. package/lib/assignment/getAssignments.js +5 -5
  11. package/lib/assignment/getAssignments.js.map +1 -1
  12. package/lib/assignment/nmrAssigment.d.ts +2 -2
  13. package/lib/assignment/utils/addSolution.d.ts +13 -0
  14. package/lib/assignment/utils/addSolution.js +29 -0
  15. package/lib/assignment/utils/addSolution.js.map +1 -0
  16. package/lib/assignment/utils/{getAssignment → generalAssignment}/buildAssignments.d.ts +13 -27
  17. package/lib/assignment/utils/{getAssignment → generalAssignment}/buildAssignments.js +15 -15
  18. package/lib/assignment/utils/generalAssignment/buildAssignments.js.map +1 -0
  19. package/lib/assignment/utils/{getAssignment → generalAssignment}/checkIDs.js +6 -6
  20. package/lib/assignment/utils/generalAssignment/checkIDs.js.map +1 -0
  21. package/lib/assignment/utils/{getAssignment → generalAssignment}/createMapPossibleAssignment.d.ts +3 -7
  22. package/lib/assignment/utils/{getAssignment → generalAssignment}/createMapPossibleAssignment.js +7 -7
  23. package/lib/assignment/utils/generalAssignment/createMapPossibleAssignment.js.map +1 -0
  24. package/lib/assignment/utils/{getAssignment → generalAssignment}/exploreTree.d.ts +1 -1
  25. package/lib/assignment/utils/{getAssignment → generalAssignment}/exploreTree.js +6 -7
  26. package/lib/assignment/utils/generalAssignment/exploreTree.js.map +1 -0
  27. package/lib/assignment/utils/{getAssignment → generalAssignment}/formatData.js +5 -5
  28. package/lib/assignment/utils/generalAssignment/formatData.js.map +1 -0
  29. package/lib/assignment/utils/generalAssignment/getIntegrationOfAttachedProtons.js.map +1 -0
  30. package/lib/assignment/utils/{getAssignment → generalAssignment}/getTargetsAndCorrelations.d.ts +2 -4
  31. package/lib/assignment/utils/{getAssignment → generalAssignment}/getTargetsAndCorrelations.js +1 -1
  32. package/lib/assignment/utils/generalAssignment/getTargetsAndCorrelations.js.map +1 -0
  33. package/lib/assignment/utils/{getAssignment → generalAssignment}/getWorkFlow.d.ts +1 -1
  34. package/lib/assignment/utils/generalAssignment/getWorkFlow.js.map +1 -0
  35. package/lib/assignment/utils/{getAssignment → generalAssignment}/groupCarbonTargetByIntegrationZone.js +8 -8
  36. package/lib/assignment/utils/generalAssignment/groupCarbonTargetByIntegrationZone.js.map +1 -0
  37. package/lib/assignment/utils/generalAssignment/isSpectraData1D.js.map +1 -0
  38. package/lib/assignment/utils/{getAssignment → generalAssignment}/partialScore.d.ts +1 -3
  39. package/lib/assignment/utils/{getAssignment → generalAssignment}/partialScore.js +20 -20
  40. package/lib/assignment/utils/generalAssignment/partialScore.js.map +1 -0
  41. package/lib/assignment/utils/generalAssignment/searchIndices.js.map +1 -0
  42. package/lib/assignment/utils/{buildAssignments.d.ts → oneDimensionalAssignment/buildAssignments.d.ts} +2 -4
  43. package/lib/assignment/utils/{buildAssignments.js → oneDimensionalAssignment/buildAssignments.js} +4 -4
  44. package/lib/assignment/utils/oneDimensionalAssignment/buildAssignments.js.map +1 -0
  45. package/lib/assignment/utils/{createMapPossibleAssignments.d.ts → oneDimensionalAssignment/createMapPossibleAssignments.d.ts} +3 -5
  46. package/lib/assignment/utils/{createMapPossibleAssignments.js → oneDimensionalAssignment/createMapPossibleAssignments.js} +4 -4
  47. package/lib/assignment/utils/oneDimensionalAssignment/createMapPossibleAssignments.js.map +1 -0
  48. package/lib/assignment/utils/{exploreTreeRec.d.ts → oneDimensionalAssignment/exploreTreeRec.d.ts} +1 -1
  49. package/lib/assignment/utils/{exploreTreeRec.js → oneDimensionalAssignment/exploreTreeRec.js} +7 -8
  50. package/lib/assignment/utils/oneDimensionalAssignment/exploreTreeRec.js.map +1 -0
  51. package/lib/assignment/utils/{partialScore.d.ts → oneDimensionalAssignment/partialScore.d.ts} +1 -1
  52. package/lib/assignment/utils/{partialScore.js → oneDimensionalAssignment/partialScore.js} +9 -9
  53. package/lib/assignment/utils/oneDimensionalAssignment/partialScore.js.map +1 -0
  54. package/lib/constants/SignalsKinds.d.ts +2 -2
  55. package/lib/constants/SignalsKinds.js.map +1 -1
  56. package/lib/constants/couplingValues.d.ts +1 -3
  57. package/lib/constants/couplingValues.js.map +1 -1
  58. package/lib/constants/impurities.d.ts +1509 -6
  59. package/lib/constants/impurities.js +2 -1
  60. package/lib/constants/impurities.js.map +1 -1
  61. package/lib/databases/getDatabase.js +1 -1
  62. package/lib/databases/getDatabase.js.map +1 -1
  63. package/lib/datum/Filters.js +4 -0
  64. package/lib/datum/Filters.js.map +1 -1
  65. package/lib/datum/FiltersManager.d.ts +1 -1
  66. package/lib/datum/FiltersManager.js +2 -2
  67. package/lib/datum/FiltersManager.js.map +1 -1
  68. package/lib/datum/MatrixOptions.d.ts +2 -2
  69. package/lib/datum/data1d/Entry1D.d.ts +1 -1
  70. package/lib/datum/data1d/filter1d/baselineCorrection.js +4 -4
  71. package/lib/datum/data1d/filter1d/baselineCorrection.js.map +1 -1
  72. package/lib/datum/data1d/filter1d/digitalFilter.js +2 -2
  73. package/lib/datum/data1d/filter1d/digitalFilter.js.map +1 -1
  74. package/lib/datum/data1d/filter1d/fft.js +7 -7
  75. package/lib/datum/data1d/filter1d/fft.js.map +1 -1
  76. package/lib/datum/data1d/filter1d/phaseCorrection.js +3 -3
  77. package/lib/datum/data1d/filter1d/phaseCorrection.js.map +1 -1
  78. package/lib/datum/data1d/filter1d/signalProcessing.js +1 -1
  79. package/lib/datum/data1d/filter1d/signalProcessing.js.map +1 -1
  80. package/lib/datum/data1d/filter1d/utils/padDataToNextPowerOfTwo.js +2 -2
  81. package/lib/datum/data1d/filter1d/utils/padDataToNextPowerOfTwo.js.map +1 -1
  82. package/lib/datum/data1d/filter1d/zeroFilling.js +8 -8
  83. package/lib/datum/data1d/filter1d/zeroFilling.js.map +1 -1
  84. package/lib/datum/data1d/utils/mapPeaks.js +1 -1
  85. package/lib/datum/data1d/utils/mapPeaks.js.map +1 -1
  86. package/lib/datum/data2d/Entry2D.d.ts +1 -1
  87. package/lib/datum/data2d/filter2d/fftDimension1.d.ts +15 -0
  88. package/lib/datum/data2d/filter2d/fftDimension1.js +49 -0
  89. package/lib/datum/data2d/filter2d/fftDimension1.js.map +1 -0
  90. package/lib/datum/data2d/filter2d/fftDimension2.d.ts +15 -0
  91. package/lib/datum/data2d/filter2d/fftDimension2.js +60 -0
  92. package/lib/datum/data2d/filter2d/fftDimension2.js.map +1 -0
  93. package/lib/datum/data2d/utils/getShift.js +1 -1
  94. package/lib/datum/data2d/utils/getShift.js.map +1 -1
  95. package/lib/multiplicity/joinPatterns.js +1 -1
  96. package/lib/multiplicity/joinPatterns.js.map +1 -1
  97. package/lib/multiplicity/splitPatterns.js +1 -1
  98. package/lib/multiplicity/splitPatterns.js.map +1 -1
  99. package/lib/peaks/peakToXY.d.ts +1 -1
  100. package/lib/peaks/peaksFilterImpurities.js +7 -6
  101. package/lib/peaks/peaksFilterImpurities.js.map +1 -1
  102. package/lib/peaks/peaksToRanges.js +17 -17
  103. package/lib/peaks/peaksToRanges.js.map +1 -1
  104. package/lib/peaks/peaksToXY.d.ts +1 -1
  105. package/lib/peaks/solventSuppression.js +11 -11
  106. package/lib/peaks/solventSuppression.js.map +1 -1
  107. package/lib/peaks/util/addMissingIDs.js.map +1 -1
  108. package/lib/peaks/util/determineRealTop.js +32 -32
  109. package/lib/peaks/util/determineRealTop.js.map +1 -1
  110. package/lib/peaks/util/getKernel.js +4 -4
  111. package/lib/peaks/util/getKernel.js.map +1 -1
  112. package/lib/peaks/util/peakOptimizer.js +17 -17
  113. package/lib/peaks/util/peakOptimizer.js.map +1 -1
  114. package/lib/peaks/util/setIDs.js.map +1 -1
  115. package/lib/prediction/dataStructure.d.ts +1 -3
  116. package/lib/prediction/predictAll.js +2 -1
  117. package/lib/prediction/predictAll.js.map +1 -1
  118. package/lib/prediction/predictCOSY.js +1 -1
  119. package/lib/prediction/predictCOSY.js.map +1 -1
  120. package/lib/prediction/predictCarbon.js +6 -6
  121. package/lib/prediction/predictCarbon.js.map +1 -1
  122. package/lib/prediction/predictHMBC.js +1 -1
  123. package/lib/prediction/predictHMBC.js.map +1 -1
  124. package/lib/prediction/predictHSQC.js +1 -1
  125. package/lib/prediction/predictHSQC.js.map +1 -1
  126. package/lib/prediction/predictProton.js +9 -9
  127. package/lib/prediction/predictProton.js.map +1 -1
  128. package/lib/prediction/utils/getFilteredIDiaIDs.js +3 -3
  129. package/lib/prediction/utils/getFilteredIDiaIDs.js.map +1 -1
  130. package/lib/prediction/utils/getNuclei.d.ts +1 -3
  131. package/lib/prediction/utils/getNuclei.js.map +1 -1
  132. package/lib/prediction/utils/predict2D.d.ts +1 -3
  133. package/lib/prediction/utils/predict2D.js +17 -17
  134. package/lib/prediction/utils/predict2D.js.map +1 -1
  135. package/lib/prediction/utils/queryByHOSE.js +1 -1
  136. package/lib/prediction/utils/queryByHOSE.js.map +1 -1
  137. package/lib/ranges/markSolventSignal.js +8 -8
  138. package/lib/ranges/markSolventSignal.js.map +1 -1
  139. package/lib/ranges/rangesToACS.js +6 -6
  140. package/lib/ranges/rangesToACS.js.map +1 -1
  141. package/lib/ranges/rangesToXY.js +6 -6
  142. package/lib/ranges/rangesToXY.js.map +1 -1
  143. package/lib/signal/signalJoinCouplings.js +19 -12
  144. package/lib/signal/signalJoinCouplings.js.map +1 -1
  145. package/lib/signal/signalMultiplicityPattern.js +2 -2
  146. package/lib/signal/signalMultiplicityPattern.js.map +1 -1
  147. package/lib/signals/addDummySignals.js +4 -4
  148. package/lib/signals/addDummySignals.js.map +1 -1
  149. package/lib/signals/hackSignalsToXY.js +1 -1
  150. package/lib/signals/hackSignalsToXY.js.map +1 -1
  151. package/lib/signals/optimization/getInternalSignals.js +6 -6
  152. package/lib/signals/optimization/getInternalSignals.js.map +1 -1
  153. package/lib/signals/optimization/getSumOfShapes.js +1 -1
  154. package/lib/signals/optimization/getSumOfShapes.js.map +1 -1
  155. package/lib/signals/optimizeSignals.js +3 -3
  156. package/lib/signals/optimizeSignals.js.map +1 -1
  157. package/lib/signals/signals2DToZ.js +3 -2
  158. package/lib/signals/signals2DToZ.js.map +1 -1
  159. package/lib/signals/signalsJoin.js +5 -5
  160. package/lib/signals/signalsJoin.js.map +1 -1
  161. package/lib/signals/signalsToFID.js +1 -1
  162. package/lib/signals/signalsToFID.js.map +1 -1
  163. package/lib/signals/signalsToRanges.js +3 -3
  164. package/lib/signals/signalsToRanges.js.map +1 -1
  165. package/lib/signals/signalsToXY.js +3 -3
  166. package/lib/signals/signalsToXY.js.map +1 -1
  167. package/lib/signals/simulation/signalsToSpinSystem.js +2 -2
  168. package/lib/signals/simulation/signalsToSpinSystem.js.map +1 -1
  169. package/lib/signals/simulation/simulate1D.js +2 -2
  170. package/lib/signals/simulation/simulate1D.js.map +1 -1
  171. package/lib/signals/simulation/simulateXYPeaks.js +15 -17
  172. package/lib/signals/simulation/simulateXYPeaks.js.map +1 -1
  173. package/lib/signals/simulation/splitSpinSystem.js +26 -23
  174. package/lib/signals/simulation/splitSpinSystem.js.map +1 -1
  175. package/lib/signals/utils/jAnalyzer.js +38 -38
  176. package/lib/signals/utils/jAnalyzer.js.map +1 -1
  177. package/lib/types/Integrals.d.ts +1 -1
  178. package/lib/types/Peaks/Peaks.d.ts +1 -1
  179. package/lib/types/Ranges/Ranges.d.ts +1 -1
  180. package/lib/types/Zones/Zone.d.ts +1 -1
  181. package/lib/types/Zones/Zones.d.ts +1 -1
  182. package/lib/utilities/getFrequency.js +1 -1
  183. package/lib/utilities/getFrequency.js.map +1 -1
  184. package/lib/utilities/resurrectRange.js +1 -1
  185. package/lib/utilities/resurrectRange.js.map +1 -1
  186. package/lib/xy/xyAutoPeaksPicking.js +3 -3
  187. package/lib/xy/xyAutoPeaksPicking.js.map +1 -1
  188. package/lib/xyz/quadrature.js +6 -6
  189. package/lib/xyz/quadrature.js.map +1 -1
  190. package/lib/xyz/util/fft2d/digitalFilter.js +3 -3
  191. package/lib/xyz/util/fft2d/digitalFilter.js.map +1 -1
  192. package/lib/xyz/util/fft2d/fftDirectDimension.d.ts +1 -1
  193. package/lib/xyz/util/fft2d/fftDirectDimension.js +4 -3
  194. package/lib/xyz/util/fft2d/fftDirectDimension.js.map +1 -1
  195. package/lib/xyz/util/fft2d/fftIndirectDimension.js +5 -4
  196. package/lib/xyz/util/fft2d/fftIndirectDimension.js.map +1 -1
  197. package/lib/xyz/util/fft2d/removeDCOffset.js +1 -1
  198. package/lib/xyz/util/fft2d/removeDCOffset.js.map +1 -1
  199. package/lib/xyz/util/fft2d/zeroFilling.js +4 -6
  200. package/lib/xyz/util/fft2d/zeroFilling.js.map +1 -1
  201. package/lib/xyz/util/formatZone.js +3 -3
  202. package/lib/xyz/util/formatZone.js.map +1 -1
  203. package/lib/xyz/util/getMinMaxXY.d.ts +6 -0
  204. package/lib/xyz/util/getMinMaxXY.js +23 -0
  205. package/lib/xyz/util/getMinMaxXY.js.map +1 -0
  206. package/lib/xyz/util/padData.js +7 -7
  207. package/lib/xyz/util/padData.js.map +1 -1
  208. package/lib/xyz/xyzAutoSignalsPicking.js +19 -18
  209. package/lib/xyz/xyzAutoSignalsPicking.js.map +1 -1
  210. package/lib/xyz/xyzBidimensionalFFT.js +2 -19
  211. package/lib/xyz/xyzBidimensionalFFT.js.map +1 -1
  212. package/lib/xyz/xyzJResAnalyzer.js +21 -21
  213. package/lib/xyz/xyzJResAnalyzer.js.map +1 -1
  214. package/lib-esm/apodization/compose.js +1 -1
  215. package/lib-esm/apodization/compose.js.map +1 -1
  216. package/lib-esm/assignment/get13CAssignments.js +3 -3
  217. package/lib-esm/assignment/get13CAssignments.js.map +1 -1
  218. package/lib-esm/assignment/get1HAssignments.js +3 -3
  219. package/lib-esm/assignment/get1HAssignments.js.map +1 -1
  220. package/lib-esm/assignment/getAssignments.js +5 -5
  221. package/lib-esm/assignment/getAssignments.js.map +1 -1
  222. package/lib-esm/assignment/utils/addSolution.js +25 -0
  223. package/lib-esm/assignment/utils/addSolution.js.map +1 -0
  224. package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/buildAssignments.js +15 -15
  225. package/lib-esm/assignment/utils/generalAssignment/buildAssignments.js.map +1 -0
  226. package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/checkIDs.js +6 -6
  227. package/lib-esm/assignment/utils/generalAssignment/checkIDs.js.map +1 -0
  228. package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/createMapPossibleAssignment.js +7 -7
  229. package/lib-esm/assignment/utils/generalAssignment/createMapPossibleAssignment.js.map +1 -0
  230. package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/exploreTree.js +6 -7
  231. package/lib-esm/assignment/utils/generalAssignment/exploreTree.js.map +1 -0
  232. package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/formatData.js +5 -5
  233. package/lib-esm/assignment/utils/generalAssignment/formatData.js.map +1 -0
  234. package/lib-esm/assignment/utils/generalAssignment/getIntegrationOfAttachedProtons.js.map +1 -0
  235. package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/getTargetsAndCorrelations.js +1 -1
  236. package/lib-esm/assignment/utils/generalAssignment/getTargetsAndCorrelations.js.map +1 -0
  237. package/lib-esm/assignment/utils/generalAssignment/getWorkFlow.js.map +1 -0
  238. package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/groupCarbonTargetByIntegrationZone.js +8 -8
  239. package/lib-esm/assignment/utils/generalAssignment/groupCarbonTargetByIntegrationZone.js.map +1 -0
  240. package/lib-esm/assignment/utils/generalAssignment/isSpectraData1D.js.map +1 -0
  241. package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/partialScore.js +20 -20
  242. package/lib-esm/assignment/utils/generalAssignment/partialScore.js.map +1 -0
  243. package/lib-esm/assignment/utils/generalAssignment/searchIndices.js.map +1 -0
  244. package/lib-esm/assignment/utils/{buildAssignments.js → oneDimensionalAssignment/buildAssignments.js} +4 -4
  245. package/lib-esm/assignment/utils/oneDimensionalAssignment/buildAssignments.js.map +1 -0
  246. package/lib-esm/assignment/utils/{createMapPossibleAssignments.js → oneDimensionalAssignment/createMapPossibleAssignments.js} +4 -4
  247. package/lib-esm/assignment/utils/oneDimensionalAssignment/createMapPossibleAssignments.js.map +1 -0
  248. package/lib-esm/assignment/utils/{exploreTreeRec.js → oneDimensionalAssignment/exploreTreeRec.js} +7 -8
  249. package/lib-esm/assignment/utils/oneDimensionalAssignment/exploreTreeRec.js.map +1 -0
  250. package/lib-esm/assignment/utils/{partialScore.js → oneDimensionalAssignment/partialScore.js} +9 -9
  251. package/lib-esm/assignment/utils/oneDimensionalAssignment/partialScore.js.map +1 -0
  252. package/lib-esm/constants/SignalsKinds.js.map +1 -1
  253. package/lib-esm/constants/couplingValues.js.map +1 -1
  254. package/lib-esm/constants/impurities.js +2 -1
  255. package/lib-esm/constants/impurities.js.map +1 -1
  256. package/lib-esm/databases/getDatabase.js +1 -1
  257. package/lib-esm/databases/getDatabase.js.map +1 -1
  258. package/lib-esm/datum/Filters.js +4 -0
  259. package/lib-esm/datum/Filters.js.map +1 -1
  260. package/lib-esm/datum/FiltersManager.js +2 -2
  261. package/lib-esm/datum/FiltersManager.js.map +1 -1
  262. package/lib-esm/datum/data1d/filter1d/baselineCorrection.js +4 -4
  263. package/lib-esm/datum/data1d/filter1d/baselineCorrection.js.map +1 -1
  264. package/lib-esm/datum/data1d/filter1d/digitalFilter.js +2 -2
  265. package/lib-esm/datum/data1d/filter1d/digitalFilter.js.map +1 -1
  266. package/lib-esm/datum/data1d/filter1d/fft.js +7 -7
  267. package/lib-esm/datum/data1d/filter1d/fft.js.map +1 -1
  268. package/lib-esm/datum/data1d/filter1d/phaseCorrection.js +3 -3
  269. package/lib-esm/datum/data1d/filter1d/phaseCorrection.js.map +1 -1
  270. package/lib-esm/datum/data1d/filter1d/signalProcessing.js +1 -1
  271. package/lib-esm/datum/data1d/filter1d/signalProcessing.js.map +1 -1
  272. package/lib-esm/datum/data1d/filter1d/utils/padDataToNextPowerOfTwo.js +2 -2
  273. package/lib-esm/datum/data1d/filter1d/utils/padDataToNextPowerOfTwo.js.map +1 -1
  274. package/lib-esm/datum/data1d/filter1d/zeroFilling.js +8 -8
  275. package/lib-esm/datum/data1d/filter1d/zeroFilling.js.map +1 -1
  276. package/lib-esm/datum/data1d/utils/mapPeaks.js +1 -1
  277. package/lib-esm/datum/data1d/utils/mapPeaks.js.map +1 -1
  278. package/lib-esm/datum/data2d/filter2d/fftDimension1.js +43 -0
  279. package/lib-esm/datum/data2d/filter2d/fftDimension1.js.map +1 -0
  280. package/lib-esm/datum/data2d/filter2d/fftDimension2.js +54 -0
  281. package/lib-esm/datum/data2d/filter2d/fftDimension2.js.map +1 -0
  282. package/lib-esm/datum/data2d/utils/getShift.js +1 -1
  283. package/lib-esm/datum/data2d/utils/getShift.js.map +1 -1
  284. package/lib-esm/multiplicity/joinPatterns.js +1 -1
  285. package/lib-esm/multiplicity/joinPatterns.js.map +1 -1
  286. package/lib-esm/multiplicity/splitPatterns.js +1 -1
  287. package/lib-esm/multiplicity/splitPatterns.js.map +1 -1
  288. package/lib-esm/peaks/peaksFilterImpurities.js +7 -6
  289. package/lib-esm/peaks/peaksFilterImpurities.js.map +1 -1
  290. package/lib-esm/peaks/peaksToRanges.js +17 -17
  291. package/lib-esm/peaks/peaksToRanges.js.map +1 -1
  292. package/lib-esm/peaks/solventSuppression.js +11 -11
  293. package/lib-esm/peaks/solventSuppression.js.map +1 -1
  294. package/lib-esm/peaks/util/addMissingIDs.js.map +1 -1
  295. package/lib-esm/peaks/util/determineRealTop.js +32 -32
  296. package/lib-esm/peaks/util/determineRealTop.js.map +1 -1
  297. package/lib-esm/peaks/util/getKernel.js +4 -4
  298. package/lib-esm/peaks/util/getKernel.js.map +1 -1
  299. package/lib-esm/peaks/util/peakOptimizer.js +17 -17
  300. package/lib-esm/peaks/util/peakOptimizer.js.map +1 -1
  301. package/lib-esm/peaks/util/setIDs.js.map +1 -1
  302. package/lib-esm/prediction/predictAll.js +2 -1
  303. package/lib-esm/prediction/predictAll.js.map +1 -1
  304. package/lib-esm/prediction/predictCOSY.js +1 -1
  305. package/lib-esm/prediction/predictCOSY.js.map +1 -1
  306. package/lib-esm/prediction/predictCarbon.js +6 -6
  307. package/lib-esm/prediction/predictCarbon.js.map +1 -1
  308. package/lib-esm/prediction/predictHMBC.js +1 -1
  309. package/lib-esm/prediction/predictHMBC.js.map +1 -1
  310. package/lib-esm/prediction/predictHSQC.js +1 -1
  311. package/lib-esm/prediction/predictHSQC.js.map +1 -1
  312. package/lib-esm/prediction/predictProton.js +9 -9
  313. package/lib-esm/prediction/predictProton.js.map +1 -1
  314. package/lib-esm/prediction/utils/getFilteredIDiaIDs.js +3 -3
  315. package/lib-esm/prediction/utils/getFilteredIDiaIDs.js.map +1 -1
  316. package/lib-esm/prediction/utils/getNuclei.js.map +1 -1
  317. package/lib-esm/prediction/utils/predict2D.js +17 -17
  318. package/lib-esm/prediction/utils/predict2D.js.map +1 -1
  319. package/lib-esm/prediction/utils/queryByHOSE.js +1 -1
  320. package/lib-esm/prediction/utils/queryByHOSE.js.map +1 -1
  321. package/lib-esm/ranges/markSolventSignal.js +8 -8
  322. package/lib-esm/ranges/markSolventSignal.js.map +1 -1
  323. package/lib-esm/ranges/rangesToACS.js +6 -6
  324. package/lib-esm/ranges/rangesToACS.js.map +1 -1
  325. package/lib-esm/ranges/rangesToXY.js +6 -6
  326. package/lib-esm/ranges/rangesToXY.js.map +1 -1
  327. package/lib-esm/signal/signalJoinCouplings.js +19 -12
  328. package/lib-esm/signal/signalJoinCouplings.js.map +1 -1
  329. package/lib-esm/signal/signalMultiplicityPattern.js +2 -2
  330. package/lib-esm/signal/signalMultiplicityPattern.js.map +1 -1
  331. package/lib-esm/signals/addDummySignals.js +4 -4
  332. package/lib-esm/signals/addDummySignals.js.map +1 -1
  333. package/lib-esm/signals/hackSignalsToXY.js +1 -1
  334. package/lib-esm/signals/hackSignalsToXY.js.map +1 -1
  335. package/lib-esm/signals/optimization/getInternalSignals.js +6 -6
  336. package/lib-esm/signals/optimization/getInternalSignals.js.map +1 -1
  337. package/lib-esm/signals/optimization/getSumOfShapes.js +1 -1
  338. package/lib-esm/signals/optimization/getSumOfShapes.js.map +1 -1
  339. package/lib-esm/signals/optimizeSignals.js +3 -3
  340. package/lib-esm/signals/optimizeSignals.js.map +1 -1
  341. package/lib-esm/signals/signals2DToZ.js +3 -2
  342. package/lib-esm/signals/signals2DToZ.js.map +1 -1
  343. package/lib-esm/signals/signalsJoin.js +5 -5
  344. package/lib-esm/signals/signalsJoin.js.map +1 -1
  345. package/lib-esm/signals/signalsToFID.js +1 -1
  346. package/lib-esm/signals/signalsToFID.js.map +1 -1
  347. package/lib-esm/signals/signalsToRanges.js +3 -3
  348. package/lib-esm/signals/signalsToRanges.js.map +1 -1
  349. package/lib-esm/signals/signalsToXY.js +3 -3
  350. package/lib-esm/signals/signalsToXY.js.map +1 -1
  351. package/lib-esm/signals/simulation/signalsToSpinSystem.js +2 -2
  352. package/lib-esm/signals/simulation/signalsToSpinSystem.js.map +1 -1
  353. package/lib-esm/signals/simulation/simulate1D.js +2 -2
  354. package/lib-esm/signals/simulation/simulate1D.js.map +1 -1
  355. package/lib-esm/signals/simulation/simulateXYPeaks.js +15 -17
  356. package/lib-esm/signals/simulation/simulateXYPeaks.js.map +1 -1
  357. package/lib-esm/signals/simulation/splitSpinSystem.js +26 -23
  358. package/lib-esm/signals/simulation/splitSpinSystem.js.map +1 -1
  359. package/lib-esm/signals/utils/jAnalyzer.js +38 -38
  360. package/lib-esm/signals/utils/jAnalyzer.js.map +1 -1
  361. package/lib-esm/utilities/getFrequency.js +1 -1
  362. package/lib-esm/utilities/getFrequency.js.map +1 -1
  363. package/lib-esm/utilities/resurrectRange.js +1 -1
  364. package/lib-esm/utilities/resurrectRange.js.map +1 -1
  365. package/lib-esm/xy/xyAutoPeaksPicking.js +3 -3
  366. package/lib-esm/xy/xyAutoPeaksPicking.js.map +1 -1
  367. package/lib-esm/xyz/quadrature.js +6 -6
  368. package/lib-esm/xyz/quadrature.js.map +1 -1
  369. package/lib-esm/xyz/util/fft2d/digitalFilter.js +3 -3
  370. package/lib-esm/xyz/util/fft2d/digitalFilter.js.map +1 -1
  371. package/lib-esm/xyz/util/fft2d/fftDirectDimension.js +4 -3
  372. package/lib-esm/xyz/util/fft2d/fftDirectDimension.js.map +1 -1
  373. package/lib-esm/xyz/util/fft2d/fftIndirectDimension.js +5 -4
  374. package/lib-esm/xyz/util/fft2d/fftIndirectDimension.js.map +1 -1
  375. package/lib-esm/xyz/util/fft2d/removeDCOffset.js +1 -1
  376. package/lib-esm/xyz/util/fft2d/removeDCOffset.js.map +1 -1
  377. package/lib-esm/xyz/util/fft2d/zeroFilling.js +4 -6
  378. package/lib-esm/xyz/util/fft2d/zeroFilling.js.map +1 -1
  379. package/lib-esm/xyz/util/formatZone.js +3 -3
  380. package/lib-esm/xyz/util/formatZone.js.map +1 -1
  381. package/lib-esm/xyz/util/getMinMaxXY.js +19 -0
  382. package/lib-esm/xyz/util/getMinMaxXY.js.map +1 -0
  383. package/lib-esm/xyz/util/padData.js +7 -7
  384. package/lib-esm/xyz/util/padData.js.map +1 -1
  385. package/lib-esm/xyz/xyzAutoSignalsPicking.js +19 -18
  386. package/lib-esm/xyz/xyzAutoSignalsPicking.js.map +1 -1
  387. package/lib-esm/xyz/xyzBidimensionalFFT.js +1 -18
  388. package/lib-esm/xyz/xyzBidimensionalFFT.js.map +1 -1
  389. package/lib-esm/xyz/xyzJResAnalyzer.js +21 -21
  390. package/lib-esm/xyz/xyzJResAnalyzer.js.map +1 -1
  391. package/package.json +5 -5
  392. package/src/apodization/compose.ts +1 -1
  393. package/src/assignment/get13CAssignments.ts +6 -3
  394. package/src/assignment/get1HAssignments.ts +7 -6
  395. package/src/assignment/getAssignments.ts +7 -7
  396. package/src/assignment/nmrAssigment.ts +2 -2
  397. package/src/assignment/utils/addSolution.ts +45 -0
  398. package/src/assignment/utils/{getAssignment → generalAssignment}/buildAssignments.ts +29 -36
  399. package/src/assignment/utils/{getAssignment → generalAssignment}/checkIDs.ts +6 -6
  400. package/src/assignment/utils/{getAssignment → generalAssignment}/createMapPossibleAssignment.ts +10 -14
  401. package/src/assignment/utils/{getAssignment → generalAssignment}/exploreTree.ts +7 -8
  402. package/src/assignment/utils/{getAssignment → generalAssignment}/formatData.ts +5 -5
  403. package/src/assignment/utils/{getAssignment → generalAssignment}/getTargetsAndCorrelations.ts +3 -5
  404. package/src/assignment/utils/{getAssignment → generalAssignment}/getWorkFlow.ts +2 -5
  405. package/src/assignment/utils/{getAssignment → generalAssignment}/groupCarbonTargetByIntegrationZone.ts +8 -8
  406. package/src/assignment/utils/{getAssignment → generalAssignment}/partialScore.ts +25 -29
  407. package/src/assignment/utils/{buildAssignments.ts → oneDimensionalAssignment/buildAssignments.ts} +6 -8
  408. package/src/assignment/utils/{createMapPossibleAssignments.ts → oneDimensionalAssignment/createMapPossibleAssignments.ts} +9 -9
  409. package/src/assignment/utils/{exploreTreeRec.ts → oneDimensionalAssignment/exploreTreeRec.ts} +8 -9
  410. package/src/assignment/utils/{partialScore.ts → oneDimensionalAssignment/partialScore.ts} +10 -12
  411. package/src/constants/SignalsKinds.ts +1 -1
  412. package/src/constants/couplingValues.ts +1 -1
  413. package/src/constants/impurities.ts +14 -15
  414. package/src/databases/getDatabase.ts +1 -1
  415. package/src/datum/Filters.ts +4 -0
  416. package/src/datum/FiltersManager.ts +3 -3
  417. package/src/datum/MatrixOptions.ts +1 -1
  418. package/src/datum/data1d/Entry1D.ts +1 -1
  419. package/src/datum/data1d/filter1d/baselineCorrection.ts +4 -4
  420. package/src/datum/data1d/filter1d/digitalFilter.ts +2 -2
  421. package/src/datum/data1d/filter1d/fft.ts +7 -7
  422. package/src/datum/data1d/filter1d/phaseCorrection.ts +3 -3
  423. package/src/datum/data1d/filter1d/signalProcessing.ts +1 -1
  424. package/src/datum/data1d/filter1d/utils/padDataToNextPowerOfTwo.ts +2 -2
  425. package/src/datum/data1d/filter1d/zeroFilling.ts +10 -9
  426. package/src/datum/data1d/utils/mapPeaks.ts +1 -1
  427. package/src/datum/data2d/Entry2D.ts +1 -1
  428. package/src/datum/data2d/filter2d/fftDimension1.ts +61 -0
  429. package/src/datum/data2d/filter2d/fftDimension2.ts +72 -0
  430. package/src/datum/data2d/utils/getShift.ts +1 -1
  431. package/src/ml-tree-set.d.ts +1 -1
  432. package/src/multiplicity/joinPatterns.ts +3 -1
  433. package/src/multiplicity/splitPatterns.ts +1 -1
  434. package/src/peaks/peaksFilterImpurities.ts +7 -6
  435. package/src/peaks/peaksToRanges.ts +19 -18
  436. package/src/peaks/solventSuppression.ts +11 -11
  437. package/src/peaks/util/addMissingIDs.ts +1 -1
  438. package/src/peaks/util/determineRealTop.ts +32 -32
  439. package/src/peaks/util/getKernel.ts +4 -4
  440. package/src/peaks/util/peakOptimizer.ts +17 -17
  441. package/src/peaks/util/setIDs.ts +6 -4
  442. package/src/prediction/dataStructure.ts +1 -3
  443. package/src/prediction/predictAll.ts +3 -2
  444. package/src/prediction/predictCOSY.ts +1 -1
  445. package/src/prediction/predictCarbon.ts +6 -6
  446. package/src/prediction/predictHMBC.ts +1 -1
  447. package/src/prediction/predictHSQC.ts +1 -1
  448. package/src/prediction/predictProton.ts +9 -9
  449. package/src/prediction/utils/getFilteredIDiaIDs.ts +3 -3
  450. package/src/prediction/utils/getNuclei.ts +2 -2
  451. package/src/prediction/utils/predict2D.ts +21 -25
  452. package/src/prediction/utils/queryByHOSE.ts +1 -1
  453. package/src/ranges/markSolventSignal.ts +8 -8
  454. package/src/ranges/rangesToACS.ts +6 -6
  455. package/src/ranges/rangesToXY.ts +6 -6
  456. package/src/signal/signalJoinCouplings.ts +22 -16
  457. package/src/signal/signalMultiplicityPattern.ts +2 -2
  458. package/src/signals/addDummySignals.ts +4 -4
  459. package/src/signals/hackSignalsToXY.ts +1 -1
  460. package/src/signals/optimization/getInternalSignals.ts +6 -6
  461. package/src/signals/optimization/getSumOfShapes.ts +1 -1
  462. package/src/signals/optimizeSignals.ts +3 -3
  463. package/src/signals/signals2DToZ.ts +4 -8
  464. package/src/signals/signalsJoin.ts +5 -5
  465. package/src/signals/signalsToFID.ts +1 -1
  466. package/src/signals/signalsToRanges.ts +3 -3
  467. package/src/signals/signalsToXY.ts +3 -3
  468. package/src/signals/simulation/signalsToSpinSystem.ts +3 -5
  469. package/src/signals/simulation/simulate1D.ts +2 -2
  470. package/src/signals/simulation/simulateXYPeaks.ts +16 -17
  471. package/src/signals/simulation/splitSpinSystem.ts +28 -25
  472. package/src/signals/utils/jAnalyzer.ts +38 -38
  473. package/src/types/Integrals.ts +1 -1
  474. package/src/types/Peaks/Peaks.ts +1 -1
  475. package/src/types/Ranges/Ranges.ts +1 -1
  476. package/src/types/Zones/Zone.ts +1 -1
  477. package/src/types/Zones/Zones.ts +1 -1
  478. package/src/utilities/getFrequency.ts +1 -1
  479. package/src/utilities/resurrectRange.ts +1 -1
  480. package/src/xy/xyAutoPeaksPicking.ts +3 -3
  481. package/src/xyz/quadrature.ts +6 -6
  482. package/src/xyz/util/fft2d/digitalFilter.ts +3 -3
  483. package/src/xyz/util/fft2d/fftDirectDimension.ts +4 -7
  484. package/src/xyz/util/fft2d/fftIndirectDimension.ts +6 -8
  485. package/src/xyz/util/fft2d/removeDCOffset.ts +1 -1
  486. package/src/xyz/util/fft2d/zeroFilling.ts +5 -6
  487. package/src/xyz/util/formatZone.ts +3 -3
  488. package/src/xyz/util/getMinMaxXY.ts +19 -0
  489. package/src/xyz/util/padData.ts +7 -7
  490. package/src/xyz/xyzAutoSignalsPicking.ts +20 -19
  491. package/src/xyz/xyzBidimensionalFFT.ts +1 -20
  492. package/src/xyz/xyzJResAnalyzer.ts +21 -21
  493. package/lib/assignment/utils/buildAssignments.js.map +0 -1
  494. package/lib/assignment/utils/createMapPossibleAssignments.js.map +0 -1
  495. package/lib/assignment/utils/exploreTreeRec.js.map +0 -1
  496. package/lib/assignment/utils/getAssignment/buildAssignments.js.map +0 -1
  497. package/lib/assignment/utils/getAssignment/checkIDs.js.map +0 -1
  498. package/lib/assignment/utils/getAssignment/createMapPossibleAssignment.js.map +0 -1
  499. package/lib/assignment/utils/getAssignment/exploreTree.js.map +0 -1
  500. package/lib/assignment/utils/getAssignment/formatData.js.map +0 -1
  501. package/lib/assignment/utils/getAssignment/getIntegrationOfAttachedProtons.js.map +0 -1
  502. package/lib/assignment/utils/getAssignment/getTargetsAndCorrelations.js.map +0 -1
  503. package/lib/assignment/utils/getAssignment/getWorkFlow.js.map +0 -1
  504. package/lib/assignment/utils/getAssignment/groupCarbonTargetByIntegrationZone.js.map +0 -1
  505. package/lib/assignment/utils/getAssignment/isSpectraData1D.js.map +0 -1
  506. package/lib/assignment/utils/getAssignment/partialScore.js.map +0 -1
  507. package/lib/assignment/utils/getAssignment/searchIndices.js.map +0 -1
  508. package/lib/assignment/utils/partialScore.js.map +0 -1
  509. package/lib-esm/assignment/utils/buildAssignments.js.map +0 -1
  510. package/lib-esm/assignment/utils/createMapPossibleAssignments.js.map +0 -1
  511. package/lib-esm/assignment/utils/exploreTreeRec.js.map +0 -1
  512. package/lib-esm/assignment/utils/getAssignment/buildAssignments.js.map +0 -1
  513. package/lib-esm/assignment/utils/getAssignment/checkIDs.js.map +0 -1
  514. package/lib-esm/assignment/utils/getAssignment/createMapPossibleAssignment.js.map +0 -1
  515. package/lib-esm/assignment/utils/getAssignment/exploreTree.js.map +0 -1
  516. package/lib-esm/assignment/utils/getAssignment/formatData.js.map +0 -1
  517. package/lib-esm/assignment/utils/getAssignment/getIntegrationOfAttachedProtons.js.map +0 -1
  518. package/lib-esm/assignment/utils/getAssignment/getTargetsAndCorrelations.js.map +0 -1
  519. package/lib-esm/assignment/utils/getAssignment/getWorkFlow.js.map +0 -1
  520. package/lib-esm/assignment/utils/getAssignment/groupCarbonTargetByIntegrationZone.js.map +0 -1
  521. package/lib-esm/assignment/utils/getAssignment/isSpectraData1D.js.map +0 -1
  522. package/lib-esm/assignment/utils/getAssignment/partialScore.js.map +0 -1
  523. package/lib-esm/assignment/utils/getAssignment/searchIndices.js.map +0 -1
  524. package/lib-esm/assignment/utils/partialScore.js.map +0 -1
  525. /package/lib/assignment/utils/{getAssignment → generalAssignment}/checkIDs.d.ts +0 -0
  526. /package/lib/assignment/utils/{getAssignment → generalAssignment}/formatData.d.ts +0 -0
  527. /package/lib/assignment/utils/{getAssignment → generalAssignment}/getIntegrationOfAttachedProtons.d.ts +0 -0
  528. /package/lib/assignment/utils/{getAssignment → generalAssignment}/getIntegrationOfAttachedProtons.js +0 -0
  529. /package/lib/assignment/utils/{getAssignment → generalAssignment}/getWorkFlow.js +0 -0
  530. /package/lib/assignment/utils/{getAssignment → generalAssignment}/groupCarbonTargetByIntegrationZone.d.ts +0 -0
  531. /package/lib/assignment/utils/{getAssignment → generalAssignment}/isSpectraData1D.d.ts +0 -0
  532. /package/lib/assignment/utils/{getAssignment → generalAssignment}/isSpectraData1D.js +0 -0
  533. /package/lib/assignment/utils/{getAssignment → generalAssignment}/searchIndices.d.ts +0 -0
  534. /package/lib/assignment/utils/{getAssignment → generalAssignment}/searchIndices.js +0 -0
  535. /package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/getIntegrationOfAttachedProtons.js +0 -0
  536. /package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/getWorkFlow.js +0 -0
  537. /package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/isSpectraData1D.js +0 -0
  538. /package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/searchIndices.js +0 -0
  539. /package/src/assignment/utils/{getAssignment → generalAssignment}/getIntegrationOfAttachedProtons.ts +0 -0
  540. /package/src/assignment/utils/{getAssignment → generalAssignment}/isSpectraData1D.ts +0 -0
  541. /package/src/assignment/utils/{getAssignment → generalAssignment}/searchIndices.ts +0 -0
@@ -3,7 +3,7 @@ declare module 'ml-tree-set' {
3
3
  type Elements = any;
4
4
  export default class TreeSet {
5
5
  public length: number;
6
- public elements: Array<w>;
6
+ public elements: w[];
7
7
 
8
8
  public constructor(comparator: Comparator);
9
9
 
@@ -32,7 +32,9 @@ export function joinPatterns(
32
32
  }, 0);
33
33
 
34
34
  if (!couplingPatterns[sum]) {
35
- throw new Error("The joined pattern doesn't exist");
35
+ throw new Error(
36
+ `The joined pattern from ${patterns.join(',')} doesn't exist`,
37
+ );
36
38
  }
37
39
 
38
40
  return options?.acsFormat ? couplingACSPatterns[sum] : couplingPatterns[sum];
@@ -15,7 +15,7 @@ possiblePatterns = possiblePatterns.sort((a, b) => b.length - a.length);
15
15
  export function splitPatterns(multiplet: string) {
16
16
  if (/^\s*$/.exec(multiplet)) return [];
17
17
  const regexp = new RegExp(possiblePatterns.join('|'), 'g');
18
- let result = multiplet.match(regexp);
18
+ const result = multiplet.match(regexp);
19
19
  if (result) return result.map((entry) => entry.trim());
20
20
  return [multiplet];
21
21
  }
@@ -38,14 +38,15 @@ export function peaksFilterImpurities<T extends NMRPeak1D>(
38
38
  peakList: T[],
39
39
  options: OptionsPeaksFilterImpurities = {},
40
40
  ) {
41
- let { solvent, error = 0.025, remove = false } = options;
41
+ const { error = 0.025, remove = false } = options;
42
42
 
43
- if (solvent) {
43
+ if (options.solvent) {
44
+ let { solvent } = options;
44
45
  if (solvent === '(cd3)2so') solvent = 'dmso';
45
46
  if (solvent === 'meod') solvent = 'cd3od';
46
- let solventImpurities = impurities[solvent];
47
- for (let impurity of toCheck) {
48
- let impurityShifts = solventImpurities[impurity];
47
+ const solventImpurities = impurities[solvent];
48
+ for (const impurity of toCheck) {
49
+ const impurityShifts = solventImpurities[impurity];
49
50
  checkImpurity(peakList, impurityShifts, {
50
51
  error,
51
52
  remove,
@@ -61,7 +62,7 @@ function checkImpurity<T extends NMRPeak1D>(
61
62
  impurity: ImpuritySignal[],
62
63
  options: OptionsCheckImpurity,
63
64
  ) {
64
- let { name, error, remove } = options;
65
+ const { name, error, remove } = options;
65
66
  let j, tolerance, difference;
66
67
  let i = impurity.length;
67
68
  while (i--) {
@@ -122,7 +122,7 @@ export function peaksToRanges(
122
122
  peakList: NMRPeak1DIntern[],
123
123
  options: OptionsPeaksToRanges = {},
124
124
  ): NMRRange[] {
125
- let {
125
+ const {
126
126
  integrationSum = 100,
127
127
  joinOverlapRanges = true,
128
128
  clean = 0.4,
@@ -134,7 +134,7 @@ export function peaksToRanges(
134
134
  nucleus = '1H',
135
135
  } = options;
136
136
 
137
- let signalOptions = {
137
+ const signalOptions = {
138
138
  integrationSum,
139
139
  integralType,
140
140
  frequencyCluster,
@@ -149,7 +149,7 @@ export function peaksToRanges(
149
149
  data.y = data.y.reverse();
150
150
  }
151
151
 
152
- let signals = detectSignals(data, peakList, signalOptions);
152
+ const signals = detectSignals(data, peakList, signalOptions);
153
153
  if (clean) {
154
154
  for (let i = 0; i < signals.length; i++) {
155
155
  if (Math.abs(signals[i].integralData.value) < clean) {
@@ -162,7 +162,7 @@ export function peaksToRanges(
162
162
  let nHi, sum;
163
163
  for (let i = 0; i < signals.length; i++) {
164
164
  signals[i] = jAnalyzer.compilePattern(signals[i]);
165
- let signal = signals[i];
165
+ const signal = signals[i];
166
166
  if (
167
167
  signal.maskPattern &&
168
168
  signal.multiplicity !== 'm' &&
@@ -172,11 +172,11 @@ export function peaksToRanges(
172
172
  // Create a new signal with the removed peaks
173
173
  nHi = 0;
174
174
  sum = 0;
175
- let peaksO = [];
175
+ const peaksO = [];
176
176
  for (let j = signal.maskPattern.length - 1; j >= 0; j--) {
177
177
  sum += computeArea(signal.peaks[j], frequency);
178
178
  if (!signal.maskPattern[j]) {
179
- let peakR = signal.peaks.splice(j, 1)[0];
179
+ const peakR = signal.peaks.splice(j, 1)[0];
180
180
  peaksO.push({
181
181
  x: peakR.x,
182
182
  y: peakR.intensity,
@@ -192,12 +192,12 @@ export function peaksToRanges(
192
192
  if (peaksO.length > 0) {
193
193
  nHi = (nHi * signal.integralData.value) / sum;
194
194
  signal.integralData.value -= nHi;
195
- let peaks1 = [];
195
+ const peaks1 = [];
196
196
  for (let j = peaksO.length - 1; j >= 0; j--) {
197
197
  peaks1.push(peaksO[j]);
198
198
  }
199
199
  signalOptions.integrationSum = Math.abs(nHi);
200
- let ranges = detectSignals(data, peaks1, signalOptions);
200
+ const ranges = detectSignals(data, peaks1, signalOptions);
201
201
 
202
202
  for (const range of ranges) {
203
203
  signals.push(range);
@@ -223,7 +223,7 @@ export function peaksToRanges(
223
223
 
224
224
  let ranges: NMRRange[] = [];
225
225
  for (let i = 0; i < signals.length; i++) {
226
- let signal = signals[i];
226
+ const signal = signals[i];
227
227
  const range: NMRRange = {
228
228
  id: generateID(),
229
229
  from: signal.integralData.from,
@@ -277,27 +277,28 @@ export function detectSignals(
277
277
  peakList: NMRPeak1DIntern[],
278
278
  options: OptionsDetectSignals = {},
279
279
  ): SignalIntern[] {
280
- let {
280
+ const {
281
+ frequencyCluster = 16,
281
282
  integrationSum = 100,
282
283
  integralType = 'sum',
283
- frequencyCluster = 16,
284
284
  frequency = 400,
285
285
  nucleus = '1H',
286
286
  } = options;
287
287
 
288
288
  let signal1D: SignalIntern = assignSignal(peakList[0], frequency, nucleus);
289
289
  let peaks;
290
- let signals = [];
290
+ const signals = [];
291
291
  let prevPeak = { x: Number.MIN_SAFE_INTEGER };
292
292
 
293
- frequencyCluster /= frequency;
293
+ const distantToClustering = frequencyCluster / frequency;
294
+
294
295
  for (const peak of peakList) {
295
- if (Math.abs(peak.x - prevPeak.x) > frequencyCluster) {
296
+ if (Math.abs(peak.x - prevPeak.x) > distantToClustering) {
296
297
  signal1D = assignSignal(peak, frequency, nucleus);
297
298
  if (peak.kind) signal1D.kind = peak.kind;
298
299
  signals.push(signal1D);
299
300
  } else {
300
- let tmp = peak.x + peak.width / frequency;
301
+ const tmp = peak.x + peak.width / frequency;
301
302
  signal1D.stopX = Math.max(signal1D.stopX, tmp);
302
303
  signal1D.startX = Math.min(signal1D.startX, tmp);
303
304
  signal1D.nbPeaks++;
@@ -318,14 +319,14 @@ export function detectSignals(
318
319
  }
319
320
  prevPeak = peak;
320
321
  }
321
- for (let signal of signals) {
322
+ for (const signal of signals) {
322
323
  peaks = signal.peaks;
323
- let integration = signal.integralData;
324
+ const integration = signal.integralData;
324
325
  let chemicalShift = 0;
325
326
  let integralPeaks = 0;
326
327
 
327
328
  for (const peak of peaks) {
328
- let area = computeArea(peak, frequency);
329
+ const area = computeArea(peak, frequency);
329
330
  chemicalShift += peak.x * area;
330
331
  integralPeaks += area;
331
332
  }
@@ -25,16 +25,16 @@ export function solventSuppression<T extends NMRPeak1D>(
25
25
  const { markSolventPeaks = false, solventZoneExtension = 1.2 } = options;
26
26
 
27
27
  for (const solventSignal of solvent) {
28
- let solventXYPeaks = solventSignal.peaks
28
+ const solventXYPeaks = solventSignal.peaks
29
29
  ? solventSignal.peaks
30
30
  : getSolventPeaks(solventSignal);
31
31
  solventXYPeaks.sort((a, b) => a.x - b.x);
32
32
 
33
- let upIndex = xFindClosestIndex(
33
+ const upIndex = xFindClosestIndex(
34
34
  xValues,
35
35
  solventXYPeaks[solventXYPeaks.length - 1].x + solventZoneExtension,
36
36
  );
37
- let lowIndex = xFindClosestIndex(
37
+ const lowIndex = xFindClosestIndex(
38
38
  xValues,
39
39
  solventXYPeaks[0].x - solventZoneExtension,
40
40
  );
@@ -45,7 +45,7 @@ export function solventSuppression<T extends NMRPeak1D>(
45
45
  const amplitudeResiduals = [];
46
46
  const deltaResiduals = [];
47
47
  const positionResiduals = [];
48
- for (let peak of nearPeaks) {
48
+ for (const peak of nearPeaks) {
49
49
  const { peaks: shiftedSolventPeaks, delta: currentDelta } =
50
50
  getShiftedSolventPeaks(peak, solventSignal, solventXYPeaks);
51
51
 
@@ -88,7 +88,7 @@ export function solventSuppression<T extends NMRPeak1D>(
88
88
 
89
89
  let minIndex = -1;
90
90
  let minScore = Number.MAX_SAFE_INTEGER;
91
- let score = [];
91
+ const score = [];
92
92
  for (let i = 0; i < deltaResiduals.length; i++) {
93
93
  const value =
94
94
  (amplitudeResiduals[i] / maxAmplitude +
@@ -125,12 +125,12 @@ export function solventSuppression<T extends NMRPeak1D>(
125
125
  }
126
126
 
127
127
  if (markSolventPeaks) {
128
- for (let index of rowAssignments) {
128
+ for (const index of rowAssignments) {
129
129
  peaks[index + lowIndex].kind = 'solvent';
130
130
  }
131
131
  } else {
132
132
  rowAssignments.sort((a, b) => b - a);
133
- for (let index of rowAssignments) {
133
+ for (const index of rowAssignments) {
134
134
  peaks.splice(index + lowIndex, 1);
135
135
  }
136
136
  }
@@ -143,8 +143,8 @@ function getSolventPeaks(
143
143
  signal: NMRSignal1D,
144
144
  options: { frequency?: number; maxClusterSize?: number } = {},
145
145
  ) {
146
- let signals = addDummySignals([signal]);
147
- let spinSystem = signalsToSpinSystem(signals);
146
+ const signals = addDummySignals([signal]);
147
+ const spinSystem = signalsToSpinSystem(signals);
148
148
 
149
149
  const { frequency = 400, maxClusterSize = 8 } = options;
150
150
 
@@ -175,7 +175,7 @@ function getShiftedSolventPeaks<T extends PointXY>(
175
175
  shiftedSolventPeaks[0].y,
176
176
  );
177
177
  let currentDelta = 0;
178
- for (let shiftedSolventPeak of shiftedSolventPeaks) {
178
+ for (const shiftedSolventPeak of shiftedSolventPeaks) {
179
179
  shiftedSolventPeak.x += deltaPPM;
180
180
  shiftedSolventPeak.y /= maxIntensity;
181
181
  currentDelta += shiftedSolventPeak.x;
@@ -194,7 +194,7 @@ function getClosestPeaks(shiftedSolventPeaks: PointXY[], nearPeaks: PointXY[]) {
194
194
 
195
195
  const assignmentPeaks = [];
196
196
  let maxValue = Number.MIN_SAFE_INTEGER;
197
- for (let index of rowAssignments) {
197
+ for (const index of rowAssignments) {
198
198
  if (maxValue < nearPeaks[index].y) maxValue = nearPeaks[index].y;
199
199
  assignmentPeaks.push({ ...nearPeaks[index] });
200
200
  }
@@ -13,5 +13,5 @@ export function addMissingIDs<T extends { id?: string }>(
13
13
  }
14
14
  }
15
15
 
16
- return output as (T & { id: string })[];
16
+ return output as Array<T & { id: string }>;
17
17
  }
@@ -10,13 +10,13 @@ const direction16Y = [-2, -1, 0, 1, 2, -2, 2, -2, 2, -2, 2, -2, -1, 0, 1, 2];
10
10
  type Data = number[] | Float64Array;
11
11
 
12
12
  export function determineRealTop<T extends Peak2D>(peaks: T[], options: any) {
13
- let { nCols, absoluteData, originalData, minX, maxX, minY, maxY } = options;
13
+ const { nCols, absoluteData, originalData, minX, maxX, minY, maxY } = options;
14
14
  for (let i = 0; i < peaks.length; i++) {
15
- let xIndex = Math.round(peaks[i].x);
16
- let yIndex = Math.round(peaks[i].y);
15
+ const xIndex = Math.round(peaks[i].x);
16
+ const yIndex = Math.round(peaks[i].y);
17
17
 
18
18
  let currentIndex = xIndex + yIndex * nCols;
19
- let { index, isMax } = determineMax(absoluteData, {
19
+ const { index, isMax } = determineMax(absoluteData, {
20
20
  xIndex,
21
21
  yIndex,
22
22
  nCols,
@@ -31,7 +31,7 @@ export function determineRealTop<T extends Peak2D>(peaks: T[], options: any) {
31
31
  shell: 2,
32
32
  }).index;
33
33
 
34
- let realTopCoordinates = fitGaussian(originalData, {
34
+ const realTopCoordinates = fitGaussian(originalData, {
35
35
  nCols,
36
36
  index: currentIndex,
37
37
  minY,
@@ -49,21 +49,21 @@ function determineMax(
49
49
  data: Data,
50
50
  options: { xIndex: number; yIndex: number; shell: number; nCols: number },
51
51
  ) {
52
- let { xIndex, yIndex, shell, nCols } = options;
52
+ const { xIndex, yIndex, shell, nCols } = options;
53
53
  let currentIndex = xIndex + yIndex * nCols;
54
- let [directionX, directionY] =
54
+ const [directionX, directionY] =
55
55
  shell > 1 ? [direction16X, direction16Y] : [direction8X, direction8Y];
56
56
 
57
57
  let isMax = false;
58
58
  for (let i = 0; i < directionX.length; i++) {
59
- let c = xIndex + directionX[i];
60
- let r = yIndex + directionY[i];
59
+ const c = xIndex + directionX[i];
60
+ const r = yIndex + directionY[i];
61
61
  if (data[c + r * nCols] >= data[currentIndex]) {
62
62
  isMax = true;
63
- let candidateIndex = c + r * nCols;
63
+ const candidateIndex = c + r * nCols;
64
64
  for (let k = 0; k < direction8Y.length; k++) {
65
- let nc = c + direction8X[k];
66
- let nr = r + direction8Y[k];
65
+ const nc = c + direction8X[k];
66
+ const nr = r + direction8Y[k];
67
67
  if (data[nc + nr * nCols] > data[candidateIndex]) {
68
68
  isMax = false;
69
69
  break;
@@ -89,25 +89,25 @@ function fitGaussian(
89
89
  maxX: number;
90
90
  },
91
91
  ) {
92
- let { nCols, index, minY, maxY, minX, maxX } = options;
92
+ const { nCols, index, minY, maxY, minX, maxX } = options;
93
93
 
94
- let nRows = data.length / nCols;
94
+ const nRows = data.length / nCols;
95
95
 
96
- let intervalX = (maxX - minX) / (nCols - 1);
97
- let intervalY = (maxY - minY) / (nRows - 1);
96
+ const intervalX = (maxX - minX) / (nCols - 1);
97
+ const intervalY = (maxY - minY) / (nRows - 1);
98
98
 
99
- let col = index % nCols;
100
- let row = (index - col) / nCols;
99
+ const col = index % nCols;
100
+ const row = (index - col) / nCols;
101
101
 
102
- let newCol = 1;
103
- let newRow = 1;
102
+ const newCol = 1;
103
+ const newRow = 1;
104
104
 
105
105
  let max = Number.MIN_SAFE_INTEGER;
106
- let z = new Array(direction8X.length + 1);
107
- let xAxis = new Array(direction8X.length + 1);
106
+ const z = new Array(direction8X.length + 1);
107
+ const xAxis = new Array(direction8X.length + 1);
108
108
  for (let i = -1, xi = 0; i < 2; i++) {
109
109
  for (let j = -1; j < 2; j++, xAxis[xi] = xi++) {
110
- let value = data[col + j + (row + i) * nCols];
110
+ const value = data[col + j + (row + i) * nCols];
111
111
  if (max < value) max = value;
112
112
  z[newCol + j + (newRow + i) * 3] = value;
113
113
  }
@@ -115,13 +115,13 @@ function fitGaussian(
115
115
 
116
116
  for (let i = 0; i < z.length; i++) z[i] /= max;
117
117
 
118
- let maxValues = [newCol + 1, newRow + 1, 1.5, 1, 1];
119
- let minValues = [newCol - 1, newRow - 1, -1.5, 0.001, 0.001];
120
- let initialValues = [newCol, newRow, z[newCol + newRow * 3], 0.2, 0.2];
121
- let gradientDifference = [1e-4, 1e-4, 1e-3, 1e-3, 1e-3];
122
- let func = paramGaussian2D(intervalX, intervalY, 3);
118
+ const maxValues = [newCol + 1, newRow + 1, 1.5, 1, 1];
119
+ const minValues = [newCol - 1, newRow - 1, -1.5, 0.001, 0.001];
120
+ const initialValues = [newCol, newRow, z[newCol + newRow * 3], 0.2, 0.2];
121
+ const gradientDifference = [1e-4, 1e-4, 1e-3, 1e-3, 1e-3];
122
+ const func = paramGaussian2D(intervalX, intervalY, 3);
123
123
 
124
- let pFit = levenbergMarquardt({ x: xAxis, y: z }, func, {
124
+ const pFit = levenbergMarquardt({ x: xAxis, y: z }, func, {
125
125
  damping: 1.5,
126
126
  maxIterations: 100,
127
127
  errorTolerance: 1e-8,
@@ -142,10 +142,10 @@ function paramGaussian2D(intervalX: number, intervalY: number, nCols: number) {
142
142
  const gaussian2D = new Gaussian2D();
143
143
  return (p: number[]) => {
144
144
  return (t: number) => {
145
- let nL = p.length / 5;
145
+ const nL = p.length / 5;
146
146
  let result = 0;
147
- let xIndex = t % nCols;
148
- let yIndex = (t - xIndex) / nCols;
147
+ const xIndex = t % nCols;
148
+ const yIndex = (t - xIndex) / nCols;
149
149
  for (let i = 0; i < nL; i++) {
150
150
  gaussian2D.fwhm = { x: p[i + 3 * nL], y: p[i + 4 * nL] };
151
151
  result +=
@@ -4,13 +4,13 @@ export interface GetKernelOptions {
4
4
  yLength?: number;
5
5
  }
6
6
  export function getKernel(options: GetKernelOptions = {}) {
7
- let { sigma = 1.4, xLength = 9, yLength = 9 } = options;
7
+ const { sigma = 1.4, xLength = 9, yLength = 9 } = options;
8
8
 
9
- let factor = -40 / laplacianOfGaussian(0, 0, sigma);
9
+ const factor = -40 / laplacianOfGaussian(0, 0, sigma);
10
10
 
11
11
  const xCenter = (xLength - 1) / 2;
12
12
  const yCenter = (yLength - 1) / 2;
13
- let matrix = new Array(xLength);
13
+ const matrix = new Array(xLength);
14
14
  for (let x = 0; x < xLength; x++) {
15
15
  matrix[x] = new Array(yLength);
16
16
  for (let y = 0; y < yLength; y++) {
@@ -23,6 +23,6 @@ export function getKernel(options: GetKernelOptions = {}) {
23
23
  }
24
24
 
25
25
  const laplacianOfGaussian = (x: number, y: number, sigma: number) => {
26
- let factor = -(Math.pow(x, 2) + Math.pow(y, 2)) / 2 / Math.pow(sigma, 2);
26
+ const factor = -(Math.pow(x, 2) + Math.pow(y, 2)) / 2 / Math.pow(sigma, 2);
27
27
  return -(1 / Math.PI / Math.pow(sigma, 4)) * (1 + factor) * Math.exp(factor);
28
28
  };
@@ -2,8 +2,8 @@ import type { Peak2D } from 'ml-matrix-peaks-finder';
2
2
 
3
3
  import type { NMRSignal2D } from '../../xyz/NMRSignal2D';
4
4
 
5
- let diagonalError = 0.05;
6
- let tolerance = 0.05;
5
+ const diagonalError = 0.05;
6
+ const tolerance = 0.05;
7
7
 
8
8
  export function clean(peaks: Peak2D[], threshold: number) {
9
9
  let max = Number.NEGATIVE_INFINITY;
@@ -23,18 +23,18 @@ export function clean(peaks: Peak2D[], threshold: number) {
23
23
  }
24
24
 
25
25
  export function enhanceSymmetry(signals: NMRSignal2D[]) {
26
- let properties = initializeProperties(signals);
27
- let output = signals.slice();
26
+ const properties = initializeProperties(signals);
27
+ const output = signals.slice();
28
28
 
29
29
  // First step of the optimization: Symmetry validation
30
30
  let hits;
31
31
  for (let i = output.length - 1; i >= 0; i--) {
32
- let signal = output[i];
32
+ const signal = output[i];
33
33
  if (signal.peaks && signal.peaks.length > 1) {
34
34
  properties[i][1]++;
35
35
  }
36
36
  if (properties[i][0] === 1) {
37
- let index = exist(output, properties, signal, -1, true);
37
+ const index = exist(output, properties, signal, -1, true);
38
38
  if (index >= 0) {
39
39
  properties[i][1] += 2;
40
40
  properties[index][1] += 2;
@@ -43,7 +43,7 @@ export function enhanceSymmetry(signals: NMRSignal2D[]) {
43
43
  }
44
44
  // Second step of the optimization: Diagonal image existence
45
45
  for (let i = output.length - 1; i >= 0; i--) {
46
- let signal = output[i];
46
+ const signal = output[i];
47
47
  if (properties[i][0] === 0) {
48
48
  hits = checkCrossPeaks(output, properties, signal, true);
49
49
  properties[i][1] += hits;
@@ -69,7 +69,7 @@ export function enhanceSymmetry(signals: NMRSignal2D[]) {
69
69
  }
70
70
  }
71
71
 
72
- let toReturn = new Array(count);
72
+ const toReturn = new Array(count);
73
73
  count--;
74
74
  for (let i = output.length - 1; i >= 0; i--) {
75
75
  if (
@@ -99,7 +99,7 @@ function completeMissingIfNeeded(
99
99
  thisProp: number[],
100
100
  ) {
101
101
  // Check for symmetry
102
- let index = exist(output, properties, thisSignal, -thisProp[0], true);
102
+ const index = exist(output, properties, thisSignal, -thisProp[0], true);
103
103
  let addedPeaks = 0;
104
104
  let newSignal: any;
105
105
  let tmpProp = null;
@@ -189,8 +189,8 @@ function checkCrossPeaks(
189
189
  ) {
190
190
  let hits = 0;
191
191
  let shift = signal.x.delta * 4;
192
- let crossPeaksX = [];
193
- let crossPeaksY = [];
192
+ const crossPeaksX = [];
193
+ const crossPeaksY = [];
194
194
  let cross;
195
195
  for (let i = output.length - 1; i >= 0; i--) {
196
196
  cross = output[i];
@@ -240,15 +240,15 @@ function exist(
240
240
  if (properties[i][0] === type) {
241
241
  if (distanceTo(signal, output[i], symmetricSearch) < tolerance) {
242
242
  if (!symmetricSearch) {
243
- let shiftX = (output[i].x.delta + signal.x.delta) / 2.0;
244
- let shiftY = (output[i].y.delta + signal.y.delta) / 2.0;
243
+ const shiftX = (output[i].x.delta + signal.x.delta) / 2.0;
244
+ const shiftY = (output[i].y.delta + signal.y.delta) / 2.0;
245
245
  output[i].x.delta = shiftX;
246
246
  output[i].y.delta = shiftY;
247
247
  signal.x.delta = shiftX;
248
248
  signal.y.delta = shiftY;
249
249
  } else {
250
- let shiftX = signal.x.delta;
251
- let shiftY = output[i].x.delta;
250
+ const shiftX = signal.x.delta;
251
+ const shiftY = output[i].x.delta;
252
252
  output[i].y.delta = shiftX;
253
253
  signal.y.delta = shiftY;
254
254
  }
@@ -267,13 +267,13 @@ function exist(
267
267
  * @private
268
268
  */
269
269
  function initializeProperties(signals: NMRSignal2D[]) {
270
- let signalsProperties = new Array(signals.length);
270
+ const signalsProperties = new Array(signals.length);
271
271
  for (let i = signals.length - 1; i >= 0; i--) {
272
272
  signalsProperties[i] = [0, 0];
273
273
  // We check if it is a diagonal peak
274
274
  if (Math.abs(signals[i].x.delta - signals[i].y.delta) <= diagonalError) {
275
275
  signalsProperties[i][1] = 1;
276
- let shift = (signals[i].x.delta * 2 + signals[i].y.delta) / 3.0;
276
+ const shift = (signals[i].x.delta * 2 + signals[i].y.delta) / 3.0;
277
277
  signals[i].x.delta = shift;
278
278
  signals[i].y.delta = shift;
279
279
  } else if (signals[i].x.delta - signals[i].y.delta > 0) {
@@ -3,12 +3,14 @@ import { v4 as generateID } from '@lukeed/uuid';
3
3
  const { parse, stringify } = JSON;
4
4
 
5
5
  export function setIDs<T>(peaks: T[], options: { output?: T[] } = {}) {
6
- const output = (options.output || parse(stringify(peaks))) as (T & {
7
- id?: string;
8
- })[];
6
+ const output = (options.output || parse(stringify(peaks))) as Array<
7
+ T & {
8
+ id?: string;
9
+ }
10
+ >;
9
11
  for (const peak of output) {
10
12
  peak.id = generateID();
11
13
  }
12
14
 
13
- return output as (T & { id: string })[];
15
+ return output as Array<T & { id: string }>;
14
16
  }
@@ -1,5 +1,3 @@
1
- export interface DataBaseLevelStructure {
2
- [key: string]: number[] | undefined;
3
- }
1
+ export type DataBaseLevelStructure = Record<string, number[] | undefined>;
4
2
 
5
3
  export type DataBaseStructure = DataBaseLevelStructure[];
@@ -64,16 +64,17 @@ export async function predictAll(
64
64
  molecule: Molecule,
65
65
  options: PredictAllOptions = {},
66
66
  ): Promise<PredictedAll> {
67
- let {
67
+ const {
68
68
  logger,
69
69
  predictor = { H: predictProton, C: predictCarbon },
70
- predictions,
71
70
  joinDistance = { H: 0.05, C: 0.5 },
72
71
  predictOptions = {},
73
72
  } = options;
74
73
 
75
74
  const diaIDs = getDiastereotopicAtomIDs(molecule);
76
75
 
76
+ let { predictions } = options;
77
+
77
78
  const xPrediction = await getPredictions(
78
79
  'H',
79
80
  molecule,
@@ -55,7 +55,7 @@ export async function predictCOSY(
55
55
  molecule: Molecule,
56
56
  options: PredictCOSYOptions = {},
57
57
  ) {
58
- let {
58
+ const {
59
59
  minLength = 2,
60
60
  maxLength = 3,
61
61
  predictions,
@@ -70,7 +70,7 @@ export async function predictCarbon(
70
70
  };
71
71
  }
72
72
 
73
- let {
73
+ const {
74
74
  database,
75
75
  webserviceURL = 'https://nmr-prediction.service.zakodium.com/v1/predict/carbon',
76
76
  diaIDs = getDiastereotopicAtomIDs(molecule),
@@ -93,7 +93,7 @@ export async function predictCarbon(
93
93
  diaIDs,
94
94
  });
95
95
 
96
- let predictions = queryByHose(carbonDiaIDs, database, {
96
+ const predictions = queryByHose(carbonDiaIDs, database, {
97
97
  maxSphereSize,
98
98
  });
99
99
 
@@ -111,7 +111,7 @@ export async function predictCarbon(
111
111
  }
112
112
 
113
113
  function formatSignals(predictions: Prediction[]) {
114
- let signals = [];
114
+ const signals = [];
115
115
  for (const prediction of predictions) {
116
116
  const { atoms, nbAtoms, delta, diaIDs, statistic } = prediction;
117
117
  const signal = {
@@ -130,10 +130,10 @@ function formatSignals(predictions: Prediction[]) {
130
130
  }
131
131
 
132
132
  function joinSignalByDiaID(signals: NMRSignal1D[]) {
133
- let joinedSignals: { [key: string]: Signal1DFromPrediction } = {};
134
- for (let signal of signals) {
133
+ const joinedSignals: Record<string, Signal1DFromPrediction> = {};
134
+ for (const signal of signals) {
135
135
  checkFromPrediction(signal);
136
- let diaID = signal.diaIDs[0];
136
+ const diaID = signal.diaIDs[0];
137
137
  if (!joinedSignals[diaID]) {
138
138
  joinedSignals[diaID] = JSON.parse(
139
139
  JSON.stringify(signal),
@@ -56,7 +56,7 @@ export async function predictHMBC(
56
56
  molecule: Molecule,
57
57
  options: PredictHMBCOptions = {},
58
58
  ) {
59
- let {
59
+ const {
60
60
  minLength = 2,
61
61
  maxLength = 3,
62
62
  predictor = { H: predictProton, C: predictCarbon },
@@ -52,7 +52,7 @@ export async function predictHSQC(
52
52
  molecule: Molecule,
53
53
  options: PredictHSQCOptions = {},
54
54
  ) {
55
- let {
55
+ const {
56
56
  minLength = 1,
57
57
  maxLength = 1,
58
58
  predictor = { H: predictProton, C: predictCarbon },