nmr-processing 5.0.0 → 6.0.3

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 (282) hide show
  1. package/lib/assignment/get13CAssignments.js.map +1 -1
  2. package/lib/assignment/get1HAssignments.d.ts +2 -2
  3. package/lib/{types → assignment}/nmrAssigment.d.ts +2 -2
  4. package/lib/{types → assignment}/nmrAssigment.js +0 -0
  5. package/lib/assignment/nmrAssigment.js.map +1 -0
  6. package/lib/assignment/utils/buildAssignments.js.map +1 -1
  7. package/lib/assignment/utils/createMapPossibleAssignments.d.ts +1 -1
  8. package/lib/assignment/utils/createMapPossibleAssignments.js.map +1 -1
  9. package/lib/constants/couplingValues.js.map +1 -1
  10. package/lib/databases/DatabaseNMREntry.d.ts +1 -1
  11. package/lib/index.d.ts +9 -10
  12. package/lib/index.js +1 -1
  13. package/lib/ml-matrix-convolution.d.ts +8 -0
  14. package/lib/ml-matrix-convolution.js +2 -0
  15. package/lib/ml-matrix-convolution.js.map +1 -0
  16. package/lib/ml-simple-clustering.d.ts +8 -0
  17. package/lib/ml-simple-clustering.js +2 -0
  18. package/lib/ml-simple-clustering.js.map +1 -0
  19. package/lib/{types → peaks}/NMRPeak1D.d.ts +0 -0
  20. package/lib/{types → peaks}/NMRPeak1D.js +0 -0
  21. package/lib/{types → peaks}/NMRPeak1D.js.map +1 -1
  22. package/lib/peaks/peaksFilterImpurities.d.ts +1 -1
  23. package/lib/peaks/peaksFilterImpurities.js.map +1 -1
  24. package/lib/peaks/peaksToRanges.d.ts +2 -2
  25. package/lib/peaks/util/determineRealTop.d.ts +2 -2
  26. package/lib/peaks/util/determineRealTop.js.map +1 -1
  27. package/lib/peaks/util/jAnalyzer.d.ts +2 -2
  28. package/lib/peaks/util/jAnalyzer.js +4 -3
  29. package/lib/peaks/util/jAnalyzer.js.map +1 -1
  30. package/lib/peaks/util/joinRanges.d.ts +1 -1
  31. package/lib/peaks/util/peakOptimizer.d.ts +3 -3
  32. package/lib/peaks/util/peakOptimizer.js.map +1 -1
  33. package/lib/{types → prediction}/dataStructure.d.ts +0 -0
  34. package/lib/{types → prediction}/dataStructure.js +0 -0
  35. package/lib/prediction/dataStructure.js.map +1 -0
  36. package/lib/prediction/predictAll.d.ts +1 -1
  37. package/lib/prediction/predictAll.js +1 -1
  38. package/lib/prediction/predictAll.js.map +1 -1
  39. package/lib/prediction/predictCOSY.d.ts +1 -1
  40. package/lib/prediction/predictCOSY.js.map +1 -1
  41. package/lib/prediction/predictCarbon.d.ts +2 -2
  42. package/lib/prediction/predictCarbon.js.map +1 -1
  43. package/lib/prediction/predictHMBC.d.ts +1 -1
  44. package/lib/prediction/predictHMBC.js.map +1 -1
  45. package/lib/prediction/predictHSQC.d.ts +1 -1
  46. package/lib/prediction/predictHSQC.js.map +1 -1
  47. package/lib/prediction/predictProton.d.ts +1 -1
  48. package/lib/prediction/predictProton.js +2 -2
  49. package/lib/prediction/predictProton.js.map +1 -1
  50. package/lib/{types → prediction}/prediction1D.d.ts +2 -2
  51. package/lib/{types → prediction}/prediction1D.js +0 -0
  52. package/lib/prediction/prediction1D.js.map +1 -0
  53. package/lib/prediction/utils/fetchPrediction.d.ts +1 -1
  54. package/lib/prediction/utils/getFilteredIDiaIDs.d.ts +1 -1
  55. package/lib/prediction/utils/getFilteredIDiaIDs.js.map +1 -1
  56. package/lib/prediction/utils/getNuclei.js +1 -1
  57. package/lib/prediction/utils/getNuclei.js.map +1 -1
  58. package/lib/prediction/utils/getPredictions.d.ts +2 -2
  59. package/lib/prediction/utils/getPredictions.js +1 -1
  60. package/lib/prediction/utils/getPredictions.js.map +1 -1
  61. package/lib/prediction/utils/predict2D.d.ts +2 -2
  62. package/lib/prediction/utils/queryByHOSE.d.ts +1 -1
  63. package/lib/prediction/utils/queryByHOSE.js.map +1 -1
  64. package/lib/ranges/rangesToACS.d.ts +1 -1
  65. package/lib/ranges/rangesToACS.js +8 -9
  66. package/lib/ranges/rangesToACS.js.map +1 -1
  67. package/lib/ranges/rangesToXY.d.ts +1 -1
  68. package/lib/ranges/rangesToXY.js.map +1 -1
  69. package/lib/signal/signalJoinCouplings.d.ts +2 -2
  70. package/lib/signal/signalJoinCouplings.js +3 -3
  71. package/lib/signal/signalJoinCouplings.js.map +1 -1
  72. package/lib/signal/signalMultiplicityPattern.d.ts +1 -1
  73. package/lib/{types → signals}/NMRSignal1D.d.ts +1 -1
  74. package/lib/{types → signals}/NMRSignal1D.js +0 -0
  75. package/lib/{types → signals}/NMRSignal1D.js.map +1 -1
  76. package/lib/signals/hackSignalsToXY.d.ts +1 -1
  77. package/lib/{types → signals}/jcoupling.d.ts +1 -1
  78. package/lib/{types → signals}/jcoupling.js +0 -0
  79. package/lib/{types → signals}/jcoupling.js.map +1 -1
  80. package/lib/signals/signals2DToZ.d.ts +1 -1
  81. package/lib/signals/signalsJoin.d.ts +4 -4
  82. package/lib/signals/signalsJoin.js +7 -7
  83. package/lib/signals/signalsJoin.js.map +1 -1
  84. package/lib/signals/signalsToRanges.d.ts +2 -2
  85. package/lib/signals/signalsToRanges.js.map +1 -1
  86. package/lib/signals/signalsToXY.d.ts +1 -1
  87. package/lib/signals/simulation/signalsToSpinSystem.d.ts +2 -2
  88. package/lib/signals/simulation/simulate1D.d.ts +1 -1
  89. package/lib/signals/simulation/simulate1D.js +2 -1
  90. package/lib/signals/simulation/simulate1D.js.map +1 -1
  91. package/lib/signals/simulation/splitSpinSystem.d.ts +1 -1
  92. package/lib/signals/simulation/splitSpinSystem.js.map +1 -1
  93. package/lib/{types → signals}/spinSystem.d.ts +0 -0
  94. package/lib/{types → signals}/spinSystem.js +0 -0
  95. package/lib/{types → signals}/spinSystem.js.map +1 -1
  96. package/lib/{types → utilities}/MakeMandatory.d.ts +0 -0
  97. package/lib/{types → utilities}/MakeMandatory.js +0 -0
  98. package/lib/utilities/MakeMandatory.js.map +1 -0
  99. package/lib/utilities/joinPatterns.js.map +1 -1
  100. package/lib/utilities/rangeFromSignal.d.ts +1 -1
  101. package/lib/utilities/resurrect.d.ts +1 -1
  102. package/lib/utilities/resurrectRange.d.ts +1 -1
  103. package/lib/{types → xy}/NMRRange.d.ts +1 -1
  104. package/lib/{types → xy}/NMRRange.js +0 -0
  105. package/lib/{types → xy}/NMRRange.js.map +1 -1
  106. package/lib/xy/xyAutoPeaksPicking.d.ts +2 -2
  107. package/lib/xy/xyAutoRangesPicking.d.ts +2 -2
  108. package/lib/xy/xyAutoRangesPicking.js.map +1 -1
  109. package/lib/{types → xyz}/NMRSignal2D.d.ts +6 -5
  110. package/lib/{types → xyz}/NMRSignal2D.js +0 -0
  111. package/lib/{types → xyz}/NMRSignal2D.js.map +1 -1
  112. package/lib/xyz/NMRZone.d.ts +8 -0
  113. package/lib/{types → xyz}/NMRZone.js +0 -0
  114. package/lib/{types → xyz}/NMRZone.js.map +1 -1
  115. package/lib/xyz/{xyzAutoPeaksPicking.d.ts → xyzAutoZonesPicking.d.ts} +3 -3
  116. package/lib/xyz/{xyzAutoPeaksPicking.js → xyzAutoZonesPicking.js} +38 -26
  117. package/lib/xyz/xyzAutoZonesPicking.js.map +1 -0
  118. package/lib/xyz/xyzJResAnalyzer.d.ts +1 -1
  119. package/lib/xyz/xyzJResAnalyzer.js.map +1 -1
  120. package/lib-esm/assignment/get13CAssignments.js.map +1 -1
  121. package/lib-esm/{types → assignment}/nmrAssigment.js +0 -0
  122. package/lib-esm/assignment/nmrAssigment.js.map +1 -0
  123. package/lib-esm/assignment/utils/buildAssignments.js.map +1 -1
  124. package/lib-esm/assignment/utils/createMapPossibleAssignments.js.map +1 -1
  125. package/lib-esm/constants/couplingValues.js.map +1 -1
  126. package/lib-esm/index.js +1 -1
  127. package/lib-esm/ml-matrix-convolution.js +2 -0
  128. package/lib-esm/ml-matrix-convolution.js.map +1 -0
  129. package/lib-esm/ml-simple-clustering.js +2 -0
  130. package/lib-esm/ml-simple-clustering.js.map +1 -0
  131. package/lib-esm/{types → peaks}/NMRPeak1D.js +0 -0
  132. package/lib-esm/{types → peaks}/NMRPeak1D.js.map +1 -1
  133. package/lib-esm/peaks/peaksFilterImpurities.js.map +1 -1
  134. package/lib-esm/peaks/util/determineRealTop.js.map +1 -1
  135. package/lib-esm/peaks/util/jAnalyzer.js +4 -3
  136. package/lib-esm/peaks/util/jAnalyzer.js.map +1 -1
  137. package/lib-esm/peaks/util/peakOptimizer.js.map +1 -1
  138. package/lib-esm/{types → prediction}/dataStructure.js +0 -0
  139. package/lib-esm/prediction/dataStructure.js.map +1 -0
  140. package/lib-esm/prediction/predictAll.js +1 -1
  141. package/lib-esm/prediction/predictAll.js.map +1 -1
  142. package/lib-esm/prediction/predictCOSY.js.map +1 -1
  143. package/lib-esm/prediction/predictCarbon.js.map +1 -1
  144. package/lib-esm/prediction/predictHMBC.js.map +1 -1
  145. package/lib-esm/prediction/predictHSQC.js.map +1 -1
  146. package/lib-esm/prediction/predictProton.js +2 -2
  147. package/lib-esm/prediction/predictProton.js.map +1 -1
  148. package/lib-esm/{types → prediction}/prediction1D.js +0 -0
  149. package/lib-esm/prediction/prediction1D.js.map +1 -0
  150. package/lib-esm/prediction/utils/getFilteredIDiaIDs.js.map +1 -1
  151. package/lib-esm/prediction/utils/getNuclei.js +1 -1
  152. package/lib-esm/prediction/utils/getNuclei.js.map +1 -1
  153. package/lib-esm/prediction/utils/getPredictions.js +1 -1
  154. package/lib-esm/prediction/utils/getPredictions.js.map +1 -1
  155. package/lib-esm/prediction/utils/queryByHOSE.js.map +1 -1
  156. package/lib-esm/ranges/rangesToACS.js +8 -9
  157. package/lib-esm/ranges/rangesToACS.js.map +1 -1
  158. package/lib-esm/ranges/rangesToXY.js.map +1 -1
  159. package/lib-esm/signal/signalJoinCouplings.js +3 -3
  160. package/lib-esm/signal/signalJoinCouplings.js.map +1 -1
  161. package/lib-esm/{types → signals}/NMRSignal1D.js +0 -0
  162. package/lib-esm/{types → signals}/NMRSignal1D.js.map +1 -1
  163. package/lib-esm/{types → signals}/jcoupling.js +0 -0
  164. package/lib-esm/{types → signals}/jcoupling.js.map +1 -1
  165. package/lib-esm/signals/signalsJoin.js +7 -7
  166. package/lib-esm/signals/signalsJoin.js.map +1 -1
  167. package/lib-esm/signals/signalsToRanges.js.map +1 -1
  168. package/lib-esm/signals/simulation/simulate1D.js +2 -1
  169. package/lib-esm/signals/simulation/simulate1D.js.map +1 -1
  170. package/lib-esm/signals/simulation/splitSpinSystem.js.map +1 -1
  171. package/lib-esm/{types → signals}/spinSystem.js +0 -0
  172. package/lib-esm/{types → signals}/spinSystem.js.map +1 -1
  173. package/lib-esm/{types → utilities}/MakeMandatory.js +0 -0
  174. package/lib-esm/utilities/MakeMandatory.js.map +1 -0
  175. package/lib-esm/utilities/joinPatterns.js.map +1 -1
  176. package/lib-esm/{types → xy}/NMRRange.js +0 -0
  177. package/lib-esm/{types → xy}/NMRRange.js.map +1 -1
  178. package/lib-esm/xy/xyAutoRangesPicking.js.map +1 -1
  179. package/lib-esm/{types → xyz}/NMRSignal2D.js +0 -0
  180. package/lib-esm/{types → xyz}/NMRSignal2D.js.map +1 -1
  181. package/lib-esm/{types → xyz}/NMRZone.js +0 -0
  182. package/lib-esm/{types → xyz}/NMRZone.js.map +1 -1
  183. package/lib-esm/xyz/{xyzAutoPeaksPicking.js → xyzAutoZonesPicking.js} +36 -24
  184. package/lib-esm/xyz/xyzAutoZonesPicking.js.map +1 -0
  185. package/lib-esm/xyz/xyzJResAnalyzer.js.map +1 -1
  186. package/package.json +27 -36
  187. package/src/assignment/get13CAssignments.ts +5 -2
  188. package/src/assignment/get1HAssignments.ts +2 -2
  189. package/src/{types → assignment}/nmrAssigment.ts +2 -2
  190. package/src/assignment/utils/buildAssignments.ts +1 -4
  191. package/src/assignment/utils/createMapPossibleAssignments.ts +5 -2
  192. package/src/constants/couplingValues.ts +1 -1
  193. package/src/databases/DatabaseNMREntry.ts +1 -1
  194. package/src/index.ts +9 -10
  195. package/src/{types/ml-levenberg-marquardt/index.d.ts → ml-levenberg-marquardt.d.ts} +0 -0
  196. package/src/{types/ml-matrix-convolution/index.d.ts → ml-matrix-convolution.ts} +0 -0
  197. package/src/{types/ml-matrix-peaks-finder/index.d.ts → ml-matrix-peaks-finder.d.ts} +2 -2
  198. package/src/{types/ml-simple-clustering/index.d.ts → ml-simple-clustering.ts} +1 -1
  199. package/src/{types/ml-sparse-matrix/index.d.ts → ml-sparse-matrix.d.ts} +0 -0
  200. package/src/{types/ml-spectra-processing/index.d.ts → ml-spectra-processing.d.ts} +8 -2
  201. package/src/{types/ml-tree-set/index.d.ts → ml-tree-set.d.ts} +0 -0
  202. package/src/nmr-parser.d.ts +17 -0
  203. package/src/{types/openchemlib-utils/index..d.ts → openchemlib.d.ts} +17 -6
  204. package/src/{types → peaks}/NMRPeak1D.ts +0 -0
  205. package/src/peaks/peaksFilterImpurities.ts +2 -1
  206. package/src/peaks/peaksToRanges.ts +4 -4
  207. package/src/peaks/util/determineRealTop.ts +3 -4
  208. package/src/peaks/util/jAnalyzer.ts +9 -9
  209. package/src/peaks/util/joinRanges.ts +1 -1
  210. package/src/peaks/util/peakOptimizer.ts +5 -4
  211. package/src/{types → prediction}/dataStructure.ts +1 -1
  212. package/src/prediction/predictAll.ts +6 -7
  213. package/src/prediction/predictCOSY.ts +1 -2
  214. package/src/prediction/predictCarbon.ts +4 -4
  215. package/src/prediction/predictHMBC.ts +1 -2
  216. package/src/prediction/predictHSQC.ts +5 -3
  217. package/src/prediction/predictProton.ts +5 -4
  218. package/src/{types → prediction}/prediction1D.ts +2 -2
  219. package/src/prediction/utils/fetchPrediction.ts +1 -1
  220. package/src/prediction/utils/getFilteredIDiaIDs.ts +1 -2
  221. package/src/prediction/utils/getNuclei.ts +3 -3
  222. package/src/prediction/utils/getPredictions.ts +4 -4
  223. package/src/prediction/utils/predict2D.ts +4 -4
  224. package/src/prediction/utils/queryByHOSE.ts +2 -2
  225. package/src/ranges/rangesToACS.ts +20 -13
  226. package/src/ranges/rangesToXY.ts +3 -3
  227. package/src/signal/signalJoinCouplings.ts +6 -6
  228. package/src/signal/signalMultiplicityPattern.ts +1 -1
  229. package/src/{types → signals}/NMRSignal1D.ts +2 -1
  230. package/src/signals/hackSignalsToXY.ts +2 -2
  231. package/src/{types → signals}/jcoupling.ts +1 -1
  232. package/src/signals/signals2DToZ.ts +1 -1
  233. package/src/signals/signalsJoin.ts +11 -10
  234. package/src/signals/signalsToRanges.ts +4 -3
  235. package/src/signals/signalsToXY.ts +4 -4
  236. package/src/signals/simulation/signalsToSpinSystem.ts +4 -4
  237. package/src/signals/simulation/simulate1D.ts +3 -2
  238. package/src/signals/simulation/splitSpinSystem.ts +11 -3
  239. package/src/{types → signals}/spinSystem.ts +0 -0
  240. package/src/{types → utilities}/MakeMandatory.ts +0 -0
  241. package/src/utilities/joinPatterns.ts +0 -1
  242. package/src/utilities/rangeFromSignal.ts +1 -1
  243. package/src/utilities/resurrect.ts +1 -1
  244. package/src/utilities/resurrectRange.ts +2 -2
  245. package/src/{types → xy}/NMRRange.ts +1 -1
  246. package/src/xy/xyAutoPeaksPicking.ts +6 -6
  247. package/src/xy/xyAutoRangesPicking.ts +3 -2
  248. package/src/{types → xyz}/NMRSignal2D.ts +6 -6
  249. package/src/xyz/NMRZone.ts +10 -0
  250. package/src/xyz/{xyzAutoPeaksPicking.ts → xyzAutoZonesPicking.ts} +44 -29
  251. package/src/xyz/xyzJResAnalyzer.ts +7 -6
  252. package/CHANGELOG.md +0 -572
  253. package/lib/types/MPFPeak.d.ts +0 -9
  254. package/lib/types/MPFPeak.js +0 -3
  255. package/lib/types/MPFPeak.js.map +0 -1
  256. package/lib/types/MakeMandatory.js.map +0 -1
  257. package/lib/types/NMRZone.d.ts +0 -12
  258. package/lib/types/XYNumberArray.d.ts +0 -4
  259. package/lib/types/XYNumberArray.js +0 -3
  260. package/lib/types/XYNumberArray.js.map +0 -1
  261. package/lib/types/dataStructure.js.map +0 -1
  262. package/lib/types/nmrAssigment.js.map +0 -1
  263. package/lib/types/prediction1D.js.map +0 -1
  264. package/lib/types/prediction2D.d.ts +0 -0
  265. package/lib/types/prediction2D.js +0 -2
  266. package/lib/types/prediction2D.js.map +0 -1
  267. package/lib/xyz/xyzAutoPeaksPicking.js.map +0 -1
  268. package/lib-esm/types/MPFPeak.js +0 -2
  269. package/lib-esm/types/MPFPeak.js.map +0 -1
  270. package/lib-esm/types/MakeMandatory.js.map +0 -1
  271. package/lib-esm/types/XYNumberArray.js +0 -2
  272. package/lib-esm/types/XYNumberArray.js.map +0 -1
  273. package/lib-esm/types/dataStructure.js.map +0 -1
  274. package/lib-esm/types/nmrAssigment.js.map +0 -1
  275. package/lib-esm/types/prediction1D.js.map +0 -1
  276. package/lib-esm/types/prediction2D.js +0 -2
  277. package/lib-esm/types/prediction2D.js.map +0 -1
  278. package/lib-esm/xyz/xyzAutoPeaksPicking.js.map +0 -1
  279. package/src/types/MPFPeak.ts +0 -9
  280. package/src/types/NMRZone.ts +0 -10
  281. package/src/types/XYNumberArray.ts +0 -4
  282. package/src/types/prediction2D.ts +0 -0
