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
@@ -1,10 +1,11 @@
1
1
  import { DoubleArray } from 'cheminfo-types';
2
2
  import Matrix from 'ml-matrix';
3
3
  import {
4
+ DataReIm,
4
5
  reimAbsolute,
5
- reimAutoPhaseCorrection,
6
6
  reimFFT,
7
7
  reimPhaseCorrection,
8
+ xMultiply,
8
9
  } from 'ml-spectra-processing';
9
10
 
10
11
  import {
@@ -22,6 +23,7 @@ interface PhaseCorrection {
22
23
 
23
24
  export interface IndirectDimensionOptions {
24
25
  fnMode?: string;
26
+ reverse?: boolean;
25
27
  zeroFilling?: ZeroFillingOptions;
26
28
  apodization?: ApodizationFilterOptions;
27
29
  phaseCorrection?: PhaseCorrection;
@@ -31,93 +33,141 @@ export function fftIndirectDimension(
31
33
  data: { re: DoubleArray[] | Matrix; im: DoubleArray[] | Matrix },
32
34
  options: IndirectDimensionOptions,
33
35
  ) {
34
- const reData = Matrix.checkMatrix(data.re);
35
- const imData = Matrix.checkMatrix(data.im);
36
+ const newData: Record<string, Matrix> = {
37
+ re: Matrix.checkMatrix(data.re),
38
+ im: Matrix.checkMatrix(data.im),
39
+ };
36
40
 
37
- const nbRows = reData.rows;
38
- const nbColumns = reData.columns;
41
+ const nbRows = newData.re.rows;
42
+ const nbColumns = newData.re.columns;
39
43
 
40
- const { zeroFilling: zeroFillingF1 } = options;
44
+ const { zeroFilling: zeroFillingF1, reverse } = options;
41
45
  const { factor: f1Factor = 2 } = zeroFillingF1 || {};
42
- const nbPointsF1 =
46
+
47
+ const nbPoints =
43
48
  zeroFillingF1?.nbPoints || 2 ** Math.round(Math.log2(nbRows * f1Factor));
44
- const { apodization: apodizationF1 } = options;
45
- let {
46
- ph0: ph0F1,
47
- ph1: ph1F1,
48
- mode: pcModeF1,
49
- } = options.phaseCorrection || {};
50
-
51
- const reResult = new Matrix(nbPointsF1, nbColumns);
52
- const imResult = new Matrix(nbPointsF1, nbColumns);
53
- for (let i = 0; i < nbColumns; i++) {
54
- const { re: aRe, im: aIm } = apodization(
55
- {
56
- re: reData.getColumn(i),
57
- im: imData.getColumn(i),
58
- },
59
- apodizationF1,
60
- );
49
+ const { fnMode } = options;
61
50
 
62
- const newRe = [];
63
- const newIm = [];
64
- if (options.fnMode === 'echo') {
65
- for (let j = 0; j < aRe.length; j += 2) {
66
- newRe.push(aRe[j]);
67
- newIm.push(aRe[j + 1]);
51
+ const newOptions: IndirectDimensionOptions = {
52
+ ...options,
53
+ zeroFilling: { ...zeroFillingF1, nbPoints },
54
+ };
55
+ const quadrants: Record<string, Matrix> = {};
56
+ if (fnMode === 'QF') {
57
+ const reResult = new Matrix(nbPoints, nbColumns);
58
+ const imResult = new Matrix(nbPoints, nbColumns);
59
+ for (let i = 0; i < nbColumns; i++) {
60
+ const data = {
61
+ re: newData.re.getColumn(i),
62
+ im: reverse
63
+ ? newData.im.getColumn(i)
64
+ : xMultiply(newData.im.getColumn(i), -1),
65
+ };
66
+ const { re, im } = applyFFT(data, newOptions);
67
+ reResult.setColumn(i, re);
68
+ imResult.setColumn(i, im);
69
+ }
70
+ quadrants.rr = reResult;
71
+ quadrants.ir = imResult;
72
+ } else {
73
+ // four quadrant processing
74
+ for (const current in newData) {
75
+ const reResult = new Matrix(nbPoints, nbColumns);
76
+ const imResult = new Matrix(nbPoints, nbColumns);
77
+ for (let i = 0; i < nbColumns; i++) {
78
+ const data = getColumnFrom(newData[current], { fnMode, index: i });
79
+ const { re, im } = applyFFT(data, newOptions);
80
+ reResult.setColumn(i, re);
81
+ imResult.setColumn(i, im);
68
82
  }
69
- } else {
70
- for (let j = 0; j < aRe.length; j++) {
71
- newRe.push(aRe[j]);
72
- newIm.push(-aIm[j]);
83
+ if (current === 're') {
84
+ quadrants.rr = reResult;
85
+ quadrants.ir = imResult;
86
+ } else {
87
+ quadrants.ri = reResult;
88
+ quadrants.ii = imResult;
73
89
  }
74
90
  }
91
+ }
92
+ return quadrants;
93
+ }
94
+
95
+ function applyFFT(data: DataReIm, options: IndirectDimensionOptions) {
96
+ const {
97
+ fnMode,
98
+ apodization: apodizationF1,
99
+ zeroFilling: zeroFillingF1 = {},
100
+ phaseCorrection = {},
101
+ } = options;
102
+
103
+ const { re, im } = apodization(data, apodizationF1);
75
104
 
76
- let transformed = reimFFT(
77
- zeroFilling(
78
- {
79
- re: newRe,
80
- im: newIm,
81
- },
82
- { digitalFilterValue: 0, nbPoints: nbPointsF1 },
105
+ const { nbPoints = 0 } = zeroFillingF1;
106
+ const transformed = reimFFT(zeroFilling({ re, im }, { nbPoints }), {
107
+ applyZeroShift: !['SEQ', 'TPPI'].some((k) => fnMode === k),
108
+ });
109
+
110
+ if (options.phaseCorrection?.mode === 'mc') {
111
+ Object.assign(transformed, {
112
+ re: reimAbsolute(transformed),
113
+ im: new Float64Array(nbPoints),
114
+ });
115
+ }
116
+
117
+ const { mode: pcModeF1, ph0: ph0F1, ph1: ph1F1 } = phaseCorrection;
118
+ if (pcModeF1 === 'pk' && ph0F1 !== undefined && ph1F1 !== undefined) {
119
+ Object.assign(
120
+ transformed,
121
+ reimPhaseCorrection(
122
+ transformed,
123
+ (ph0F1 * Math.PI) / 180,
124
+ (ph1F1 * Math.PI) / 180,
83
125
  ),
84
- { applyZeroShift: true },
85
126
  );
86
- let { re, im } = transformed;
127
+ }
128
+ return transformed;
129
+ }
87
130
 
88
- if (options.phaseCorrection?.mode === 'mc') {
89
- re = reimAbsolute({ re, im });
90
- im = new Float64Array(im.length);
91
- }
131
+ function getColumnFrom(
132
+ data: Matrix,
133
+ info: { fnMode?: string; reverse?: boolean; index: number },
134
+ ) {
135
+ const { fnMode, index } = info;
136
+ const reverse = info.reverse || fnMode === 'QF';
137
+ const nbPoints = data.rows / 2;
138
+ const re = new Float64Array(nbPoints);
139
+ const im = new Float64Array(nbPoints);
92
140
 
93
- if (pcModeF1 === 'pk') {
94
- if (i === 0 && ph0F1 === undefined && ph1F1 === undefined) {
95
- //here we can improve it by checking if the experiment is phase sensitive.
96
- const phased = reimAutoPhaseCorrection(
97
- { re, im },
98
- { magnitudeMode: false },
99
- );
100
- ph0F1 = phased.ph0;
101
- ph1F1 = phased.ph1;
141
+ switch (fnMode?.toLocaleLowerCase()) {
142
+ // case 'states':
143
+ // case 'echo-antiecho':
144
+ case 'seq':
145
+ case 'tppi':
146
+ return {
147
+ re: data.getColumn(index),
148
+ im: new Float64Array(data.rows),
149
+ };
150
+ default:
151
+ if (reverse) {
152
+ for (let i = 0; i < nbPoints; i++) {
153
+ re[i] = data.get(2 * i, index);
154
+ im[i] = -data.get(2 * i + 1, index);
155
+ }
156
+ } else {
157
+ for (let i = 0; i < nbPoints; i++) {
158
+ re[i] = data.get(2 * i, index);
159
+ im[i] = data.get(2 * i + 1, index);
160
+ }
102
161
  }
103
- if (ph0F1 !== undefined && ph1F1 !== undefined) {
104
- Object.assign(
105
- transformed,
106
- reimPhaseCorrection(
107
- transformed,
108
- (ph0F1 * Math.PI) / 180,
109
- (ph1F1 * Math.PI) / 180,
110
- ),
111
- );
112
- }
113
- }
162
+ }
114
163
 
115
- reResult.setColumn(i, re);
116
- imResult.setColumn(i, im);
164
+ if (fnMode === 'states-ttpi') {
165
+ //it is to convert to the equivalent of states
166
+ for (let i = 0; i < nbPoints; i += 2) {
167
+ re[i] *= -1;
168
+ im[i] *= -1;
169
+ }
117
170
  }
118
171
 
119
- return {
120
- re: reResult,
121
- im: imResult,
122
- };
172
+ return { re, im };
123
173
  }
@@ -1,7 +1,7 @@
1
1
  import { DataReIm, xMean } from 'ml-spectra-processing';
2
2
 
3
3
  export function removeDCOffset(data: DataReIm, options: any) {
4
- let { digitalFilterValue = 0 } = options;
4
+ const { digitalFilterValue = 0 } = options;
5
5
  const nbPoints = data.re.length;
6
6
  const newRe = new Float64Array(data.re);
7
7
  const newIm = new Float64Array(data.im);
@@ -7,11 +7,10 @@ export interface ZeroFillingOptions {
7
7
  }
8
8
 
9
9
  export function zeroFilling(data: DataReIm, options: ZeroFillingOptions) {
10
- let { nbPoints, factor = 2, digitalFilterValue: grpdly = 0 } = options;
10
+ const { factor = 2, digitalFilterValue: grpdly = 0 } = options;
11
11
 
12
- if (!nbPoints) {
13
- nbPoints = 2 ** Math.round(Math.log2(data.re.length * factor));
14
- }
12
+ const nbPoints =
13
+ options.nbPoints || 2 ** Math.round(Math.log2(data.re.length * factor));
15
14
 
16
15
  let pointsToShift;
17
16
  if (grpdly > 0) {
@@ -22,8 +21,8 @@ export function zeroFilling(data: DataReIm, options: ZeroFillingOptions) {
22
21
 
23
22
  const { re, im } = data;
24
23
 
25
- let newRE = new Float64Array(nbPoints);
26
- let newIM = new Float64Array(nbPoints);
24
+ const newRE = new Float64Array(nbPoints);
25
+ const newIM = new Float64Array(nbPoints);
27
26
 
28
27
  const length = Math.min(nbPoints, re.length);
29
28
 
@@ -4,10 +4,10 @@ import { NMRSignal2DWithID } from '../xyzAutoSignalsPicking';
4
4
  import { NMRZoneWithID } from '../xyzAutoZonesPicking';
5
5
 
6
6
  export function formatZones(signals: NMRSignal2DWithID[]) {
7
- let zones: NMRZoneWithID[] = [];
7
+ const zones: NMRZoneWithID[] = [];
8
8
  for (const signal of signals) {
9
- let minMax1 = [Number.MAX_VALUE, 0];
10
- let minMax2 = [Number.MAX_VALUE, 0];
9
+ const minMax1 = [Number.MAX_VALUE, 0];
10
+ const minMax2 = [Number.MAX_VALUE, 0];
11
11
  for (const peak of signal.peaks || []) {
12
12
  if (peak.minX < minMax1[0]) {
13
13
  minMax1[0] = peak.minX;
@@ -0,0 +1,19 @@
1
+ export function getMinMaxXY(info: Record<string, any>) {
2
+ const min: number[] = [];
3
+ const max: number[] = [];
4
+ for (let i = 0; i < info.baseFrequency.length; i++) {
5
+ const baseFrequency = info.baseFrequency[i];
6
+ const frequencyOffset = info.frequencyOffset[i];
7
+ const spectralWidth = info.spectralWidth[i];
8
+ const offset = frequencyOffset / baseFrequency;
9
+ min.push(offset - spectralWidth * 0.5);
10
+ max.push(offset + spectralWidth * 0.5);
11
+ }
12
+
13
+ return {
14
+ minX: min[0],
15
+ maxX: max[0],
16
+ minY: min[1],
17
+ maxY: max[1],
18
+ };
19
+ }
@@ -4,23 +4,23 @@ export function padData(
4
4
  spectraData: NmrData2DContent,
5
5
  options: { width: number },
6
6
  ) {
7
- let { minX, maxX, minY, maxY } = spectraData;
7
+ const { minX, maxX, minY, maxY } = spectraData;
8
8
 
9
9
  const width = options.width;
10
10
 
11
- let nbPoints = spectraData.z[0].length;
12
- let nbSubSpectra = spectraData.z.length;
11
+ const nbPoints = spectraData.z[0].length;
12
+ const nbSubSpectra = spectraData.z.length;
13
13
 
14
- let yInterval = (maxY - minY) / (nbSubSpectra - 1);
15
- let xInterval = (maxX - minX) / (nbPoints - 1);
14
+ const yInterval = (maxY - minY) / (nbSubSpectra - 1);
15
+ const xInterval = (maxX - minX) / (nbPoints - 1);
16
16
 
17
17
  let yDiff = width - nbSubSpectra;
18
18
  let xDiff = Math.max(width - nbPoints, 0);
19
19
  if (xDiff % 2) xDiff++;
20
20
  if (yDiff % 2) yDiff++;
21
21
 
22
- let xOffset = xDiff / 2;
23
- let yOffset = yDiff / 2;
22
+ const xOffset = xDiff / 2;
23
+ const yOffset = yDiff / 2;
24
24
 
25
25
  const newMatrix: Float64Array[] = [];
26
26
  for (let i = 0; i < nbSubSpectra + yDiff; i++) {
@@ -0,0 +1,29 @@
1
+ import { NmrData2DFt } from 'cheminfo-types';
2
+ import { PhaseCorrectionOptions } from '../../xyzPhaseCorrectionDirectDimension';
3
+ import { getZMinMax } from './getZMinMax';
4
+ import Matrix from 'ml-matrix';
5
+ import { checkNmrData2DFourQuad } from './checkNmrData2DFourQuad';
6
+
7
+ export function applyOverImag<T extends NmrData2DFt>(
8
+ data: T,
9
+ options: PhaseCorrectionOptions,
10
+ ) {
11
+ checkNmrData2DFourQuad(data);
12
+ const { applyPhaseCorrection } = options;
13
+ const { re, im } = applyPhaseCorrection(
14
+ { re: Matrix.checkMatrix(data.ri.z), im: Matrix.checkMatrix(data.ii.z) },
15
+ options,
16
+ );
17
+
18
+ return {
19
+ ...data,
20
+ ri: {
21
+ ...data.ri,
22
+ ...getZMinMax(re),
23
+ },
24
+ ii: {
25
+ ...data.ii,
26
+ ...getZMinMax(im),
27
+ },
28
+ };
29
+ }
@@ -0,0 +1,29 @@
1
+ import { NmrData2DFt } from 'cheminfo-types';
2
+ import { checkNmrData2DTwoQuad } from './checkNmrData2DTwoQuad';
3
+ import Matrix from 'ml-matrix';
4
+ import { getZMinMax } from './getZMinMax';
5
+ import { PhaseCorrectionOptions } from '../../xyzPhaseCorrectionDirectDimension';
6
+
7
+ export function applyOverReal<T extends NmrData2DFt>(
8
+ data: T,
9
+ options: PhaseCorrectionOptions,
10
+ ) {
11
+ const { applyPhaseCorrection } = options;
12
+ checkNmrData2DTwoQuad(data);
13
+ const { re, im } = applyPhaseCorrection(
14
+ { re: Matrix.checkMatrix(data.rr.z), im: Matrix.checkMatrix(data.ir.z) },
15
+ options,
16
+ );
17
+
18
+ return {
19
+ ...data,
20
+ rr: {
21
+ ...data.rr,
22
+ ...getZMinMax(re),
23
+ },
24
+ ir: {
25
+ ...data.ir,
26
+ ...getZMinMax(im),
27
+ },
28
+ };
29
+ }
@@ -0,0 +1,12 @@
1
+ import { NmrData2DFt } from 'cheminfo-types';
2
+
3
+ export type NmrData2DFourQuadrant = Required<
4
+ Pick<NmrData2DFt, 'rr' | 'ir' | 'ri' | 'ii'>
5
+ >;
6
+ export function checkNmrData2DFourQuad(
7
+ data: NmrData2DFt,
8
+ ): asserts data is NmrData2DFourQuadrant {
9
+ if (!('ir' in data)) {
10
+ throw new Error('four quadrants should has ir, ri and ii quadrants');
11
+ }
12
+ }
@@ -0,0 +1,11 @@
1
+ import { NmrData2DFt } from 'cheminfo-types';
2
+
3
+ export type NmrData2DTwoQuadrant = Required<Pick<NmrData2DFt, 'rr' | 'ir'>>;
4
+
5
+ export function checkNmrData2DTwoQuad(
6
+ data: NmrData2DFt,
7
+ ): asserts data is NmrData2DTwoQuadrant {
8
+ if (!('ir' in data)) {
9
+ throw new Error('Two quadrants should has ir quadrant');
10
+ }
11
+ }
@@ -0,0 +1,10 @@
1
+ import Matrix from 'ml-matrix';
2
+ import { xEnsureFloat64 } from 'ml-spectra-processing';
3
+
4
+ export function getZMinMax(data: Matrix) {
5
+ return {
6
+ z: data.to2DArray().map(xEnsureFloat64),
7
+ maxZ: data.max(),
8
+ minZ: data.min(),
9
+ };
10
+ }
@@ -92,10 +92,9 @@ export function xyzAutoSignalsPicking(
92
92
  spectraData: NmrData2DContent,
93
93
  options: XYZAutoSignalsPickingOptions,
94
94
  ) {
95
- let {
95
+ const {
96
96
  sizeToPad = 14,
97
97
  realTopDetection = true,
98
- thresholdFactor = 0.5,
99
98
  nuclei = ['1H', '1H'],
100
99
  observedFrequencies,
101
100
  enhanceSymmetry = false,
@@ -106,6 +105,8 @@ export function xyzAutoSignalsPicking(
106
105
  kernel: kernelOptions,
107
106
  } = options;
108
107
 
108
+ let { thresholdFactor = 0.5 } = options;
109
+
109
110
  if (
110
111
  !Array.isArray(observedFrequencies) &&
111
112
  !ArrayBuffer.isView(observedFrequencies)
@@ -124,13 +125,13 @@ export function xyzAutoSignalsPicking(
124
125
  nbSubSpectra = spectraData.z.length;
125
126
  }
126
127
 
127
- let absoluteData = new Float64Array(nbPoints * nbSubSpectra);
128
- let originalData = new Float64Array(nbPoints * nbSubSpectra);
128
+ const absoluteData = new Float64Array(nbPoints * nbSubSpectra);
129
+ const originalData = new Float64Array(nbPoints * nbSubSpectra);
129
130
 
130
131
  for (let iSubSpectra = 0; iSubSpectra < nbSubSpectra; iSubSpectra++) {
131
- let spectrum = spectraData.z[iSubSpectra];
132
+ const spectrum = spectraData.z[iSubSpectra];
132
133
  for (let iCol = 0; iCol < nbPoints; iCol++) {
133
- let index = iSubSpectra * nbPoints + iCol;
134
+ const index = iSubSpectra * nbPoints + iCol;
134
135
  absoluteData[index] = Math.abs(spectrum[iCol]);
135
136
  originalData[index] = spectrum[iCol]; //@todo pensar si se puede evitar originalData
136
137
  }
@@ -138,7 +139,7 @@ export function xyzAutoSignalsPicking(
138
139
 
139
140
  const kernel = kernelOptions ? getKernel(kernelOptions) : smallFilter;
140
141
 
141
- let convolutedSpectrum = convolutionByFFT
142
+ const convolutedSpectrum = convolutionByFFT
142
143
  ? convolution.fft(absoluteData, kernel, {
143
144
  rows: nbSubSpectra,
144
145
  cols: nbPoints,
@@ -208,7 +209,7 @@ function createSignals2D<T extends Peak2D>(
208
209
  peaks: T[],
209
210
  options: CreateSignals2DOptions,
210
211
  ) {
211
- let {
212
+ const {
212
213
  nCols,
213
214
  nRows,
214
215
  absoluteData,
@@ -223,12 +224,12 @@ function createSignals2D<T extends Peak2D>(
223
224
  maxX,
224
225
  } = options;
225
226
 
226
- let [nucleusX, nucleusY] = nuclei;
227
- let [toleranceX, toleranceY] = tolerances;
228
- let [observeFrequencyX, observeFrequencyY] = observedFrequencies;
227
+ const [nucleusX, nucleusY] = nuclei;
228
+ const [toleranceX, toleranceY] = tolerances;
229
+ const [observeFrequencyX, observeFrequencyY] = observedFrequencies;
229
230
 
230
- let dy = (maxY - minY) / (nRows - 1);
231
- let dx = (maxX - minX) / (nCols - 1);
231
+ const dy = (maxY - minY) / (nRows - 1);
232
+ const dx = (maxX - minX) / (nCols - 1);
232
233
 
233
234
  if (realTopDetection) {
234
235
  peaks = determineRealTop(peaks, {
@@ -243,7 +244,7 @@ function createSignals2D<T extends Peak2D>(
243
244
  }
244
245
 
245
246
  for (let i = peaks.length - 1; i >= 0; i--) {
246
- let { x, y } = peaks[i];
247
+ const { x, y } = peaks[i];
247
248
  peaks[i].x = minX + dx * x;
248
249
  peaks[i].y = minY + dy * y;
249
250
  peaks[i].minX = minX + dx * peaks[i].minX;
@@ -255,7 +256,7 @@ function createSignals2D<T extends Peak2D>(
255
256
  }
256
257
  // The connectivity matrix is an square and symmetric matrix, so we'll only store the upper diagonal in an
257
258
  // array like form
258
- let connectivity = [];
259
+ const connectivity = [];
259
260
  for (let i = 0; i < peaks.length; i++) {
260
261
  for (let j = i; j < peaks.length; j++) {
261
262
  if (
@@ -269,12 +270,12 @@ function createSignals2D<T extends Peak2D>(
269
270
  }
270
271
  }
271
272
  }
272
- let clusters = simpleClustering(connectivity);
273
+ const clusters = simpleClustering(connectivity);
273
274
 
274
- let signals: NMRSignal2DWithID<T>[] = [];
275
+ const signals: Array<NMRSignal2DWithID<T>> = [];
275
276
  if (clusters) {
276
277
  for (const cluster of clusters) {
277
- let signal: any = {
278
+ const signal: any = {
278
279
  id: generateID(),
279
280
  x: {
280
281
  delta: 0,
@@ -287,7 +288,7 @@ function createSignals2D<T extends Peak2D>(
287
288
  resolution: dy,
288
289
  },
289
290
  };
290
- let peaks2D: T[] = [];
291
+ const peaks2D: T[] = [];
291
292
  let sumZ = 0;
292
293
 
293
294
  for (let jPeak = 0; jPeak < cluster.length; jPeak++) {
@@ -13,6 +13,7 @@ import {
13
13
  IndirectDimensionOptions,
14
14
  } from './util/fft2d/fftIndirectDimension';
15
15
  import { ZeroFillingOptions } from './util/fft2d/zeroFilling';
16
+ import { getMinMaxXY } from './util/getMinMaxXY';
16
17
 
17
18
  type Info2D = any;
18
19
 
@@ -100,23 +101,3 @@ function convertToDoubleArray(data: Matrix) {
100
101
  }
101
102
  return result;
102
103
  }
103
-
104
- function getMinMaxXY(info: Info2D) {
105
- const min: number[] = [];
106
- const max: number[] = [];
107
- for (let i = 0; i < info.baseFrequency.length; i++) {
108
- const baseFrequency = Number.parseFloat(info.baseFrequency[i]);
109
- const frequencyOffset = Number.parseFloat(info.frequencyOffset[i]);
110
- const spectralWidth = Number.parseFloat(info.spectralWidth[i]);
111
- const offset = frequencyOffset / baseFrequency;
112
- min.push(offset - spectralWidth * 0.5);
113
- max.push(offset + spectralWidth * 0.5);
114
- }
115
-
116
- return {
117
- minX: min[0],
118
- maxX: max[0],
119
- minY: min[1],
120
- maxY: max[1],
121
- };
122
- }