nmr-processing 9.7.8 → 9.8.0

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 (583) 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/degreeToRadians.d.ts +1 -0
  59. package/lib/constants/degreeToRadians.js +5 -0
  60. package/lib/constants/degreeToRadians.js.map +1 -0
  61. package/lib/constants/impurities.d.ts +1509 -6
  62. package/lib/constants/impurities.js +2 -1
  63. package/lib/constants/impurities.js.map +1 -1
  64. package/lib/databases/getDatabase.js +1 -1
  65. package/lib/databases/getDatabase.js.map +1 -1
  66. package/lib/datum/Filters.js +4 -0
  67. package/lib/datum/Filters.js.map +1 -1
  68. package/lib/datum/FiltersManager.d.ts +1 -1
  69. package/lib/datum/FiltersManager.js +2 -2
  70. package/lib/datum/FiltersManager.js.map +1 -1
  71. package/lib/datum/MatrixOptions.d.ts +2 -2
  72. package/lib/datum/data1d/Entry1D.d.ts +1 -1
  73. package/lib/datum/data1d/filter1d/baselineCorrection.js +4 -4
  74. package/lib/datum/data1d/filter1d/baselineCorrection.js.map +1 -1
  75. package/lib/datum/data1d/filter1d/digitalFilter.js +2 -2
  76. package/lib/datum/data1d/filter1d/digitalFilter.js.map +1 -1
  77. package/lib/datum/data1d/filter1d/fft.js +7 -7
  78. package/lib/datum/data1d/filter1d/fft.js.map +1 -1
  79. package/lib/datum/data1d/filter1d/phaseCorrection.js +3 -3
  80. package/lib/datum/data1d/filter1d/phaseCorrection.js.map +1 -1
  81. package/lib/datum/data1d/filter1d/signalProcessing.js +1 -1
  82. package/lib/datum/data1d/filter1d/signalProcessing.js.map +1 -1
  83. package/lib/datum/data1d/filter1d/utils/padDataToNextPowerOfTwo.js +2 -2
  84. package/lib/datum/data1d/filter1d/utils/padDataToNextPowerOfTwo.js.map +1 -1
  85. package/lib/datum/data1d/filter1d/zeroFilling.js +8 -8
  86. package/lib/datum/data1d/filter1d/zeroFilling.js.map +1 -1
  87. package/lib/datum/data1d/utils/mapPeaks.js +1 -1
  88. package/lib/datum/data1d/utils/mapPeaks.js.map +1 -1
  89. package/lib/datum/data2d/Entry2D.d.ts +1 -1
  90. package/lib/datum/data2d/filter2d/fftDimension1.d.ts +15 -0
  91. package/lib/datum/data2d/filter2d/fftDimension1.js +69 -0
  92. package/lib/datum/data2d/filter2d/fftDimension1.js.map +1 -0
  93. package/lib/datum/data2d/filter2d/fftDimension2.d.ts +15 -0
  94. package/lib/datum/data2d/filter2d/fftDimension2.js +78 -0
  95. package/lib/datum/data2d/filter2d/fftDimension2.js.map +1 -0
  96. package/lib/datum/data2d/utils/getShift.js +1 -1
  97. package/lib/datum/data2d/utils/getShift.js.map +1 -1
  98. package/lib/multiplicity/splitPatterns.js +1 -1
  99. package/lib/multiplicity/splitPatterns.js.map +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/solventSuppression.js +11 -11
  105. package/lib/peaks/solventSuppression.js.map +1 -1
  106. package/lib/peaks/util/addMissingIDs.js.map +1 -1
  107. package/lib/peaks/util/determineRealTop.js +32 -32
  108. package/lib/peaks/util/determineRealTop.js.map +1 -1
  109. package/lib/peaks/util/getKernel.js +4 -4
  110. package/lib/peaks/util/getKernel.js.map +1 -1
  111. package/lib/peaks/util/peakOptimizer.js +17 -17
  112. package/lib/peaks/util/peakOptimizer.js.map +1 -1
  113. package/lib/peaks/util/setIDs.js.map +1 -1
  114. package/lib/prediction/dataStructure.d.ts +1 -3
  115. package/lib/prediction/predictAll.js +2 -1
  116. package/lib/prediction/predictAll.js.map +1 -1
  117. package/lib/prediction/predictCOSY.js +1 -1
  118. package/lib/prediction/predictCOSY.js.map +1 -1
  119. package/lib/prediction/predictCarbon.js +6 -6
  120. package/lib/prediction/predictCarbon.js.map +1 -1
  121. package/lib/prediction/predictHMBC.js +1 -1
  122. package/lib/prediction/predictHMBC.js.map +1 -1
  123. package/lib/prediction/predictHSQC.js +1 -1
  124. package/lib/prediction/predictHSQC.js.map +1 -1
  125. package/lib/prediction/predictProton.js +9 -9
  126. package/lib/prediction/predictProton.js.map +1 -1
  127. package/lib/prediction/utils/getFilteredIDiaIDs.js +3 -3
  128. package/lib/prediction/utils/getFilteredIDiaIDs.js.map +1 -1
  129. package/lib/prediction/utils/getNuclei.d.ts +1 -3
  130. package/lib/prediction/utils/getNuclei.js.map +1 -1
  131. package/lib/prediction/utils/predict2D.d.ts +1 -3
  132. package/lib/prediction/utils/predict2D.js +17 -17
  133. package/lib/prediction/utils/predict2D.js.map +1 -1
  134. package/lib/prediction/utils/queryByHOSE.js +1 -1
  135. package/lib/prediction/utils/queryByHOSE.js.map +1 -1
  136. package/lib/ranges/markSolventSignal.js +8 -8
  137. package/lib/ranges/markSolventSignal.js.map +1 -1
  138. package/lib/ranges/rangesToACS.js +6 -6
  139. package/lib/ranges/rangesToACS.js.map +1 -1
  140. package/lib/ranges/rangesToXY.js +6 -6
  141. package/lib/ranges/rangesToXY.js.map +1 -1
  142. package/lib/signal/signalJoinCouplings.js +9 -9
  143. package/lib/signal/signalJoinCouplings.js.map +1 -1
  144. package/lib/signal/signalMultiplicityPattern.js +2 -2
  145. package/lib/signal/signalMultiplicityPattern.js.map +1 -1
  146. package/lib/signals/addDummySignals.js +4 -4
  147. package/lib/signals/addDummySignals.js.map +1 -1
  148. package/lib/signals/hackSignalsToXY.js +1 -1
  149. package/lib/signals/hackSignalsToXY.js.map +1 -1
  150. package/lib/signals/optimization/getInternalSignals.js +6 -6
  151. package/lib/signals/optimization/getInternalSignals.js.map +1 -1
  152. package/lib/signals/optimization/getSumOfShapes.js +1 -1
  153. package/lib/signals/optimization/getSumOfShapes.js.map +1 -1
  154. package/lib/signals/optimizeSignals.js +3 -3
  155. package/lib/signals/optimizeSignals.js.map +1 -1
  156. package/lib/signals/signals2DToZ.js +3 -2
  157. package/lib/signals/signals2DToZ.js.map +1 -1
  158. package/lib/signals/signalsJoin.js +5 -5
  159. package/lib/signals/signalsJoin.js.map +1 -1
  160. package/lib/signals/signalsToFID.js +1 -1
  161. package/lib/signals/signalsToFID.js.map +1 -1
  162. package/lib/signals/signalsToRanges.js +3 -3
  163. package/lib/signals/signalsToRanges.js.map +1 -1
  164. package/lib/signals/signalsToXY.js +3 -3
  165. package/lib/signals/signalsToXY.js.map +1 -1
  166. package/lib/signals/simulation/signalsToSpinSystem.js +2 -2
  167. package/lib/signals/simulation/signalsToSpinSystem.js.map +1 -1
  168. package/lib/signals/simulation/simulate1D.js +2 -2
  169. package/lib/signals/simulation/simulate1D.js.map +1 -1
  170. package/lib/signals/simulation/simulateXYPeaks.js +15 -17
  171. package/lib/signals/simulation/simulateXYPeaks.js.map +1 -1
  172. package/lib/signals/simulation/splitSpinSystem.js +26 -23
  173. package/lib/signals/simulation/splitSpinSystem.js.map +1 -1
  174. package/lib/signals/utils/jAnalyzer.js +38 -38
  175. package/lib/signals/utils/jAnalyzer.js.map +1 -1
  176. package/lib/types/Integrals.d.ts +1 -1
  177. package/lib/types/Peaks/Peaks.d.ts +1 -1
  178. package/lib/types/Ranges/Ranges.d.ts +1 -1
  179. package/lib/types/Zones/Zone.d.ts +1 -1
  180. package/lib/types/Zones/Zones.d.ts +1 -1
  181. package/lib/utilities/getFrequency.js +1 -1
  182. package/lib/utilities/getFrequency.js.map +1 -1
  183. package/lib/utilities/resurrectRange.js +1 -1
  184. package/lib/utilities/resurrectRange.js.map +1 -1
  185. package/lib/xy/xyAutoPeaksPicking.js +3 -3
  186. package/lib/xy/xyAutoPeaksPicking.js.map +1 -1
  187. package/lib/xyz/quadrature.js +1 -19
  188. package/lib/xyz/quadrature.js.map +1 -1
  189. package/lib/xyz/util/fft2d/digitalFilter.js +3 -3
  190. package/lib/xyz/util/fft2d/digitalFilter.js.map +1 -1
  191. package/lib/xyz/util/fft2d/fftDirectDimension.d.ts +1 -1
  192. package/lib/xyz/util/fft2d/fftDirectDimension.js +3 -11
  193. package/lib/xyz/util/fft2d/fftDirectDimension.js.map +1 -1
  194. package/lib/xyz/util/fft2d/fftIndirectDimension.d.ts +2 -4
  195. package/lib/xyz/util/fft2d/fftIndirectDimension.js +104 -50
  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/util/phaseCorrection/applyOverImag.d.ts +24 -0
  209. package/lib/xyz/util/phaseCorrection/applyOverImag.js +27 -0
  210. package/lib/xyz/util/phaseCorrection/applyOverImag.js.map +1 -0
  211. package/lib/xyz/util/phaseCorrection/applyOverReal.d.ts +22 -0
  212. package/lib/xyz/util/phaseCorrection/applyOverReal.js +27 -0
  213. package/lib/xyz/util/phaseCorrection/applyOverReal.js.map +1 -0
  214. package/lib/xyz/util/phaseCorrection/checkNmrData2DFourQuad.d.ts +3 -0
  215. package/lib/xyz/util/phaseCorrection/checkNmrData2DFourQuad.js +10 -0
  216. package/lib/xyz/util/phaseCorrection/checkNmrData2DFourQuad.js.map +1 -0
  217. package/lib/xyz/util/phaseCorrection/checkNmrData2DTwoQuad.d.ts +3 -0
  218. package/lib/xyz/util/phaseCorrection/checkNmrData2DTwoQuad.js +10 -0
  219. package/lib/xyz/util/phaseCorrection/checkNmrData2DTwoQuad.js.map +1 -0
  220. package/lib/xyz/util/phaseCorrection/getZMinMax.d.ts +6 -0
  221. package/lib/xyz/util/phaseCorrection/getZMinMax.js +13 -0
  222. package/lib/xyz/util/phaseCorrection/getZMinMax.js.map +1 -0
  223. package/lib/xyz/xyzAutoSignalsPicking.js +19 -18
  224. package/lib/xyz/xyzAutoSignalsPicking.js.map +1 -1
  225. package/lib/xyz/xyzBidimensionalFFT.js +2 -19
  226. package/lib/xyz/xyzBidimensionalFFT.js.map +1 -1
  227. package/lib/xyz/xyzJResAnalyzer.js +21 -21
  228. package/lib/xyz/xyzJResAnalyzer.js.map +1 -1
  229. package/lib/xyz/xyzPhaseCorrectionDirectDimension.d.ts +16 -0
  230. package/lib/xyz/xyzPhaseCorrectionDirectDimension.js +30 -0
  231. package/lib/xyz/xyzPhaseCorrectionDirectDimension.js.map +1 -0
  232. package/lib/xyz/xyzPhaseCorrectionIndirectDimension.d.ts +25 -0
  233. package/lib/xyz/xyzPhaseCorrectionIndirectDimension.js +32 -0
  234. package/lib/xyz/xyzPhaseCorrectionIndirectDimension.js.map +1 -0
  235. package/lib-esm/apodization/compose.js +1 -1
  236. package/lib-esm/apodization/compose.js.map +1 -1
  237. package/lib-esm/assignment/get13CAssignments.js +3 -3
  238. package/lib-esm/assignment/get13CAssignments.js.map +1 -1
  239. package/lib-esm/assignment/get1HAssignments.js +3 -3
  240. package/lib-esm/assignment/get1HAssignments.js.map +1 -1
  241. package/lib-esm/assignment/getAssignments.js +5 -5
  242. package/lib-esm/assignment/getAssignments.js.map +1 -1
  243. package/lib-esm/assignment/utils/addSolution.js +25 -0
  244. package/lib-esm/assignment/utils/addSolution.js.map +1 -0
  245. package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/buildAssignments.js +15 -15
  246. package/lib-esm/assignment/utils/generalAssignment/buildAssignments.js.map +1 -0
  247. package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/checkIDs.js +6 -6
  248. package/lib-esm/assignment/utils/generalAssignment/checkIDs.js.map +1 -0
  249. package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/createMapPossibleAssignment.js +7 -7
  250. package/lib-esm/assignment/utils/generalAssignment/createMapPossibleAssignment.js.map +1 -0
  251. package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/exploreTree.js +6 -7
  252. package/lib-esm/assignment/utils/generalAssignment/exploreTree.js.map +1 -0
  253. package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/formatData.js +5 -5
  254. package/lib-esm/assignment/utils/generalAssignment/formatData.js.map +1 -0
  255. package/lib-esm/assignment/utils/generalAssignment/getIntegrationOfAttachedProtons.js.map +1 -0
  256. package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/getTargetsAndCorrelations.js +1 -1
  257. package/lib-esm/assignment/utils/generalAssignment/getTargetsAndCorrelations.js.map +1 -0
  258. package/lib-esm/assignment/utils/generalAssignment/getWorkFlow.js.map +1 -0
  259. package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/groupCarbonTargetByIntegrationZone.js +8 -8
  260. package/lib-esm/assignment/utils/generalAssignment/groupCarbonTargetByIntegrationZone.js.map +1 -0
  261. package/lib-esm/assignment/utils/generalAssignment/isSpectraData1D.js.map +1 -0
  262. package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/partialScore.js +20 -20
  263. package/lib-esm/assignment/utils/generalAssignment/partialScore.js.map +1 -0
  264. package/lib-esm/assignment/utils/generalAssignment/searchIndices.js.map +1 -0
  265. package/lib-esm/assignment/utils/{buildAssignments.js → oneDimensionalAssignment/buildAssignments.js} +4 -4
  266. package/lib-esm/assignment/utils/oneDimensionalAssignment/buildAssignments.js.map +1 -0
  267. package/lib-esm/assignment/utils/{createMapPossibleAssignments.js → oneDimensionalAssignment/createMapPossibleAssignments.js} +4 -4
  268. package/lib-esm/assignment/utils/oneDimensionalAssignment/createMapPossibleAssignments.js.map +1 -0
  269. package/lib-esm/assignment/utils/{exploreTreeRec.js → oneDimensionalAssignment/exploreTreeRec.js} +7 -8
  270. package/lib-esm/assignment/utils/oneDimensionalAssignment/exploreTreeRec.js.map +1 -0
  271. package/lib-esm/assignment/utils/{partialScore.js → oneDimensionalAssignment/partialScore.js} +9 -9
  272. package/lib-esm/assignment/utils/oneDimensionalAssignment/partialScore.js.map +1 -0
  273. package/lib-esm/constants/SignalsKinds.js.map +1 -1
  274. package/lib-esm/constants/couplingValues.js.map +1 -1
  275. package/lib-esm/constants/degreeToRadians.js +2 -0
  276. package/lib-esm/constants/degreeToRadians.js.map +1 -0
  277. package/lib-esm/constants/impurities.js +2 -1
  278. package/lib-esm/constants/impurities.js.map +1 -1
  279. package/lib-esm/databases/getDatabase.js +1 -1
  280. package/lib-esm/databases/getDatabase.js.map +1 -1
  281. package/lib-esm/datum/Filters.js +4 -0
  282. package/lib-esm/datum/Filters.js.map +1 -1
  283. package/lib-esm/datum/FiltersManager.js +2 -2
  284. package/lib-esm/datum/FiltersManager.js.map +1 -1
  285. package/lib-esm/datum/data1d/filter1d/baselineCorrection.js +4 -4
  286. package/lib-esm/datum/data1d/filter1d/baselineCorrection.js.map +1 -1
  287. package/lib-esm/datum/data1d/filter1d/digitalFilter.js +2 -2
  288. package/lib-esm/datum/data1d/filter1d/digitalFilter.js.map +1 -1
  289. package/lib-esm/datum/data1d/filter1d/fft.js +7 -7
  290. package/lib-esm/datum/data1d/filter1d/fft.js.map +1 -1
  291. package/lib-esm/datum/data1d/filter1d/phaseCorrection.js +3 -3
  292. package/lib-esm/datum/data1d/filter1d/phaseCorrection.js.map +1 -1
  293. package/lib-esm/datum/data1d/filter1d/signalProcessing.js +1 -1
  294. package/lib-esm/datum/data1d/filter1d/signalProcessing.js.map +1 -1
  295. package/lib-esm/datum/data1d/filter1d/utils/padDataToNextPowerOfTwo.js +2 -2
  296. package/lib-esm/datum/data1d/filter1d/utils/padDataToNextPowerOfTwo.js.map +1 -1
  297. package/lib-esm/datum/data1d/filter1d/zeroFilling.js +8 -8
  298. package/lib-esm/datum/data1d/filter1d/zeroFilling.js.map +1 -1
  299. package/lib-esm/datum/data1d/utils/mapPeaks.js +1 -1
  300. package/lib-esm/datum/data1d/utils/mapPeaks.js.map +1 -1
  301. package/lib-esm/datum/data2d/filter2d/fftDimension1.js +63 -0
  302. package/lib-esm/datum/data2d/filter2d/fftDimension1.js.map +1 -0
  303. package/lib-esm/datum/data2d/filter2d/fftDimension2.js +72 -0
  304. package/lib-esm/datum/data2d/filter2d/fftDimension2.js.map +1 -0
  305. package/lib-esm/datum/data2d/utils/getShift.js +1 -1
  306. package/lib-esm/datum/data2d/utils/getShift.js.map +1 -1
  307. package/lib-esm/multiplicity/splitPatterns.js +1 -1
  308. package/lib-esm/multiplicity/splitPatterns.js.map +1 -1
  309. package/lib-esm/peaks/peaksFilterImpurities.js +7 -6
  310. package/lib-esm/peaks/peaksFilterImpurities.js.map +1 -1
  311. package/lib-esm/peaks/peaksToRanges.js +17 -17
  312. package/lib-esm/peaks/peaksToRanges.js.map +1 -1
  313. package/lib-esm/peaks/solventSuppression.js +11 -11
  314. package/lib-esm/peaks/solventSuppression.js.map +1 -1
  315. package/lib-esm/peaks/util/addMissingIDs.js.map +1 -1
  316. package/lib-esm/peaks/util/determineRealTop.js +32 -32
  317. package/lib-esm/peaks/util/determineRealTop.js.map +1 -1
  318. package/lib-esm/peaks/util/getKernel.js +4 -4
  319. package/lib-esm/peaks/util/getKernel.js.map +1 -1
  320. package/lib-esm/peaks/util/peakOptimizer.js +17 -17
  321. package/lib-esm/peaks/util/peakOptimizer.js.map +1 -1
  322. package/lib-esm/peaks/util/setIDs.js.map +1 -1
  323. package/lib-esm/prediction/predictAll.js +2 -1
  324. package/lib-esm/prediction/predictAll.js.map +1 -1
  325. package/lib-esm/prediction/predictCOSY.js +1 -1
  326. package/lib-esm/prediction/predictCOSY.js.map +1 -1
  327. package/lib-esm/prediction/predictCarbon.js +6 -6
  328. package/lib-esm/prediction/predictCarbon.js.map +1 -1
  329. package/lib-esm/prediction/predictHMBC.js +1 -1
  330. package/lib-esm/prediction/predictHMBC.js.map +1 -1
  331. package/lib-esm/prediction/predictHSQC.js +1 -1
  332. package/lib-esm/prediction/predictHSQC.js.map +1 -1
  333. package/lib-esm/prediction/predictProton.js +9 -9
  334. package/lib-esm/prediction/predictProton.js.map +1 -1
  335. package/lib-esm/prediction/utils/getFilteredIDiaIDs.js +3 -3
  336. package/lib-esm/prediction/utils/getFilteredIDiaIDs.js.map +1 -1
  337. package/lib-esm/prediction/utils/getNuclei.js.map +1 -1
  338. package/lib-esm/prediction/utils/predict2D.js +17 -17
  339. package/lib-esm/prediction/utils/predict2D.js.map +1 -1
  340. package/lib-esm/prediction/utils/queryByHOSE.js +1 -1
  341. package/lib-esm/prediction/utils/queryByHOSE.js.map +1 -1
  342. package/lib-esm/ranges/markSolventSignal.js +8 -8
  343. package/lib-esm/ranges/markSolventSignal.js.map +1 -1
  344. package/lib-esm/ranges/rangesToACS.js +6 -6
  345. package/lib-esm/ranges/rangesToACS.js.map +1 -1
  346. package/lib-esm/ranges/rangesToXY.js +6 -6
  347. package/lib-esm/ranges/rangesToXY.js.map +1 -1
  348. package/lib-esm/signal/signalJoinCouplings.js +9 -9
  349. package/lib-esm/signal/signalJoinCouplings.js.map +1 -1
  350. package/lib-esm/signal/signalMultiplicityPattern.js +2 -2
  351. package/lib-esm/signal/signalMultiplicityPattern.js.map +1 -1
  352. package/lib-esm/signals/addDummySignals.js +4 -4
  353. package/lib-esm/signals/addDummySignals.js.map +1 -1
  354. package/lib-esm/signals/hackSignalsToXY.js +1 -1
  355. package/lib-esm/signals/hackSignalsToXY.js.map +1 -1
  356. package/lib-esm/signals/optimization/getInternalSignals.js +6 -6
  357. package/lib-esm/signals/optimization/getInternalSignals.js.map +1 -1
  358. package/lib-esm/signals/optimization/getSumOfShapes.js +1 -1
  359. package/lib-esm/signals/optimization/getSumOfShapes.js.map +1 -1
  360. package/lib-esm/signals/optimizeSignals.js +3 -3
  361. package/lib-esm/signals/optimizeSignals.js.map +1 -1
  362. package/lib-esm/signals/signals2DToZ.js +3 -2
  363. package/lib-esm/signals/signals2DToZ.js.map +1 -1
  364. package/lib-esm/signals/signalsJoin.js +5 -5
  365. package/lib-esm/signals/signalsJoin.js.map +1 -1
  366. package/lib-esm/signals/signalsToFID.js +1 -1
  367. package/lib-esm/signals/signalsToFID.js.map +1 -1
  368. package/lib-esm/signals/signalsToRanges.js +3 -3
  369. package/lib-esm/signals/signalsToRanges.js.map +1 -1
  370. package/lib-esm/signals/signalsToXY.js +3 -3
  371. package/lib-esm/signals/signalsToXY.js.map +1 -1
  372. package/lib-esm/signals/simulation/signalsToSpinSystem.js +2 -2
  373. package/lib-esm/signals/simulation/signalsToSpinSystem.js.map +1 -1
  374. package/lib-esm/signals/simulation/simulate1D.js +2 -2
  375. package/lib-esm/signals/simulation/simulate1D.js.map +1 -1
  376. package/lib-esm/signals/simulation/simulateXYPeaks.js +15 -17
  377. package/lib-esm/signals/simulation/simulateXYPeaks.js.map +1 -1
  378. package/lib-esm/signals/simulation/splitSpinSystem.js +26 -23
  379. package/lib-esm/signals/simulation/splitSpinSystem.js.map +1 -1
  380. package/lib-esm/signals/utils/jAnalyzer.js +38 -38
  381. package/lib-esm/signals/utils/jAnalyzer.js.map +1 -1
  382. package/lib-esm/utilities/getFrequency.js +1 -1
  383. package/lib-esm/utilities/getFrequency.js.map +1 -1
  384. package/lib-esm/utilities/resurrectRange.js +1 -1
  385. package/lib-esm/utilities/resurrectRange.js.map +1 -1
  386. package/lib-esm/xy/xyAutoPeaksPicking.js +3 -3
  387. package/lib-esm/xy/xyAutoPeaksPicking.js.map +1 -1
  388. package/lib-esm/xyz/quadrature.js +2 -20
  389. package/lib-esm/xyz/quadrature.js.map +1 -1
  390. package/lib-esm/xyz/util/fft2d/digitalFilter.js +3 -3
  391. package/lib-esm/xyz/util/fft2d/digitalFilter.js.map +1 -1
  392. package/lib-esm/xyz/util/fft2d/fftDirectDimension.js +4 -12
  393. package/lib-esm/xyz/util/fft2d/fftDirectDimension.js.map +1 -1
  394. package/lib-esm/xyz/util/fft2d/fftIndirectDimension.js +104 -50
  395. package/lib-esm/xyz/util/fft2d/fftIndirectDimension.js.map +1 -1
  396. package/lib-esm/xyz/util/fft2d/removeDCOffset.js +1 -1
  397. package/lib-esm/xyz/util/fft2d/removeDCOffset.js.map +1 -1
  398. package/lib-esm/xyz/util/fft2d/zeroFilling.js +4 -6
  399. package/lib-esm/xyz/util/fft2d/zeroFilling.js.map +1 -1
  400. package/lib-esm/xyz/util/formatZone.js +3 -3
  401. package/lib-esm/xyz/util/formatZone.js.map +1 -1
  402. package/lib-esm/xyz/util/getMinMaxXY.js +19 -0
  403. package/lib-esm/xyz/util/getMinMaxXY.js.map +1 -0
  404. package/lib-esm/xyz/util/padData.js +7 -7
  405. package/lib-esm/xyz/util/padData.js.map +1 -1
  406. package/lib-esm/xyz/util/phaseCorrection/applyOverImag.js +20 -0
  407. package/lib-esm/xyz/util/phaseCorrection/applyOverImag.js.map +1 -0
  408. package/lib-esm/xyz/util/phaseCorrection/applyOverReal.js +20 -0
  409. package/lib-esm/xyz/util/phaseCorrection/applyOverReal.js.map +1 -0
  410. package/lib-esm/xyz/util/phaseCorrection/checkNmrData2DFourQuad.js +6 -0
  411. package/lib-esm/xyz/util/phaseCorrection/checkNmrData2DFourQuad.js.map +1 -0
  412. package/lib-esm/xyz/util/phaseCorrection/checkNmrData2DTwoQuad.js +6 -0
  413. package/lib-esm/xyz/util/phaseCorrection/checkNmrData2DTwoQuad.js.map +1 -0
  414. package/lib-esm/xyz/util/phaseCorrection/getZMinMax.js +9 -0
  415. package/lib-esm/xyz/util/phaseCorrection/getZMinMax.js.map +1 -0
  416. package/lib-esm/xyz/xyzAutoSignalsPicking.js +19 -18
  417. package/lib-esm/xyz/xyzAutoSignalsPicking.js.map +1 -1
  418. package/lib-esm/xyz/xyzBidimensionalFFT.js +1 -18
  419. package/lib-esm/xyz/xyzBidimensionalFFT.js.map +1 -1
  420. package/lib-esm/xyz/xyzJResAnalyzer.js +21 -21
  421. package/lib-esm/xyz/xyzJResAnalyzer.js.map +1 -1
  422. package/lib-esm/xyz/xyzPhaseCorrectionDirectDimension.js +26 -0
  423. package/lib-esm/xyz/xyzPhaseCorrectionDirectDimension.js.map +1 -0
  424. package/lib-esm/xyz/xyzPhaseCorrectionIndirectDimension.js +28 -0
  425. package/lib-esm/xyz/xyzPhaseCorrectionIndirectDimension.js.map +1 -0
  426. package/package.json +4 -4
  427. package/src/apodization/compose.ts +1 -1
  428. package/src/assignment/get13CAssignments.ts +6 -3
  429. package/src/assignment/get1HAssignments.ts +7 -6
  430. package/src/assignment/getAssignments.ts +7 -7
  431. package/src/assignment/nmrAssigment.ts +2 -2
  432. package/src/assignment/utils/addSolution.ts +45 -0
  433. package/src/assignment/utils/{getAssignment → generalAssignment}/buildAssignments.ts +29 -36
  434. package/src/assignment/utils/{getAssignment → generalAssignment}/checkIDs.ts +6 -6
  435. package/src/assignment/utils/{getAssignment → generalAssignment}/createMapPossibleAssignment.ts +10 -14
  436. package/src/assignment/utils/{getAssignment → generalAssignment}/exploreTree.ts +7 -8
  437. package/src/assignment/utils/{getAssignment → generalAssignment}/formatData.ts +5 -5
  438. package/src/assignment/utils/{getAssignment → generalAssignment}/getTargetsAndCorrelations.ts +3 -5
  439. package/src/assignment/utils/{getAssignment → generalAssignment}/getWorkFlow.ts +2 -5
  440. package/src/assignment/utils/{getAssignment → generalAssignment}/groupCarbonTargetByIntegrationZone.ts +8 -8
  441. package/src/assignment/utils/{getAssignment → generalAssignment}/partialScore.ts +25 -29
  442. package/src/assignment/utils/{buildAssignments.ts → oneDimensionalAssignment/buildAssignments.ts} +6 -8
  443. package/src/assignment/utils/{createMapPossibleAssignments.ts → oneDimensionalAssignment/createMapPossibleAssignments.ts} +9 -9
  444. package/src/assignment/utils/{exploreTreeRec.ts → oneDimensionalAssignment/exploreTreeRec.ts} +8 -9
  445. package/src/assignment/utils/{partialScore.ts → oneDimensionalAssignment/partialScore.ts} +10 -12
  446. package/src/constants/SignalsKinds.ts +1 -1
  447. package/src/constants/couplingValues.ts +1 -1
  448. package/src/constants/degreeToRadians.ts +1 -0
  449. package/src/constants/impurities.ts +14 -15
  450. package/src/databases/getDatabase.ts +1 -1
  451. package/src/datum/Filters.ts +4 -0
  452. package/src/datum/FiltersManager.ts +3 -3
  453. package/src/datum/MatrixOptions.ts +1 -1
  454. package/src/datum/data1d/Entry1D.ts +1 -1
  455. package/src/datum/data1d/filter1d/baselineCorrection.ts +4 -4
  456. package/src/datum/data1d/filter1d/digitalFilter.ts +2 -2
  457. package/src/datum/data1d/filter1d/fft.ts +7 -7
  458. package/src/datum/data1d/filter1d/phaseCorrection.ts +3 -3
  459. package/src/datum/data1d/filter1d/signalProcessing.ts +1 -1
  460. package/src/datum/data1d/filter1d/utils/padDataToNextPowerOfTwo.ts +2 -2
  461. package/src/datum/data1d/filter1d/zeroFilling.ts +10 -9
  462. package/src/datum/data1d/utils/mapPeaks.ts +1 -1
  463. package/src/datum/data2d/Entry2D.ts +1 -1
  464. package/src/datum/data2d/filter2d/fftDimension1.ts +93 -0
  465. package/src/datum/data2d/filter2d/fftDimension2.ts +94 -0
  466. package/src/datum/data2d/utils/getShift.ts +1 -1
  467. package/src/ml-tree-set.d.ts +1 -1
  468. package/src/multiplicity/splitPatterns.ts +1 -1
  469. package/src/peaks/peaksFilterImpurities.ts +7 -6
  470. package/src/peaks/peaksToRanges.ts +19 -18
  471. package/src/peaks/solventSuppression.ts +11 -11
  472. package/src/peaks/util/addMissingIDs.ts +1 -1
  473. package/src/peaks/util/determineRealTop.ts +32 -32
  474. package/src/peaks/util/getKernel.ts +4 -4
  475. package/src/peaks/util/peakOptimizer.ts +17 -17
  476. package/src/peaks/util/setIDs.ts +6 -4
  477. package/src/prediction/dataStructure.ts +1 -3
  478. package/src/prediction/predictAll.ts +3 -2
  479. package/src/prediction/predictCOSY.ts +1 -1
  480. package/src/prediction/predictCarbon.ts +6 -6
  481. package/src/prediction/predictHMBC.ts +1 -1
  482. package/src/prediction/predictHSQC.ts +1 -1
  483. package/src/prediction/predictProton.ts +9 -9
  484. package/src/prediction/utils/getFilteredIDiaIDs.ts +3 -3
  485. package/src/prediction/utils/getNuclei.ts +2 -2
  486. package/src/prediction/utils/predict2D.ts +21 -25
  487. package/src/prediction/utils/queryByHOSE.ts +1 -1
  488. package/src/ranges/markSolventSignal.ts +8 -8
  489. package/src/ranges/rangesToACS.ts +6 -6
  490. package/src/ranges/rangesToXY.ts +6 -6
  491. package/src/signal/signalJoinCouplings.ts +9 -9
  492. package/src/signal/signalMultiplicityPattern.ts +2 -2
  493. package/src/signals/addDummySignals.ts +4 -4
  494. package/src/signals/hackSignalsToXY.ts +1 -1
  495. package/src/signals/optimization/getInternalSignals.ts +6 -6
  496. package/src/signals/optimization/getSumOfShapes.ts +1 -1
  497. package/src/signals/optimizeSignals.ts +3 -3
  498. package/src/signals/signals2DToZ.ts +4 -8
  499. package/src/signals/signalsJoin.ts +5 -5
  500. package/src/signals/signalsToFID.ts +1 -1
  501. package/src/signals/signalsToRanges.ts +3 -3
  502. package/src/signals/signalsToXY.ts +3 -3
  503. package/src/signals/simulation/signalsToSpinSystem.ts +3 -5
  504. package/src/signals/simulation/simulate1D.ts +2 -2
  505. package/src/signals/simulation/simulateXYPeaks.ts +16 -17
  506. package/src/signals/simulation/splitSpinSystem.ts +28 -25
  507. package/src/signals/utils/jAnalyzer.ts +38 -38
  508. package/src/types/Integrals.ts +1 -1
  509. package/src/types/Peaks/Peaks.ts +1 -1
  510. package/src/types/Ranges/Ranges.ts +1 -1
  511. package/src/types/Zones/Zone.ts +1 -1
  512. package/src/types/Zones/Zones.ts +1 -1
  513. package/src/utilities/getFrequency.ts +1 -1
  514. package/src/utilities/resurrectRange.ts +1 -1
  515. package/src/xy/xyAutoPeaksPicking.ts +3 -3
  516. package/src/xyz/quadrature.ts +2 -27
  517. package/src/xyz/util/fft2d/digitalFilter.ts +3 -3
  518. package/src/xyz/util/fft2d/fftDirectDimension.ts +4 -23
  519. package/src/xyz/util/fft2d/fftIndirectDimension.ts +123 -73
  520. package/src/xyz/util/fft2d/removeDCOffset.ts +1 -1
  521. package/src/xyz/util/fft2d/zeroFilling.ts +5 -6
  522. package/src/xyz/util/formatZone.ts +3 -3
  523. package/src/xyz/util/getMinMaxXY.ts +19 -0
  524. package/src/xyz/util/padData.ts +7 -7
  525. package/src/xyz/util/phaseCorrection/applyOverImag.ts +29 -0
  526. package/src/xyz/util/phaseCorrection/applyOverReal.ts +29 -0
  527. package/src/xyz/util/phaseCorrection/checkNmrData2DFourQuad.ts +12 -0
  528. package/src/xyz/util/phaseCorrection/checkNmrData2DTwoQuad.ts +11 -0
  529. package/src/xyz/util/phaseCorrection/getZMinMax.ts +10 -0
  530. package/src/xyz/xyzAutoSignalsPicking.ts +20 -19
  531. package/src/xyz/xyzBidimensionalFFT.ts +1 -20
  532. package/src/xyz/xyzJResAnalyzer.ts +21 -21
  533. package/src/xyz/xyzPhaseCorrectionDirectDimension.ts +52 -0
  534. package/src/xyz/xyzPhaseCorrectionIndirectDimension.ts +45 -0
  535. package/lib/assignment/utils/buildAssignments.js.map +0 -1
  536. package/lib/assignment/utils/createMapPossibleAssignments.js.map +0 -1
  537. package/lib/assignment/utils/exploreTreeRec.js.map +0 -1
  538. package/lib/assignment/utils/getAssignment/buildAssignments.js.map +0 -1
  539. package/lib/assignment/utils/getAssignment/checkIDs.js.map +0 -1
  540. package/lib/assignment/utils/getAssignment/createMapPossibleAssignment.js.map +0 -1
  541. package/lib/assignment/utils/getAssignment/exploreTree.js.map +0 -1
  542. package/lib/assignment/utils/getAssignment/formatData.js.map +0 -1
  543. package/lib/assignment/utils/getAssignment/getIntegrationOfAttachedProtons.js.map +0 -1
  544. package/lib/assignment/utils/getAssignment/getTargetsAndCorrelations.js.map +0 -1
  545. package/lib/assignment/utils/getAssignment/getWorkFlow.js.map +0 -1
  546. package/lib/assignment/utils/getAssignment/groupCarbonTargetByIntegrationZone.js.map +0 -1
  547. package/lib/assignment/utils/getAssignment/isSpectraData1D.js.map +0 -1
  548. package/lib/assignment/utils/getAssignment/partialScore.js.map +0 -1
  549. package/lib/assignment/utils/getAssignment/searchIndices.js.map +0 -1
  550. package/lib/assignment/utils/partialScore.js.map +0 -1
  551. package/lib-esm/assignment/utils/buildAssignments.js.map +0 -1
  552. package/lib-esm/assignment/utils/createMapPossibleAssignments.js.map +0 -1
  553. package/lib-esm/assignment/utils/exploreTreeRec.js.map +0 -1
  554. package/lib-esm/assignment/utils/getAssignment/buildAssignments.js.map +0 -1
  555. package/lib-esm/assignment/utils/getAssignment/checkIDs.js.map +0 -1
  556. package/lib-esm/assignment/utils/getAssignment/createMapPossibleAssignment.js.map +0 -1
  557. package/lib-esm/assignment/utils/getAssignment/exploreTree.js.map +0 -1
  558. package/lib-esm/assignment/utils/getAssignment/formatData.js.map +0 -1
  559. package/lib-esm/assignment/utils/getAssignment/getIntegrationOfAttachedProtons.js.map +0 -1
  560. package/lib-esm/assignment/utils/getAssignment/getTargetsAndCorrelations.js.map +0 -1
  561. package/lib-esm/assignment/utils/getAssignment/getWorkFlow.js.map +0 -1
  562. package/lib-esm/assignment/utils/getAssignment/groupCarbonTargetByIntegrationZone.js.map +0 -1
  563. package/lib-esm/assignment/utils/getAssignment/isSpectraData1D.js.map +0 -1
  564. package/lib-esm/assignment/utils/getAssignment/partialScore.js.map +0 -1
  565. package/lib-esm/assignment/utils/getAssignment/searchIndices.js.map +0 -1
  566. package/lib-esm/assignment/utils/partialScore.js.map +0 -1
  567. /package/lib/assignment/utils/{getAssignment → generalAssignment}/checkIDs.d.ts +0 -0
  568. /package/lib/assignment/utils/{getAssignment → generalAssignment}/formatData.d.ts +0 -0
  569. /package/lib/assignment/utils/{getAssignment → generalAssignment}/getIntegrationOfAttachedProtons.d.ts +0 -0
  570. /package/lib/assignment/utils/{getAssignment → generalAssignment}/getIntegrationOfAttachedProtons.js +0 -0
  571. /package/lib/assignment/utils/{getAssignment → generalAssignment}/getWorkFlow.js +0 -0
  572. /package/lib/assignment/utils/{getAssignment → generalAssignment}/groupCarbonTargetByIntegrationZone.d.ts +0 -0
  573. /package/lib/assignment/utils/{getAssignment → generalAssignment}/isSpectraData1D.d.ts +0 -0
  574. /package/lib/assignment/utils/{getAssignment → generalAssignment}/isSpectraData1D.js +0 -0
  575. /package/lib/assignment/utils/{getAssignment → generalAssignment}/searchIndices.d.ts +0 -0
  576. /package/lib/assignment/utils/{getAssignment → generalAssignment}/searchIndices.js +0 -0
  577. /package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/getIntegrationOfAttachedProtons.js +0 -0
  578. /package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/getWorkFlow.js +0 -0
  579. /package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/isSpectraData1D.js +0 -0
  580. /package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/searchIndices.js +0 -0
  581. /package/src/assignment/utils/{getAssignment → generalAssignment}/getIntegrationOfAttachedProtons.ts +0 -0
  582. /package/src/assignment/utils/{getAssignment → generalAssignment}/isSpectraData1D.ts +0 -0
  583. /package/src/assignment/utils/{getAssignment → generalAssignment}/searchIndices.ts +0 -0