@@ -2,10 +2,10 @@ import rescale from 'ml-array-rescale';
2
2
  import arraySequentialFill from 'ml-array-sequential-fill';
3
3
  import type { Shape1D } from 'ml-peak-shape-generator';
4
4
 
5
- import type { MakeMandatory } from '../types/MakeMandatory';
6
- import type { NMRSignal1D } from '../types/NMRSignal1D';
7
- import type { Jcoupling } from '../types/jcoupling';
5
+ import type { MakeMandatory } from '../utilities/MakeMandatory';
8
6
 
7
+ import type { NMRSignal1D } from './NMRSignal1D';
8
+ import type { Jcoupling } from './jcoupling';
9
9
  import { signalsToSpinSystem } from './simulation/signalsToSpinSystem';
10
10
  import simulate1D from './simulation/simulate1D';
11
11
  import { splitSpinSystem } from './simulation/splitSpinSystem';
@@ -48,7 +48,7 @@ export interface OptionsSignalsToXY {
48
48
  maxClusterSize?: number;
49
49
  }
50
50
 
51
- type JcouplingFromPrediction = MakeMandatory<Jcoupling, 'distance'>;
51
+ type JcouplingFromPrediction = MakeMandatory<Jcoupling, 'pathLength'>;
52
52
  type Signal1DWidthAtomsIDsAndDiaID = MakeMandatory<NMRSignal1D, 'atoms'>;