@@ -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 },
@@ -95,14 +95,14 @@ function protonParser(
95
95
  if (result.includes('ERR')) {
96
96
  throw Error(`Spinus optimization: ${result}`);
97
97
  }
98
- let distanceMatrix = getConnectivityMatrix(molecule, { pathLength: true });
99
- let lines = result.split('\n').filter((line) => line);
100
- let signals = [];
101
- for (let line of lines) {
102
- let fields: string[] = line.split('\t');
103
- let couplings = fields.slice(4);
104
- let atom = Number(fields[0]) - 1;
105
- let signal: NMRSignal1D = {
98
+ const distanceMatrix = getConnectivityMatrix(molecule, { pathLength: true });
99
+ const lines = result.split('\n').filter((line) => line);
100
+ const signals = [];
101
+ for (const line of lines) {
102
+ const fields: string[] = line.split('\t');
103
+ const couplings = fields.slice(4);
104
+ const atom = Number(fields[0]) - 1;
105
+ const signal: NMRSignal1D = {
106
106
  id: generateID(),
107
107
  atoms: [atom],
108
108
  diaIDs: [diaIDs[atom]],
@@ -115,7 +115,7 @@ function protonParser(
115
115
  throw new Error(`For atom js property was not added`);
116
116
  }
117
117
  for (let i = 0; i < couplings.length; i += 3) {
118
- let linked = Number(couplings[i]) - 1;
118
+ const linked = Number(couplings[i]) - 1;
119
119
  signal.js.push({
120
120
  coupling: Number(couplings[i + 2]),
121
121
  atoms: [linked],
@@ -24,11 +24,11 @@ export function getFilteredIDiaIDs(
24
24
 
25
25
  const molfile = molecule.toMolfile();
26
26
 
27
- let groupedDiaIDs = groupDiastereotopicAtomIDs(diaIDs, molecule, {
27
+ const groupedDiaIDs = groupDiastereotopicAtomIDs(diaIDs, molecule, {
28
28
  atomLabel: 'C',
29
29
  });
30
30
 
31
- let carbonDiaIDs = groupedDiaIDs.sort((a, b) => {
31
+ const carbonDiaIDs = groupedDiaIDs.sort((a, b) => {
32
32
  if (a.atomLabel === b.atomLabel) {
33
33
  return b.counter - a.counter;
34
34
  }
@@ -45,7 +45,7 @@ export function getFilteredIDiaIDs(
45
45
  );
46
46
  }
47
47
 
48
- let toReturn = {
48
+ const toReturn = {
49
49
  molfile,
50
50
  carbonDiaIDs: carbonDiaIDs as GroupedDiaIDsWithHose,
51
51
  };
@@ -1,8 +1,8 @@
1
- const nucleusMap: { [key: string]: string } = {
1
+ const nucleusMap: Record<string, string> = {
2
2
  h: '1H',
3
3
  c: '13C',
4
4
  };
5
5
 
6
- export function getNuclei(input: { [key: string]: string }) {
6
+ export function getNuclei(input: Record<string, string>) {
7
7
  return Object.values(input).map((e) => nucleusMap[e.toLowerCase()]);
8
8
  }
@@ -101,9 +101,7 @@ export interface PredictOptions {
101
101
  C?: PredictCarbonOptions;
102
102
  }
103
103
 
104
- export interface Predictions {
105
- [key: string]: Prediction1D | undefined;
106
- }
104
+ export type Predictions = Record<string, Prediction1D | undefined>;
107
105
 
108
106
  type GroupDiastereotopicAtomIDsWithAtomInfo = GroupDiastereotopicAtomIDs & {
109
107
  pathInfo: PathInfo;
@@ -122,9 +120,7 @@ function checkFromTo(
122
120
  }
123
121
  }
124
122
 
125
- interface Signal1DByDiaID {
126
- [key: string]: { [key: string]: NMRSignal1D };
127
- }
123
+ type Signal1DByDiaID = Record<string, Record<string, NMRSignal1D>>;
128
124
 
129
125
  export async function predict2D(
130
126
  molecule: Molecule,
@@ -134,7 +130,7 @@ export async function predict2D(
134
130
 
135
131
  molecule.addImplicitHydrogens();
136
132
 
137
- let {
133
+ const {
138
134
  from,
139
135
  to,
140
136
  diaIDs,
@@ -158,8 +154,8 @@ export async function predict2D(
158
154
  ? groupDiastereotopicAtomIDs(diaIDs, molecule)
159
155
  : getGroupedDiastereotopicAtomIDs(molecule);
160
156
 
161
- let diaIDswithAtomInfo: GroupDiastereotopicAtomIDsWithAtomInfo[] = [];
162
- for (let diaID of groupedDiaIDS) {
157
+ const diaIDswithAtomInfo: GroupDiastereotopicAtomIDsWithAtomInfo[] = [];
158
+ for (const diaID of groupedDiaIDS) {
163
159
  diaIDswithAtomInfo.push({
164
160
  ...diaID,
165
161
  pathInfo: JSON.parse(
@@ -191,7 +187,7 @@ export async function predict2D(
191
187
  throw new Error('predictions are not availaible');
192
188
  }
193
189
 
194
- const spectra: { [key: string]: Prediction1D } = {
190
+ const spectra: Record<string, Prediction1D> = {
195
191
  x: xPrediction,
196
192
  y: yPrediction,
197
193
  };
@@ -206,7 +202,7 @@ export async function predict2D(
206
202
  signalsByDiaID[axis][signal.diaIDs[0]] = signal;
207
203
  }
208
204
  }
209
- let group: { [key: string]: NMRSignal2D } = {};
205
+ const group: Record<string, NMRSignal2D> = {};
210
206
  for (const diaID of diaIDswithAtomInfo) {
211
207
  const pathInfo = diaID.pathInfo;
212
208
  if (pathInfo.paths.length < 1) continue;
@@ -217,7 +213,7 @@ export async function predict2D(
217
213
  for (const path of currentPaths) {
218
214
  if (!signalsByDiaID.y[pathsInfo[path.to].oclID]) continue;
219
215
 
220
- let fromToDiaID: { [key: string]: AtomInfo } = {
216
+ const fromToDiaID: Record<string, AtomInfo> = {
221
217
  x: pathInfo,
222
218
  y: pathsInfo[path.to],
223
219
  };
@@ -228,10 +224,10 @@ export async function predict2D(
228
224
  continue;
229
225
  }
230
226
 
231
- let peak: any = { id: generateID(), z: 100 };
232
- let signal: any = { id: generateID(), x: {}, y: {} };
233
- for (let axis in fromToDiaID) {
234
- let diaID = fromToDiaID[axis].oclID;
227
+ const peak: any = { id: generateID(), z: 100 };
228
+ const signal: any = { id: generateID(), x: {}, y: {} };
229
+ for (const axis in fromToDiaID) {
230
+ const diaID = fromToDiaID[axis].oclID;
235
231
  peak[axis] = signalsByDiaID[axis][diaID].delta;
236
232
  signal[axis].delta = signalsByDiaID[axis][diaID].delta;
237
233
  signal[axis].diaIDs = [diaID];
@@ -263,11 +259,11 @@ export async function predict2D(
263
259
  }
264
260
 
265
261
  function splitSignals(joinedSignals: NMRSignal2D[]) {
266
- let signals: NMRSignal2D[] = [];
262
+ const signals: NMRSignal2D[] = [];
267
263
  for (const signal of joinedSignals) {
268
264
  for (const xAtom of signal.x.atoms || []) {
269
265
  for (const yAtom of signal.y.atoms || []) {
270
- let newSignal = JSON.parse(JSON.stringify(signal));
266
+ const newSignal = JSON.parse(JSON.stringify(signal));
271
267
  newSignal.x.atoms = [xAtom];
272
268
  newSignal.y.atoms = [yAtom];
273
269
  signals.push(newSignal);
@@ -282,21 +278,21 @@ interface AddSelftCorrelationOptions {
282
278
  signalsByDiaID: Signal1DByDiaID;
283
279
  }
284
280
  function addSelftCorrelation(
285
- group: { [key: string]: NMRSignal2D },
281
+ group: Record<string, NMRSignal2D>,
286
282
  options: AddSelftCorrelationOptions,
287
283
  ) {
288
284
  const { paths = [], signalsByDiaID } = options;
289
285
  for (const atom of paths) {
290
286
  if (atom.paths.length < 1) continue;
291
287
 
292
- let diaID = atom.oclID;
288
+ const diaID = atom.oclID;
293
289
  if (!signalsByDiaID.x[diaID]) continue;
294
290
  if (group[`${diaID}-${diaID}`]) continue;
295
291
 
296
- let signal: any = { x: {}, y: {} };
292
+ const signal: any = { x: {}, y: {} };
297
293
 
298
- let peak: any = { z: 1 };
299
- for (let axis of ['x', 'y']) {
294
+ const peak: any = { z: 1 };
295
+ for (const axis of ['x', 'y']) {
300
296
  peak[axis] = signalsByDiaID[axis][diaID].delta;
301
297
  signal[axis].delta = signalsByDiaID[axis][diaID].delta;
302
298
  signal[axis].diaIDs = [diaID];
@@ -335,7 +331,7 @@ function createZones(signals: NMRSignal2D[], options: CreateZonesOptions) {
335
331
  Math.pow(joinDistance[to] / (maxY - minY), 2),
336
332
  );
337
333
 
338
- let hClusters = agnes(deltas.to2DArray(), { method: 'centroid' });
334
+ const hClusters = agnes(deltas.to2DArray(), { method: 'centroid' });
339
335
  const clusters = splitClusters([hClusters], cutOff);
340
336
 
341
337
  const zones: NMRZone[] = [];
@@ -376,7 +372,7 @@ function fromTo(signals: NMRSignal2D[], options: CreateZonesOptions) {
376
372
  }
377
373
 
378
374
  function splitClusters(clusters: Cluster[], maxDistance: number): Cluster[] {
379
- let originalLength = clusters.length;
375
+ const originalLength = clusters.length;
380
376
  for (let i = 0; i < clusters.length; i++) {
381
377
  const cluster = clusters[i];
382
378
  if (cluster.height > maxDistance) {