53
53
  type Signal1DWidthJsAndDiaID = Omit<Signal1DWidthAtomsIDsAndDiaID, 'js'> & {
54
54
  js: JcouplingFromPrediction[];
@@ -1,10 +1,10 @@
1
1
  import { Matrix } from 'ml-matrix';
2
2
  import simpleClustering from 'ml-simple-clustering';
3
3
 
4
- import type { MakeMandatory } from '../../types/MakeMandatory';
5
- import type { NMRSignal1D } from '../../types/NMRSignal1D';
6
- import type { Jcoupling } from '../../types/jcoupling';
7
- import type { SpinSystem } from '../../types/spinSystem';
4
+ import type { MakeMandatory } from '../../utilities/MakeMandatory';
5
+ import type { NMRSignal1D } from '../NMRSignal1D';
6
+ import type { Jcoupling } from '../jcoupling';
7
+ import type { SpinSystem } from '../spinSystem';
8
8
 
9
9
  interface Ids {
10
10
  [index: number]: number;
@@ -6,7 +6,7 @@ import type { Shape1D } from 'ml-peak-shape-generator';
6
6
  import { SparseMatrix } from 'ml-sparse-matrix';
7
7
  import { SpectrumGenerator } from 'spectrum-generator';
8
8
 
9
- import type { SpinSystem } from '../../types/spinSystem';
9
+ import type { SpinSystem } from '../spinSystem';
10
10
 
11
11
  import getPauliMatrix from './getPauliMatrix';
12
12
 
@@ -133,7 +133,8 @@ export default function simulate1D(
133
133
  clusterFake,
134
134
  );
135
135
  const hamSize = hamiltonian.rows;
136
- //@ts-expect-error
136
+ // TODO: add support for sparse matrix in matrix types.
137
+ // @ts-expect-error sparse matrix not supported
137
138
  const evd = new EVD(hamiltonian);
138
139
  const V = evd.eigenvectorMatrix;
139
140
  const diagB = evd.realEigenvalues;
@@ -2,7 +2,7 @@ import { agnes } from 'ml-hclust';
2
2
  import type { Cluster } from 'ml-hclust';
3
3
  import { Matrix } from 'ml-matrix';
4
4
 
5
- import type { SpinSystem } from '../../types/spinSystem';
5
+ import type { SpinSystem } from '../spinSystem';
6
6
 
7
7
  export interface SplitSpinSystemOptions {
8
8
  /**
@@ -53,7 +53,11 @@ interface SplitClusterOptions {
53
53
  connectivity: Matrix;
54
54
  }
55
55
 
56
- function splitCluster(cluster: Cluster, clusterList: Array<Int16Array>, options: SplitClusterOptions) {
56
+ function splitCluster(
57
+ cluster: Cluster,
58
+ clusterList: Array<Int16Array>,
59
+ options: SplitClusterOptions,
60
+ ) {
57
61
  let { maxClusterSize, force, nSpins, connectivity } = options;
58
62
  if (!force && cluster.size <= maxClusterSize) {
59
63
  clusterList.push(getMembers(cluster.indices(), nSpins));
@@ -102,7 +106,11 @@ function splitCluster(cluster: Cluster, clusterList: Array<Int16Array>, options:
102
106
  }
103
107
  }
104
108
 
105
- function calculateBetas(chemicalShifts: number[], couplingConstants: Matrix, frequency: number) {
109
+ function calculateBetas(
110
+ chemicalShifts: number[],
111
+ couplingConstants: Matrix,
112
+ frequency: number,
113
+ ) {
106
114
  let nRows = couplingConstants.rows;
107
115
  let nColumns = couplingConstants.columns;
108
116
  let betas = Matrix.zeros(nRows, nRows);
File without changes
File without changes
@@ -1,7 +1,6 @@
1
1
  import { couplingPatterns } from '../constants/couplingPatterns';
2
2
  import { couplingValues } from '../constants/couplingValues';
3
3
 
4
-
5
4
  export function joinPatterns(patterns: string[]) {
6
5
  const sum = patterns.reduce((sum, pattern) => {
7
6
  if (isNaN(couplingValues[pattern])) {
@@ -1,5 +1,5 @@
1
1
  import { couplingValues } from '../constants/couplingValues';
2
- import type { NMRSignal1D } from '../types/NMRSignal1D';
2
+ import type { NMRSignal1D } from '../signals/NMRSignal1D';
3
3
 
4
4
  export interface RangeFromSignalOptions {
5
5
  /**
@@ -1,4 +1,4 @@
1
- import type { NMRRange } from '../types/NMRRange';
1
+ import type { NMRRange } from '../xy/NMRRange';
2
2
 
3
3
  import { resurrectRange } from './resurrectRange';
4
4
  import { splitParenthesis } from './splitParenthesis';
@@ -1,5 +1,5 @@
1
- import type { NMRRange } from '../types/NMRRange';
2
- import type { NMRSignal1D } from '../types/NMRSignal1D';
1
+ import type { NMRSignal1D } from '../signals/NMRSignal1D';
2
+ import type { NMRRange } from '../xy/NMRRange';
3
3
 
4
4
  import { rangeFromSignal } from './rangeFromSignal';
5
5
  import { splitParenthesis } from './splitParenthesis';
@@ -1,4 +1,4 @@
1
- import type { NMRSignal1D } from './NMRSignal1D';
1
+ import type { NMRSignal1D } from '../signals/NMRSignal1D';
2
2
 
3
3
  export interface NMRRange {
4
4
  from: number;
@@ -2,9 +2,9 @@ import { DataXY } from 'cheminfo-types';
2
2
  import { gsd, joinBroadPeaks, optimizePeaks } from 'ml-gsd';
3
3
  import type {
4
4
  Peak1D,
5
- IGSDOptions,
6
- IOptimizePeaksOptions,
7
- IJoinBroadPeaksOptions,
5
+ GSDOptions,
6
+ OptimizePeaksOptions,
7
+ JoinBroadPeaksOptions,
8
8
  } from 'ml-gsd';
9
9
  import {
10
10
  xyExtract,
@@ -26,9 +26,9 @@ interface OptionsGetCutOff {
26
26
  }
27
27
 
28
28
  export interface IGetPeakListOptions
29
- extends IGSDOptions,
30
- IOptimizePeaksOptions,
31
- IJoinBroadPeaksOptions {
29
+ extends GSDOptions,
30
+ OptimizePeaksOptions,
31
+ JoinBroadPeaksOptions {
32
32
  /**
33
33
  * If it is true, the peaks parameters will be optimized.
34
34
  * @default false
@@ -1,7 +1,8 @@
1
+ import type { DataXY } from 'cheminfo-types';
2
+
1
3
  import { peaksFilterImpurities } from '../peaks/peaksFilterImpurities';
2
4
  import type { OptionsPeaksFilterImpurities } from '../peaks/peaksFilterImpurities';
3
5
  import { OptionsPeaksToRanges, peaksToRanges } from '../peaks/peaksToRanges';
4
- import type { XYNumberArray } from '../types/XYNumberArray';
5
6
 
6
7
  import { xyAutoPeaksPicking } from './xyAutoPeaksPicking';
7
8
  import type { OptionsXYAutoPeaksPicking } from './xyAutoPeaksPicking';
@@ -16,7 +17,7 @@ interface OptionsXYAutoRangesPicking {
16
17
  * Detect peaks, optimize parameters and compile multiplicity if required.
17
18
  */
18
19
  export function xyAutoRangesPicking(
19
- data: XYNumberArray,
20
+ data: DataXY,
20
21
  options: OptionsXYAutoRangesPicking = {},
21
22
  ) {
22
23
  let peaks = xyAutoPeaksPicking(data, options.peakPicking);
@@ -1,4 +1,5 @@
1
- import type { MPFPeak } from './MPFPeak';
1
+ import type { FromTo } from 'cheminfo-types';
2
+ import type { Peak2D } from 'ml-matrix-peaks-finder';
2
3
 
3
4
  export interface Signal2DAxisData {
4
5
  nucleus?: string;
@@ -6,15 +7,14 @@ export interface Signal2DAxisData {
6
7
  resolution?: number;
7
8
  atoms?: number[];
8
9
  diaIDs?: string[];
9
- from: number;
10
- to: number;
11
10
  }
12
11
  export interface NMRSignal2D {
13
12
  x: Signal2DAxisData;
14
13
  y: Signal2DAxisData;
14
+ j?: {
15
+ pathLength?: number | FromTo;
16
+ };
15
17
  id?: string;
16
- peaks?: MPFPeak[];
18
+ peaks?: Peak2D[];
17
19
  kind?: string;
18
- //eslint-disable-next-line
19
- _highlight?: (number | string)[];
20
20
  }
@@ -0,0 +1,10 @@
1
+ import type { FromTo } from 'cheminfo-types';
2
+
3
+ import type { NMRSignal2D } from './NMRSignal2D';
4
+
5
+ export interface NMRZone {
6
+ x: FromTo;
7
+ y: FromTo;
8
+ id?: string;
9
+ signals: NMRSignal2D[];
10
+ }
@@ -1,14 +1,16 @@
1
1
  import { Matrix } from 'ml-matrix';
2
2
  import * as convolution from 'ml-matrix-convolution';
3
3
  import * as matrixPeakFinders from 'ml-matrix-peaks-finder';
4
+ import type { Peak2D } from 'ml-matrix-peaks-finder';
4
5
  import simpleClustering from 'ml-simple-clustering';
5
6
 
7
+ import { NMRZone } from '..';
6
8
  import { determineRealTop } from '../peaks/util/determineRealTop';
7
9
  import { getKernel } from '../peaks/util/getKernel';
8
10
  import type { GetKernelOptions } from '../peaks/util/getKernel';
9
11
  import * as PeakOptimizer from '../peaks/util/peakOptimizer';
10
- import type { MPFPeak } from '../types/MPFPeak';
11
- import type { NMRSignal2D } from '../types/NMRSignal2D';
12
+
13
+ import type { NMRSignal2D } from './NMRSignal2D';
12
14
 
13
15
  const smallFilter = [
14
16
  [0, 0, 1, 2, 2, 2, 1, 0, 0],
@@ -30,7 +32,7 @@ export interface Data2D {
30
32
  maxY: number;
31
33
  }
32
34
 
33
- export interface XYZAutoPeaksPickingOptions {
35
+ export interface XYZAutoZonesPickingOptions {
34
36
  /**
35
37
  * max number of points in any dimension to pad the input data, this is needed to avoid lost peaks when the input matrix is too small.
36
38
  * @default 14
@@ -86,9 +88,9 @@ export interface XYZAutoPeaksPickingOptions {
86
88
  kernel?: GetKernelOptions;
87
89
  }
88
90
 
89
- export function xyzAutoPeaksPicking(
91
+ export function xyzAutoZonesPicking(
90
92
  spectraData: Data2D,
91
- options: XYZAutoPeaksPickingOptions,
93
+ options: XYZAutoZonesPickingOptions,
92
94
  ) {
93
95
  let {
94
96
  sizeToPad = 14,
@@ -178,7 +180,41 @@ export function xyzAutoPeaksPicking(
178
180
  signals = PeakOptimizer.enhanceSymmetry(signals);
179
181
  }
180
182
 
181
- return signals;
183
+ return formatZones(signals);
184
+ }
185
+
186
+ function formatZones(signals: NMRSignal2D[]) {
187
+ let zones: NMRZone[] = [];
188
+ for (const signal of signals) {
189
+ let minMax1 = [Number.MAX_VALUE, 0];
190
+ let minMax2 = [Number.MAX_VALUE, 0];
191
+ for (const peak of signal.peaks || []) {
192
+ if (peak.minX < minMax1[0]) {
193
+ minMax1[0] = peak.minX;
194
+ }
195
+ if (peak.maxX > minMax1[1]) {
196
+ minMax1[1] = peak.maxX;
197
+ }
198
+ if (peak.minY < minMax2[0]) {
199
+ minMax2[0] = peak.minY;
200
+ }
201
+ if (peak.maxY > minMax2[1]) {
202
+ minMax2[1] = peak.maxY;
203
+ }
204
+ }
205
+ zones.push({
206
+ x: {
207
+ from: minMax1[0],
208
+ to: minMax1[1],
209
+ },
210
+ y: {
211
+ from: minMax2[0],
212
+ to: minMax2[1],
213
+ },
214
+ signals: [signal],
215
+ });
216
+ }
217
+ return zones;
182
218
  }
183
219
 
184
220
  /**
@@ -201,7 +237,7 @@ export interface CreateSignals2DOptions {
201
237
  minX: number;
202
238
  maxX: number;
203
239
  }
204
- const createSignals2D = (peaks: MPFPeak[], options: CreateSignals2DOptions) => {
240
+ const createSignals2D = (peaks: Peak2D[], options: CreateSignals2DOptions) => {
205
241
  let {
206
242
  nCols,
207
243
  nRows,
@@ -246,9 +282,6 @@ const createSignals2D = (peaks: MPFPeak[], options: CreateSignals2DOptions) => {
246
282
  peaks[i].maxY = minY + dy * peaks[i].maxY;
247
283
 
248
284
  // Still having problems to correctly detect peaks on those areas. So I'm removing everything there.
249
- if (peaks[i].y < -1 || peaks[i].y >= 210) {
250
- peaks.splice(i, 1);
251
- }
252
285
  }
253
286
  // The connectivity matrix is an square and symmetric matrix, so we'll only store the upper diagonal in an
254
287
  // array like form
@@ -283,9 +316,7 @@ const createSignals2D = (peaks: MPFPeak[], options: CreateSignals2DOptions) => {
283
316
  resolution: dy,
284
317
  },
285
318
  };
286
- let peaks2D = [];
287
- let minMax1 = [Number.MAX_VALUE, 0];
288
- let minMax2 = [Number.MAX_VALUE, 0];
319
+ let peaks2D: Peak2D[] = [];
289
320
  let sumZ = 0;
290
321
 
291
322
  for (let jPeak = 0; jPeak < cluster.length; jPeak++) {
@@ -294,25 +325,9 @@ const createSignals2D = (peaks: MPFPeak[], options: CreateSignals2DOptions) => {
294
325
  signal.x.delta += peaks[jPeak].x * peaks[jPeak].z;
295
326
  signal.y.delta += peaks[jPeak].y * peaks[jPeak].z;
296
327
  sumZ += peaks[jPeak].z;
297
- if (peaks[jPeak].minX < minMax1[0]) {
298
- minMax1[0] = peaks[jPeak].minX;
299
- }
300
- if (peaks[jPeak].maxX > minMax1[1]) {
301
- minMax1[1] = peaks[jPeak].maxX;
302
- }
303
- if (peaks[jPeak].minY < minMax2[0]) {
304
- minMax2[0] = peaks[jPeak].minY;
305
- }
306
- if (peaks[jPeak].maxY > minMax2[1]) {
307
- minMax2[1] = peaks[jPeak].maxY;
308
- }
309
328
  }
310
329
  }
311
330
 
312
- signal.x.from = minMax1[0];
313
- signal.y.from = minMax2[0];
314
- signal.x.to = minMax1[1];
315
- signal.y.to = minMax2[1];
316
331
  signal.x.delta /= sumZ;
317
332
  signal.y.delta /= sumZ;
318
333
  signal.peaks = peaks2D;
@@ -1,10 +1,11 @@
1
+ import type { Peak2D } from 'ml-matrix-peaks-finder';
1
2
  import simpleClustering from 'ml-simple-clustering';
2
3
 
3
4
  import type { JAxisKeys } from '../peaks/util/jAnalyzer';
4
5
  import jAnalyzer from '../peaks/util/jAnalyzer';
5
- import type { MPFPeak } from '../types/MPFPeak';
6
- import type { MakeMandatory } from '../types/MakeMandatory';
7
- import type { NMRSignal2D } from '../types/NMRSignal2D';
6
+ import type { MakeMandatory } from '../utilities/MakeMandatory';
7
+
8
+ import type { NMRSignal2D } from './NMRSignal2D';
8
9
 
9
10
  interface CompilePatternOptions {
10
11
  observedFrequencies?: number[] | Float64Array;
@@ -96,7 +97,7 @@ function compilePattern(
96
97
  for (const peak of peaks) {
97
98
  if (!peak.width) peak.width = 0.02;
98
99
  }
99
- peaks.sort((a: MPFPeak, b: MPFPeak) => a.y - b.y);
100
+ peaks.sort((a: Peak2D, b: Peak2D) => a.y - b.y);
100
101
  }
101
102
 
102
103
  for (let i = 0; i < signals.length; i++) {
@@ -137,7 +138,7 @@ function compilePattern(
137
138
  return signals;
138
139
  }
139
140
 
140
- interface Peak2DHack extends MPFPeak {
141
+ interface Peak2DHack extends Peak2D {
141
142
  width?: number;
142
143
  }
143
144
  type Signal2DHack = Omit<NMRSignal2D, 'peaks'> & {
@@ -149,7 +150,7 @@ type Signal2DHack = Omit<NMRSignal2D, 'peaks'> & {
149
150
  observe: number;
150
151
  };
151
152
 
152
- function createSignals2D(peaksInput: MPFPeak[], options: any) {
153
+ function createSignals2D(peaksInput: Peak2D[], options: any) {
153
154
  let { observedFrequencies, tolerances, nuclei, dx, dy } = options;
154
155
 
155
156
  const peaks: Peak2DHack[] = JSON.parse(JSON.stringify(peaksInput));