nmr-processing 9.9.2 → 10.0.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 (136) hide show
  1. package/lib/assignment/get13CAssignments.js +7 -4
  2. package/lib/assignment/get13CAssignments.js.map +1 -1
  3. package/lib/assignment/get1HAssignments.js +7 -5
  4. package/lib/assignment/get1HAssignments.js.map +1 -1
  5. package/lib/assignment/utils/generalAssignment/buildAssignments.d.ts +3 -1
  6. package/lib/assignment/utils/generalAssignment/buildAssignments.js +18 -7
  7. package/lib/assignment/utils/generalAssignment/buildAssignments.js.map +1 -1
  8. package/lib/index.d.ts +2 -7
  9. package/lib/index.js +2 -7
  10. package/lib/index.js.map +1 -1
  11. package/lib/prediction/GroupDiastereotopicAtomIDs.d.ts +6 -0
  12. package/lib/prediction/GroupDiastereotopicAtomIDs.js +3 -0
  13. package/lib/prediction/GroupDiastereotopicAtomIDs.js.map +1 -0
  14. package/lib/prediction/Prediction1D.d.ts +2 -7
  15. package/lib/prediction/Prediction2D.d.ts +2 -7
  16. package/lib/prediction/PredictionBase1D.d.ts +8 -0
  17. package/lib/prediction/PredictionBase1D.js +3 -0
  18. package/lib/prediction/PredictionBase1D.js.map +1 -0
  19. package/lib/prediction/PredictionBase2D.d.ts +8 -0
  20. package/lib/prediction/PredictionBase2D.js +3 -0
  21. package/lib/prediction/PredictionBase2D.js.map +1 -0
  22. package/lib/prediction/predict.d.ts +55 -0
  23. package/lib/prediction/predict.js +113 -0
  24. package/lib/prediction/predict.js.map +1 -0
  25. package/lib/prediction/predictCOSY.d.ts +15 -13
  26. package/lib/prediction/predictCOSY.js +3 -6
  27. package/lib/prediction/predictCOSY.js.map +1 -1
  28. package/lib/prediction/predictCarbon.d.ts +12 -4
  29. package/lib/prediction/predictCarbon.js +10 -16
  30. package/lib/prediction/predictCarbon.js.map +1 -1
  31. package/lib/prediction/predictHMBC.d.ts +16 -25
  32. package/lib/prediction/predictHMBC.js +3 -7
  33. package/lib/prediction/predictHMBC.js.map +1 -1
  34. package/lib/prediction/predictHSQC.d.ts +16 -25
  35. package/lib/prediction/predictHSQC.js +3 -7
  36. package/lib/prediction/predictHSQC.js.map +1 -1
  37. package/lib/prediction/predictProton.d.ts +7 -4
  38. package/lib/prediction/predictProton.js +8 -21
  39. package/lib/prediction/predictProton.js.map +1 -1
  40. package/lib/prediction/{predictAllSpectra.d.ts → predictSpectra.d.ts} +1 -1
  41. package/lib/prediction/{predictAllSpectra.js → predictSpectra.js} +7 -5
  42. package/lib/prediction/predictSpectra.js.map +1 -0
  43. package/lib/prediction/utils/fetchPrediction.d.ts +2 -3
  44. package/lib/prediction/utils/fetchPrediction.js +12 -7
  45. package/lib/prediction/utils/fetchPrediction.js.map +1 -1
  46. package/lib/prediction/utils/getFilteredIDiaIDs.d.ts +4 -13
  47. package/lib/prediction/utils/getFilteredIDiaIDs.js +7 -20
  48. package/lib/prediction/utils/getFilteredIDiaIDs.js.map +1 -1
  49. package/lib/prediction/utils/isMolfileNotEmpty.d.ts +1 -0
  50. package/lib/prediction/utils/isMolfileNotEmpty.js +12 -0
  51. package/lib/prediction/utils/isMolfileNotEmpty.js.map +1 -0
  52. package/lib/prediction/utils/predict2D.d.ts +13 -16
  53. package/lib/prediction/utils/predict2D.js +41 -18
  54. package/lib/prediction/utils/predict2D.js.map +1 -1
  55. package/lib/prediction/utils/queryByHOSE.d.ts +1 -2
  56. package/lib/prediction/utils/queryByHOSE.js.map +1 -1
  57. package/lib/prediction/utils/shouldPredict.d.ts +2 -0
  58. package/lib/prediction/utils/shouldPredict.js +15 -0
  59. package/lib/prediction/utils/shouldPredict.js.map +1 -0
  60. package/lib-esm/assignment/get13CAssignments.js +7 -4
  61. package/lib-esm/assignment/get13CAssignments.js.map +1 -1
  62. package/lib-esm/assignment/get1HAssignments.js +7 -5
  63. package/lib-esm/assignment/get1HAssignments.js.map +1 -1
  64. package/lib-esm/assignment/utils/generalAssignment/buildAssignments.js +18 -7
  65. package/lib-esm/assignment/utils/generalAssignment/buildAssignments.js.map +1 -1
  66. package/lib-esm/index.js +2 -7
  67. package/lib-esm/index.js.map +1 -1
  68. package/lib-esm/prediction/GroupDiastereotopicAtomIDs.js +2 -0
  69. package/lib-esm/prediction/GroupDiastereotopicAtomIDs.js.map +1 -0
  70. package/lib-esm/prediction/PredictionBase1D.js +2 -0
  71. package/lib-esm/prediction/PredictionBase1D.js.map +1 -0
  72. package/lib-esm/prediction/PredictionBase2D.js +2 -0
  73. package/lib-esm/prediction/PredictionBase2D.js.map +1 -0
  74. package/lib-esm/prediction/predict.js +109 -0
  75. package/lib-esm/prediction/predict.js.map +1 -0
  76. package/lib-esm/prediction/predictCOSY.js +3 -6
  77. package/lib-esm/prediction/predictCOSY.js.map +1 -1
  78. package/lib-esm/prediction/predictCarbon.js +10 -16
  79. package/lib-esm/prediction/predictCarbon.js.map +1 -1
  80. package/lib-esm/prediction/predictHMBC.js +3 -7
  81. package/lib-esm/prediction/predictHMBC.js.map +1 -1
  82. package/lib-esm/prediction/predictHSQC.js +3 -7
  83. package/lib-esm/prediction/predictHSQC.js.map +1 -1
  84. package/lib-esm/prediction/predictProton.js +8 -21
  85. package/lib-esm/prediction/predictProton.js.map +1 -1
  86. package/lib-esm/prediction/{predictAllSpectra.js → predictSpectra.js} +7 -5
  87. package/lib-esm/prediction/predictSpectra.js.map +1 -0
  88. package/lib-esm/prediction/utils/fetchPrediction.js +12 -7
  89. package/lib-esm/prediction/utils/fetchPrediction.js.map +1 -1
  90. package/lib-esm/prediction/utils/getFilteredIDiaIDs.js +7 -20
  91. package/lib-esm/prediction/utils/getFilteredIDiaIDs.js.map +1 -1
  92. package/lib-esm/prediction/utils/isMolfileNotEmpty.js +8 -0
  93. package/lib-esm/prediction/utils/isMolfileNotEmpty.js.map +1 -0
  94. package/lib-esm/prediction/utils/predict2D.js +41 -18
  95. package/lib-esm/prediction/utils/predict2D.js.map +1 -1
  96. package/lib-esm/prediction/utils/queryByHOSE.js.map +1 -1
  97. package/lib-esm/prediction/utils/shouldPredict.js +11 -0
  98. package/lib-esm/prediction/utils/shouldPredict.js.map +1 -0
  99. package/package.json +2 -3
  100. package/src/assignment/get13CAssignments.ts +9 -8
  101. package/src/assignment/get1HAssignments.ts +8 -9
  102. package/src/assignment/utils/generalAssignment/buildAssignments.ts +28 -12
  103. package/src/index.ts +3 -8
  104. package/src/prediction/GroupDiastereotopicAtomIDs.ts +6 -0
  105. package/src/prediction/Prediction1D.ts +2 -7
  106. package/src/prediction/Prediction2D.ts +2 -7
  107. package/src/prediction/PredictionBase1D.ts +9 -0
  108. package/src/prediction/PredictionBase2D.ts +9 -0
  109. package/src/prediction/predict.ts +201 -0
  110. package/src/prediction/predictCOSY.ts +18 -18
  111. package/src/prediction/predictCarbon.ts +28 -26
  112. package/src/prediction/predictHMBC.ts +17 -27
  113. package/src/prediction/predictHSQC.ts +18 -25
  114. package/src/prediction/predictProton.ts +16 -30
  115. package/src/prediction/{predictAllSpectra.ts → predictSpectra.ts} +6 -4
  116. package/src/prediction/utils/fetchPrediction.ts +15 -10
  117. package/src/prediction/utils/getFilteredIDiaIDs.ts +16 -49
  118. package/src/prediction/utils/isMolfileNotEmpty.ts +8 -0
  119. package/src/prediction/utils/predict2D.ts +69 -69
  120. package/src/prediction/utils/queryByHOSE.ts +2 -2
  121. package/src/prediction/utils/shouldPredict.ts +14 -0
  122. package/lib/prediction/predictAll.d.ts +0 -64
  123. package/lib/prediction/predictAll.js +0 -82
  124. package/lib/prediction/predictAll.js.map +0 -1
  125. package/lib/prediction/predictAllSpectra.js.map +0 -1
  126. package/lib/prediction/utils/getPredictions.d.ts +0 -4
  127. package/lib/prediction/utils/getPredictions.js +0 -18
  128. package/lib/prediction/utils/getPredictions.js.map +0 -1
  129. package/lib-esm/prediction/predictAll.js +0 -78
  130. package/lib-esm/prediction/predictAll.js.map +0 -1
  131. package/lib-esm/prediction/predictAllSpectra.js.map +0 -1
  132. package/lib-esm/prediction/utils/getPredictions.js +0 -14
  133. package/lib-esm/prediction/utils/getPredictions.js.map +0 -1
  134. package/src/openchemlib-utils.d.ts +0 -167
  135. package/src/prediction/predictAll.ts +0 -157
  136. package/src/prediction/utils/getPredictions.ts +0 -24
@@ -1,10 +1,9 @@
1
1
  import { v4 as generateID } from '@lukeed/uuid';
2
- import { getDiastereotopicAtomIDs } from 'openchemlib-utils';
3
2
  import { setIDs } from '../peaks/util/setIDs';
4
3
  import { signalsToRanges } from '../signals/signalsToRanges';
5
4
  import { fetchPrediction } from './utils/fetchPrediction';
6
5
  import { getFilteredIDiaIDs } from './utils/getFilteredIDiaIDs';
7
- import { isEmptyMolecule } from './utils/isEmptyMolecule';
6
+ import { isMolfileNotEmpty } from './utils/isMolfileNotEmpty';
8
7
  import { queryByHose } from './utils/queryByHOSE';
9
8
  function checkFromPrediction(signal) {
10
9
  if (!signal.atoms)
@@ -18,21 +17,19 @@ function checkFromPrediction(signal) {
18
17
  * Make a query to a hose code based database to predict carbon chemical shift
19
18
  * @returns {Promise<object>} - object with molfile, diaIDs, signals, joined signals by diaIDs and ranges.
20
19
  */
21
- export async function predictCarbon(molecule, options = {}) {
22
- if (isEmptyMolecule(molecule)) {
20
+ export async function predictCarbon(options) {
21
+ const { hoses, molfile, database, webserviceURL = 'https://nmr-prediction.service.zakodium.com/v1/predict/carbon', groupedDiaIDs, } = options;
22
+ if (!database && isMolfileNotEmpty(molfile)) {
23
+ return fetchPrediction(molfile, { webserviceURL });
24
+ }
25
+ else if (!isMolfileNotEmpty(molfile)) {
23
26
  return {
24
- molfile: molecule.toMolfile(),
25
27
  nucleus: '13C',
26
- diaIDs: [],
27
28
  joinedSignals: [],
28
29
  signals: [],
29
30
  ranges: [],
30
- molecule,
31
31
  };
32
32
  }
33
- const { database, webserviceURL = 'https://nmr-prediction.service.zakodium.com/v1/predict/carbon', diaIDs = getDiastereotopicAtomIDs(molecule), } = options;
34
- if (!database)
35
- return fetchPrediction(molecule, { webserviceURL });
36
33
  if (!database) {
37
34
  throw new Error('There is not a database');
38
35
  }
@@ -40,9 +37,9 @@ export async function predictCarbon(molecule, options = {}) {
40
37
  let { maxSphereSize = maxLevel } = options;
41
38
  if (maxSphereSize > maxLevel)
42
39
  maxSphereSize = maxLevel;
43
- const { carbonDiaIDs, molfile } = getFilteredIDiaIDs(molecule, {
44
- maxSphereSize,
45
- diaIDs,
40
+ const carbonDiaIDs = getFilteredIDiaIDs({
41
+ groupedDiaIDs,
42
+ hoses,
46
43
  });
47
44
  const predictions = queryByHose(carbonDiaIDs, database, {
48
45
  maxSphereSize,
@@ -50,13 +47,10 @@ export async function predictCarbon(molecule, options = {}) {
50
47
  const signals = formatSignals(predictions);
51
48
  const joinedSignals = joinSignalByDiaID(signals);
52
49
  return {
53
- molfile,
54
50
  nucleus: '13C',
55
- diaIDs,
56
51
  joinedSignals,
57
52
  signals,
58
53
  ranges: signalsToRanges(joinedSignals),
59
- molecule,
60
54
  };
61
55
  }
62
56
  function formatSignals(predictions) {
@@ -1 +1 @@
1
- {"version":3,"file":"predictCarbon.js","sourceRoot":"","sources":["../../src/prediction/predictCarbon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"predictCarbon.js","sourceRoot":"","sources":["../../src/prediction/predictCarbon.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,12 @@
1
- import { predictCarbon } from './predictCarbon';
2
- import { predictProton } from './predictProton';
3
1
  import { predict2D } from './utils/predict2D';
4
- export async function predictHMBC(molecule, options = {}) {
5
- const { minLength = 2, maxLength = 3, predictor = { H: predictProton, C: predictCarbon }, predictOptions, predictions, joinDistance = { H: 0.05, C: 0.5 }, } = options;
2
+ export async function predictHMBC(molecule, options) {
3
+ const { minLength = 2, maxLength = 3, joinDistance = { H: 0.05, C: 0.5 }, } = options;
6
4
  return predict2D(molecule, {
5
+ ...options,
7
6
  from: 'H',
8
7
  to: 'C',
9
- predictor,
10
8
  minLength,
11
9
  maxLength,
12
- predictions,
13
- predictOptions,
14
10
  joinDistance,
15
11
  });
16
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"predictHMBC.js","sourceRoot":"","sources":["../../src/prediction/predictHMBC.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AA+C9C,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,QAAkB,EAClB,UAA8B,EAAE;IAEhC,MAAM,EACJ,SAAS,GAAG,CAAC,EACb,SAAS,GAAG,CAAC,EACb,SAAS,GAAG,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,EAAE,EAClD,cAAc,EACd,WAAW,EACX,YAAY,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,GACnC,GAAG,OAAO,CAAC;IAEZ,OAAO,SAAS,CAAC,QAAQ,EAAE;QACzB,IAAI,EAAE,GAAG;QACT,EAAE,EAAE,GAAG;QACP,SAAS;QACT,SAAS;QACT,SAAS;QACT,WAAW;QACX,cAAc;QACd,YAAY;KACb,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"predictHMBC.js","sourceRoot":"","sources":["../../src/prediction/predictHMBC.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AA6C9C,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,QAAkB,EAClB,OAA2B;IAE3B,MAAM,EACJ,SAAS,GAAG,CAAC,EACb,SAAS,GAAG,CAAC,EACb,YAAY,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,GACnC,GAAG,OAAO,CAAC;IAEZ,OAAO,SAAS,CAAC,QAAQ,EAAE;QACzB,GAAG,OAAO;QACV,IAAI,EAAE,GAAG;QACT,EAAE,EAAE,GAAG;QACP,SAAS;QACT,SAAS;QACT,YAAY;KACb,CAAC,CAAC;AACL,CAAC"}
@@ -1,20 +1,16 @@
1
- import { predictCarbon } from './predictCarbon';
2
- import { predictProton } from './predictProton';
3
1
  import { predict2D } from './utils/predict2D';
4
2
  /**
5
3
  * Generate the correlation bidimensional nmr peaks based on the number of bonds between a pair of atoms
6
4
  * @returns {Promise<object>} - object with molfile, diaIDs, 2D signals joined signals and zones.
7
5
  */
8
- export async function predictHSQC(molecule, options = {}) {
9
- const { minLength = 1, maxLength = 1, predictor = { H: predictProton, C: predictCarbon }, predictions, joinDistance = { H: 0.05, C: 0.5 }, predictOptions, } = options;
6
+ export async function predictHSQC(molecule, options) {
7
+ const { minLength = 1, maxLength = 1, joinDistance = { H: 0.05, C: 0.5 }, } = options;
10
8
  return predict2D(molecule, {
9
+ ...options,
11
10
  from: 'H',
12
11
  to: 'C',
13
- predictor,
14
12
  minLength,
15
13
  maxLength,
16
- predictions,
17
- predictOptions,
18
14
  joinDistance,
19
15
  });
20
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"predictHSQC.js","sourceRoot":"","sources":["../../src/prediction/predictHSQC.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAwB,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAwB,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,SAAS,EAAa,MAAM,mBAAmB,CAAC;AAwCzD;;;GAGG;AAEH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,QAAkB,EAClB,UAA8B,EAAE;IAEhC,MAAM,EACJ,SAAS,GAAG,CAAC,EACb,SAAS,GAAG,CAAC,EACb,SAAS,GAAG,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,EAAE,EAClD,WAAW,EACX,YAAY,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAClC,cAAc,GACf,GAAG,OAAO,CAAC;IAEZ,OAAO,SAAS,CAAC,QAAQ,EAAE;QACzB,IAAI,EAAE,GAAG;QACT,EAAE,EAAE,GAAG;QACP,SAAS;QACT,SAAS;QACT,SAAS;QACT,WAAW;QACX,cAAc;QACd,YAAY;KACb,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"predictHSQC.js","sourceRoot":"","sources":["../../src/prediction/predictHSQC.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAuC9C;;;GAGG;AAEH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,QAAkB,EAClB,OAA2B;IAE3B,MAAM,EACJ,SAAS,GAAG,CAAC,EACb,SAAS,GAAG,CAAC,EACb,YAAY,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,GACnC,GAAG,OAAO,CAAC;IAEZ,OAAO,SAAS,CAAC,QAAQ,EAAE;QACzB,GAAG,OAAO;QACV,IAAI,EAAE,GAAG;QACT,EAAE,EAAE,GAAG;QACP,SAAS;QACT,SAAS;QACT,YAAY;KACb,CAAC,CAAC;AACL,CAAC"}
@@ -1,27 +1,19 @@
1
1
  import { v4 as generateID } from '@lukeed/uuid';
2
2
  import fetch from 'cross-fetch';
3
3
  import FormData from 'form-data';
4
- import { ensureHeterotopicChiralBonds, getConnectivityMatrix, getDiastereotopicAtomIDs, } from 'openchemlib-utils';
5
4
  import { signalsJoin } from '../signals/signalsJoin';
6
5
  import { signalsToRanges } from '../signals/signalsToRanges';
7
- import { isEmptyMolecule } from './utils/isEmptyMolecule';
8
- export async function predictProton(molecule, options = {}) {
9
- if (isEmptyMolecule(molecule)) {
6
+ import { isMolfileNotEmpty } from './utils/isMolfileNotEmpty';
7
+ export async function predictProton(molfile, options) {
8
+ if (!isMolfileNotEmpty(molfile)) {
10
9
  return {
11
- molfile: molecule.toMolfile(),
12
- nucleus: '13C',
13
- diaIDs: [],
10
+ nucleus: '1H',
14
11
  joinedSignals: [],
15
12
  signals: [],
16
13
  ranges: [],
17
- molecule,
18
14
  };
19
15
  }
20
16
  const { cache } = options;
21
- molecule = molecule.getCompactCopy();
22
- molecule.addImplicitHydrogens();
23
- ensureHeterotopicChiralBonds(molecule);
24
- const molfile = molecule.toMolfile();
25
17
  let result;
26
18
  if (cache) {
27
19
  result = cache(molfile);
@@ -39,26 +31,21 @@ export async function predictProton(molecule, options = {}) {
39
31
  cache(molfile, result);
40
32
  }
41
33
  }
42
- const { diaIDs = getDiastereotopicAtomIDs(molecule) } = options;
43
- const signals = protonParser(result, molecule, diaIDs);
34
+ const { diaIDs, distanceMatrix } = options;
35
+ const signals = protonParser(result, { diaIDs, distanceMatrix });
44
36
  const joinedSignals = signalsJoin(signals);
45
37
  return {
46
- molfile,
47
- diaIDs,
48
38
  nucleus: '1H',
49
39
  joinedSignals,
50
40
  signals,
51
41
  ranges: signalsToRanges(joinedSignals),
52
- molecule,
53
42
  };
54
43
  }
55
- function protonParser(result, molecule, diaIDs) {
56
- if (molecule.getAllAtoms() === 0)
57
- return [];
44
+ function protonParser(result, options) {
58
45
  if (result.includes('ERR')) {
59
46
  throw Error(`Spinus optimization: ${result}`);
60
47
  }
61
- const distanceMatrix = getConnectivityMatrix(molecule, { pathLength: true });
48
+ const { diaIDs, distanceMatrix } = options;
62
49
  const lines = result.split('\n').filter((line) => line);
63
50
  const signals = [];
64
51
  for (const line of lines) {
@@ -1 +1 @@
1
- {"version":3,"file":"predictProton.js","sourceRoot":"","sources":["../../src/prediction/predictProton.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"predictProton.js","sourceRoot":"","sources":["../../src/prediction/predictProton.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,10 @@
1
1
  import { signals2DToZ } from '../signals/signals2DToZ';
2
2
  import { signalsToXY } from '../signals/signalsToXY';
3
3
  import { getFrequency } from '../utilities/getFrequency';
4
- import { predictAll } from './predictAll';
4
+ import { predict } from './predict';
5
5
  export async function predictAllSpectra(molecule, options = {}) {
6
6
  const { simulation: simulationOptions = { oneD: {}, twoD: {} }, prediction: predictionOptions = {}, } = options;
7
- const predictions = await predictAll(molecule, predictionOptions);
8
- const { molfile, spectra } = predictions;
7
+ const { spectra } = await predict(molecule, predictionOptions);
9
8
  const oneDOptions = {
10
9
  ...{
11
10
  proton: { from: 0, to: 14 },
@@ -51,7 +50,10 @@ export async function predictAllSpectra(molecule, options = {}) {
51
50
  break;
52
51
  }
53
52
  }
54
- return { spectra: newSpectra, molecules: [{ molfile }] };
53
+ return {
54
+ spectra: newSpectra,
55
+ molecules: [{ molfile: molecule.toMolfile() }],
56
+ };
55
57
  }
56
58
  function get2DSpectrum(prediction, options) {
57
59
  const { signals, zones, nuclei } = prediction;
@@ -118,4 +120,4 @@ function calculateFrequency(nucleus, frequency) {
118
120
  })}`;
119
121
  }
120
122
  }
121
- //# sourceMappingURL=predictAllSpectra.js.map
123
+ //# sourceMappingURL=predictSpectra.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"predictSpectra.js","sourceRoot":"","sources":["../../src/prediction/predictSpectra.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,26 @@
1
1
  import fetch from 'cross-fetch';
2
- export async function fetchPrediction(molecule, options) {
2
+ import { isMolfileNotEmpty } from './isMolfileNotEmpty';
3
+ export async function fetchPrediction(molfile, options) {
4
+ if (!isMolfileNotEmpty(molfile)) {
5
+ return {
6
+ nucleus: '13C',
7
+ joinedSignals: [],
8
+ signals: [],
9
+ ranges: [],
10
+ };
11
+ }
3
12
  const { webserviceURL } = options;
4
13
  const response = await fetch(webserviceURL, {
5
14
  headers: {
6
15
  accept: 'application/json',
7
16
  'content-type': 'application/json',
8
17
  },
9
- body: JSON.stringify({ molfile: molecule.toMolfile() }),
18
+ body: JSON.stringify({ molfile }),
10
19
  method: 'POST',
11
20
  });
12
21
  if (response.status >= 400) {
13
22
  throw new Error(response.statusText);
14
23
  }
15
- const prediction = (await response.json()).data;
16
- prediction.molecule = molecule
17
- .getOCL()
18
- .Molecule.fromMolfile(prediction.molfile);
19
- return prediction;
24
+ return (await response.json()).data;
20
25
  }
21
26
  //# sourceMappingURL=fetchPrediction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetchPrediction.js","sourceRoot":"","sources":["../../../src/prediction/utils/fetchPrediction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,aAAa,CAAC;AAShC,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAAkB,EAClB,OAA+B;IAE/B,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAClC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,aAAa,EAAE;QAC1C,OAAO,EAAE;YACP,MAAM,EAAE,kBAAkB;YAC1B,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;QACvD,MAAM,EAAE,MAAM;KACf,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;KACtC;IACD,MAAM,UAAU,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;IAEhD,UAAU,CAAC,QAAQ,GAAG,QAAQ;SAC3B,MAAM,EAAE;SACR,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC5C,OAAO,UAAU,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"fetchPrediction.js","sourceRoot":"","sources":["../../../src/prediction/utils/fetchPrediction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,aAAa,CAAC;AAIhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAMxD,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAe,EACf,OAA+B;IAE/B,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE;QAC/B,OAAO;YACL,OAAO,EAAE,KAAK;YACd,aAAa,EAAE,EAAE;YACjB,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,EAAE;SACX,CAAC;KACH;IACD,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAClC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,aAAa,EAAE;QAC1C,OAAO,EAAE;YACP,MAAM,EAAE,kBAAkB;YAC1B,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;QACjC,MAAM,EAAE,MAAM;KACf,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;KACtC;IAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;AACtC,CAAC"}
@@ -1,29 +1,16 @@
1
- import { getHoseCodesFromDiastereotopicID, ensureHeterotopicChiralBonds, groupDiastereotopicAtomIDs, } from 'openchemlib-utils';
2
- export function getFilteredIDiaIDs(molecule, options) {
3
- const { maxSphereSize, diaIDs } = options;
4
- molecule.addImplicitHydrogens();
5
- molecule.addMissingChirality();
6
- ensureHeterotopicChiralBonds(molecule);
7
- const molfile = molecule.toMolfile();
8
- const groupedDiaIDs = groupDiastereotopicAtomIDs(diaIDs, molecule, {
9
- atomLabel: 'C',
10
- });
11
- const carbonDiaIDs = groupedDiaIDs.sort((a, b) => {
1
+ export function getFilteredIDiaIDs(options) {
2
+ const { groupedDiaIDs, hoses } = options;
3
+ const carbonDiaIDs = groupedDiaIDs
4
+ .filter((group) => group.atomLabel === 'C')
5
+ .sort((a, b) => {
12
6
  if (a.atomLabel === b.atomLabel) {
13
7
  return b.counter - a.counter;
14
8
  }
15
9
  return a.atomLabel < b.atomLabel ? 1 : -1;
16
10
  });
17
- const OCL = molecule.getOCL();
18
11
  for (const diaId of carbonDiaIDs) {
19
- diaId.hose = getHoseCodesFromDiastereotopicID(OCL.Molecule.fromIDCode(diaId.oclID), {
20
- maxSphereSize,
21
- });
12
+ diaId.hose = hoses[diaId.atoms[0]];
22
13
  }
23
- const toReturn = {
24
- molfile,
25
- carbonDiaIDs: carbonDiaIDs,
26
- };
27
- return toReturn;
14
+ return carbonDiaIDs;
28
15
  }
29
16
  //# sourceMappingURL=getFilteredIDiaIDs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getFilteredIDiaIDs.js","sourceRoot":"","sources":["../../../src/prediction/utils/getFilteredIDiaIDs.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gCAAgC,EAChC,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAS3B,MAAM,UAAU,kBAAkB,CAChC,QAAkB,EAClB,OAAoD;IAEpD,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE1C,QAAQ,CAAC,oBAAoB,EAAE,CAAC;IAChC,QAAQ,CAAC,mBAAmB,EAAE,CAAC;IAC/B,4BAA4B,CAAC,QAAQ,CAAC,CAAC;IAEvC,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;IAErC,MAAM,aAAa,GAAG,0BAA0B,CAAC,MAAM,EAAE,QAAQ,EAAE;QACjE,SAAS,EAAE,GAAG;KACf,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC/C,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS,EAAE;YAC/B,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;SAC9B;QACD,OAAO,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAQ,CAAC;IAEV,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC9B,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE;QAChC,KAAK,CAAC,IAAI,GAAG,gCAAgC,CAC3C,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,EACpC;YACE,aAAa;SACd,CACF,CAAC;KACH;IAED,MAAM,QAAQ,GAAG;QACf,OAAO;QACP,YAAY,EAAE,YAAqC;KACpD,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"getFilteredIDiaIDs.js","sourceRoot":"","sources":["../../../src/prediction/utils/getFilteredIDiaIDs.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,kBAAkB,CAAC,OAGlC;IACC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAEzC,MAAM,YAAY,GAAG,aAAa;SAC/B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,KAAK,GAAG,CAAC;SAC1C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACb,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS,EAAE;YAC/B,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;SAC9B;QACD,OAAO,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEL,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE;QAChC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACpC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { Molecule } from 'openchemlib/full';
2
+ import { isEmptyMolecule } from './isEmptyMolecule';
3
+ export function isMolfileNotEmpty(molFile) {
4
+ if (!molFile?.match(/V[23]0/))
5
+ return false;
6
+ return !isEmptyMolecule(Molecule.fromMolfile(molFile));
7
+ }
8
+ //# sourceMappingURL=isMolfileNotEmpty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isMolfileNotEmpty.js","sourceRoot":"","sources":["../../../src/prediction/utils/isMolfileNotEmpty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;AACzD,CAAC"}
@@ -1,39 +1,36 @@
1
1
  import { v4 as generateID } from '@lukeed/uuid';
2
2
  import { agnes } from 'ml-hclust';
3
3
  import { Matrix } from 'ml-matrix';
4
- import { getGroupedDiastereotopicAtomIDs, getPathsInfo, groupDiastereotopicAtomIDs, } from 'openchemlib-utils';
4
+ import { Molecule } from 'openchemlib/full';
5
5
  import { setIDs } from '../../peaks/util/setIDs';
6
6
  import { getNuclei } from './getNuclei';
7
- import { getPredictions } from './getPredictions';
8
7
  function checkFromTo(options) {
9
8
  if (!options.from || !options.to) {
10
9
  throw new Error('options from and to are mandatory');
11
10
  }
12
11
  }
13
- export async function predict2D(molecule, options = {}) {
12
+ export async function predict2D(molecule, options) {
14
13
  checkFromTo(options);
15
14
  molecule.addImplicitHydrogens();
16
- const { from, to, diaIDs, minLength = 0, maxLength, predictOptions = {}, predictions, predictor, joinDistance = { H: 0.05, C: 0.5 }, includeDiagonal = false, } = options;
17
- const pathsInfo = getPathsInfo(molecule, {
15
+ const { from, to, diaIDs, groupedDiaIDs, minLength = 0, maxLength, predictions, distanceMatrix, joinDistance = { H: 0.05, C: 0.5 }, includeDiagonal = false, } = options;
16
+ const pathsInfo = getPossibleCorrelations({
17
+ molecule,
18
18
  fromLabel: from,
19
19
  toLabel: to,
20
+ diaIDs,
21
+ distanceMatrix,
20
22
  minLength,
21
23
  maxLength,
22
24
  });
23
- const groupedDiaIDS = diaIDs
24
- ? groupDiastereotopicAtomIDs(diaIDs, molecule)
25
- : getGroupedDiastereotopicAtomIDs(molecule);
26
25
  const diaIDswithAtomInfo = [];
27
- for (const diaID of groupedDiaIDS) {
26
+ for (const diaID of groupedDiaIDs) {
28
27
  diaIDswithAtomInfo.push({
29
28
  ...diaID,
30
29
  pathInfo: JSON.parse(JSON.stringify(pathsInfo[diaID.atoms[0]])),
31
30
  });
32
31
  }
33
- const xPrediction = await getPredictions(from, molecule, predictOptions, predictor, predictions);
34
- const yPrediction = from === to
35
- ? xPrediction
36
- : await getPredictions(to, molecule, predictOptions, predictor, predictions);
32
+ const yPrediction = predictions[to];
33
+ const xPrediction = predictions[from];
37
34
  if (!xPrediction || !yPrediction) {
38
35
  throw new Error('predictions are not availaible');
39
36
  }
@@ -85,21 +82,47 @@ export async function predict2D(molecule, options = {}) {
85
82
  }
86
83
  }
87
84
  if (includeDiagonal) {
88
- addSelftCorrelation(group, { paths: pathsInfo, signalsByDiaID });
85
+ addSelfCorrelation(group, { paths: pathsInfo, signalsByDiaID });
89
86
  }
90
87
  // clusterize signals by distance
91
88
  const joinedSignals = Object.values(group);
92
89
  const zones = createZones(joinedSignals, { joinDistance, from, to });
93
90
  return {
94
- molfile: molecule.toMolfile(),
95
- diaIDs: spectra.x.diaIDs,
96
91
  nuclei: getNuclei({ from, to }),
97
92
  joinedSignals,
98
93
  signals: splitSignals(joinedSignals),
99
94
  zones,
100
- molecule,
101
95
  };
102
96
  }
97
+ function getPossibleCorrelations(options) {
98
+ const { fromLabel, toLabel, distanceMatrix, molecule, diaIDs, minLength, maxLength, } = options;
99
+ const fromAtomicNumber = Molecule.getAtomicNoFromLabel(fromLabel);
100
+ const toAtomicNumber = Molecule.getAtomicNoFromLabel(toLabel);
101
+ const atomPathInfo = [];
102
+ for (let from = 0; from < molecule.getAllAtoms(); from++) {
103
+ const toSave = {
104
+ oclID: diaIDs[from],
105
+ paths: [],
106
+ };
107
+ for (let to = 0; to < molecule.getAllAtoms(); to++) {
108
+ if (from === to)
109
+ continue;
110
+ if (molecule.getAtomicNo(to) !== toAtomicNumber)
111
+ continue;
112
+ if (molecule.getAtomicNo(from) !== fromAtomicNumber)
113
+ continue;
114
+ const pathLength = distanceMatrix[from][to];
115
+ if (pathLength >= minLength && pathLength <= maxLength) {
116
+ toSave.paths.push({
117
+ from,
118
+ to,
119
+ });
120
+ }
121
+ }
122
+ atomPathInfo.push(toSave);
123
+ }
124
+ return atomPathInfo;
125
+ }
103
126
  function splitSignals(joinedSignals) {
104
127
  const signals = [];
105
128
  for (const signal of joinedSignals) {
@@ -114,7 +137,7 @@ function splitSignals(joinedSignals) {
114
137
  }
115
138
  return setIDs(signals);
116
139
  }
117
- function addSelftCorrelation(group, options) {
140
+ function addSelfCorrelation(group, options) {
118
141
  const { paths = [], signalsByDiaID } = options;
119
142
  for (const atom of paths) {
120
143
  if (atom.paths.length < 1)
@@ -1 +1 @@
1
- {"version":3,"file":"predict2D.js","sourceRoot":"","sources":["../../../src/prediction/utils/predict2D.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"predict2D.js","sourceRoot":"","sources":["../../../src/prediction/utils/predict2D.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,KAAK,EAAW,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAWjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAoFxC,SAAS,WAAW,CAClB,OAAyB;IAEzB,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE;QAChC,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;KACtD;AACH,CAAC;AAID,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAkB,EAAE,OAAyB;IAC3E,WAAW,CAAC,OAAO,CAAC,CAAC;IAErB,QAAQ,CAAC,oBAAoB,EAAE,CAAC;IAEhC,MAAM,EACJ,IAAI,EACJ,EAAE,EACF,MAAM,EACN,aAAa,EACb,SAAS,GAAG,CAAC,EACb,SAAS,EACT,WAAW,EACX,cAAc,EACd,YAAY,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAClC,eAAe,GAAG,KAAK,GACxB,GAAG,OAAO,CAAC;IAEZ,MAAM,SAAS,GAAG,uBAAuB,CAAC;QACxC,QAAQ;QACR,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,EAAE;QACX,MAAM;QACN,cAAc;QACd,SAAS;QACT,SAAS;KACV,CAAC,CAAC;IAEH,MAAM,kBAAkB,GAA6C,EAAE,CAAC;IACxE,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE;QACjC,kBAAkB,CAAC,IAAI,CAAC;YACtB,GAAG,KAAK;YACR,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAChE,CAAC,CAAC;KACJ;IAED,MAAM,WAAW,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IACpC,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAEtC,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,EAAE;QAChC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;KACnD;IAED,MAAM,OAAO,GAAqC;QAChD,CAAC,EAAE,WAAW;QACd,CAAC,EAAE,WAAW;KACf,CAAC;IAEF,MAAM,cAAc,GAAoB;QACtC,CAAC,EAAE,EAAE;QACL,CAAC,EAAE,EAAE;KACN,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE;QACjC,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE;YAChD,IAAI,CAAC,MAAM,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC7D,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;SACjD;KACF;IAED,MAAM,KAAK,GAAgC,EAAE,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,kBAAkB,EAAE;QACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAChC,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAExC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,SAAS;QAEhD,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC;QACpC,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE;YAC/B,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;gBAAE,SAAS;YAE1D,MAAM,WAAW,GAAwC;gBACvD,CAAC,EAAE,QAAQ;gBACX,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;aACtB,CAAC;YAEF,MAAM,GAAG,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;YAC5D,IAAI,GAAG,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE;gBAC/D,SAAS;aACV;YAED,MAAM,IAAI,GAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;YACvD,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE;gBAC9B,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;gBACtC,IAAI,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;gBAC/C,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;gBACvD,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;aACxD;YAED,MAAM,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;YACtB,KAAK,CAAC,GAAG,CAAC,GAAG,MAAqB,CAAC;SACpC;KACF;IAED,IAAI,eAAe,EAAE;QACnB,kBAAkB,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC;KACjE;IAED,iCAAiC;IACjC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,WAAW,CAAC,aAAa,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAErE,OAAO;QACL,MAAM,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAC/B,aAAa;QACb,OAAO,EAAE,YAAY,CAAC,aAAa,CAAC;QACpC,KAAK;KACc,CAAC;AACxB,CAAC;AAMD,SAAS,uBAAuB,CAAC,OAAY;IAC3C,MAAM,EACJ,SAAS,EACT,OAAO,EACP,cAAc,EACd,QAAQ,EACR,MAAM,EACN,SAAS,EACT,SAAS,GACV,GAAG,OAAO,CAAC;IACZ,MAAM,gBAAgB,GAAG,QAAQ,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAClE,MAAM,cAAc,GAAG,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9D,MAAM,YAAY,GAA0B,EAAE,CAAC;IAC/C,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,EAAE;QACxD,MAAM,MAAM,GAAwB;YAClC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC;YACnB,KAAK,EAAE,EAAE;SACV,CAAC;QACF,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE;YAClD,IAAI,IAAI,KAAK,EAAE;gBAAE,SAAS;YAC1B,IAAI,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,cAAc;gBAAE,SAAS;YAC1D,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,gBAAgB;gBAAE,SAAS;YAC9D,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5C,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,EAAE;gBACtD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;oBAChB,IAAI;oBACJ,EAAE;iBACH,CAAC,CAAC;aACJ;SACF;QACD,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC3B;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,YAAY,CAAC,aAA4B;IAChD,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE;QAClC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,EAAE;YACxC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,EAAE;gBACxC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;gBACrD,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC5B,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC5B,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACzB;SACF;KACF;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC;AAMD,SAAS,kBAAkB,CACzB,KAAkC,EAClC,OAAmC;IAEnC,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IAC/C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAEpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,SAAS;QACvC,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,KAAK,EAAE,CAAC;YAAE,SAAS;QAEzC,MAAM,MAAM,GAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;QAErC,MAAM,IAAI,GAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;YAC7B,IAAI,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;YAC/C,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;YACvD,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;SACxD;QAED,MAAM,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;QAEtB,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,MAAqB,CAAC;KAC9D;AACH,CAAC;AAOD,SAAS,WAAW,CAAC,OAAsB,EAAE,OAA2B;IACtE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACtB,OAAO,EAAe,CAAC;KACxB;IAED,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEtE,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAEjC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;IACvC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;IAEvC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CACtB,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAChD,CAAC;IAEF,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;IAEpD,MAAM,KAAK,GAAc,EAAE,CAAC;IAC5B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC9B,MAAM,MAAM,GAAkB,EAAE,CAAC;QACjC,IAAI,OAAO,CAAC,MAAM;YAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACxD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,EAAE;YACpC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE;gBACnC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;aAC7B;SACF;QAED,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,UAAU,EAAE;YAChB,GAAG,MAAM,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YAC7C,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;KACJ;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,MAAM,CAAC,OAAsB,EAAE,OAA2B;IACjE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC;IAC3C,IAAI,IAAI,GAAG,MAAM,CAAC,gBAAgB,CAAC;IACnC,IAAI,IAAI,GAAG,MAAM,CAAC,gBAAgB,CAAC;IACnC,IAAI,IAAI,GAAG,MAAM,CAAC,gBAAgB,CAAC;IACnC,IAAI,IAAI,GAAG,MAAM,CAAC,gBAAgB,CAAC;IACnC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI;YAAE,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QACjD,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI;YAAE,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QACjD,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI;YAAE,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QACjD,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI;YAAE,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;KAClD;IACD,OAAO;QACL,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,EAAE;QACrE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,GAAG,YAAY,CAAC,EAAE,CAAC,EAAE;KAClE,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,QAAmB,EAAE,WAAmB;IAC7D,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;IACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACxC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,OAAO,CAAC,MAAM,GAAG,WAAW,EAAE;YAChC,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;YACnC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;SACzB;KACF;IACD,OAAO,QAAQ,CAAC,MAAM,GAAG,cAAc;QACrC,CAAC,CAAC,aAAa,CAAC,QAAQ,EAAE,WAAW,CAAC;QACtC,CAAC,CAAC,QAAQ,CAAC;AACf,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"queryByHOSE.js","sourceRoot":"","sources":["../../../src/prediction/utils/queryByHOSE.ts"],"names":[],"mappings":"AAkBA,MAAM,UAAU,WAAW,CACzB,MAA6B,EAC7B,EAAqB,EACrB,OAAkC;IAElC,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAElC,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE;QAC5B,IAAI,GAAG,CAAC;QACR,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,KAAK,IAAI,CAAC,GAAG,aAAa,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAC/C,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;gBACT,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7B,KAAK,GAAG,CAAC,CAAC;aACX;SACF;QAED,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,KAAK,EAAE;YACtC,MAAM,IAAI,GAAG;gBACX,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;gBACvB,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;gBAC1B,KAAK,EAAE,CAAC,UAAU,CAAC;gBACnB,OAAO,EAAE,CAAC;gBACV,KAAK;gBACL,SAAS,EACP,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;oBACnB,CAAC,CAAC;wBACE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;wBACZ,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;wBACV,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;wBACX,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;wBACX,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;qBACX;oBACH,CAAC,CAAC,SAAS;aAChB,CAAC;YACF,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACrB;KACF;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"queryByHOSE.js","sourceRoot":"","sources":["../../../src/prediction/utils/queryByHOSE.ts"],"names":[],"mappings":"AAkBA,MAAM,UAAU,WAAW,CACzB,MAAW,EACX,EAAqB,EACrB,OAAkC;IAElC,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAElC,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE;QAC5B,IAAI,GAAG,CAAC;QACR,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,KAAK,IAAI,CAAC,GAAG,aAAa,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAC/C,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;gBACT,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7B,KAAK,GAAG,CAAC,CAAC;aACX;SACF;QAED,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,KAAK,EAAE;YACtC,MAAM,IAAI,GAAG;gBACX,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;gBACvB,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;gBAC1B,KAAK,EAAE,CAAC,UAAU,CAAC;gBACnB,OAAO,EAAE,CAAC;gBACV,KAAK;gBACL,SAAS,EACP,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;oBACnB,CAAC,CAAC;wBACE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;wBACZ,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;wBACV,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;wBACX,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;wBACX,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;qBACX;oBACH,CAAC,CAAC,SAAS;aAChB,CAAC;YACF,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACrB;KACF;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,11 @@
1
+ export function shouldPredict(key, options) {
2
+ if (key in options)
3
+ return true;
4
+ const heteroRequired = 'hsqc' in options || 'hmbc' in options;
5
+ return key === 'C'
6
+ ? heteroRequired
7
+ : key === 'H'
8
+ ? heteroRequired || 'cosy' in options
9
+ : false;
10
+ }
11
+ //# sourceMappingURL=shouldPredict.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shouldPredict.js","sourceRoot":"","sources":["../../../src/prediction/utils/shouldPredict.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,aAAa,CAC3B,GAAwC,EACxC,OAAsC;IAEtC,IAAI,GAAG,IAAI,OAAO;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,cAAc,GAAG,MAAM,IAAI,OAAO,IAAI,MAAM,IAAI,OAAO,CAAC;IAC9D,OAAO,GAAG,KAAK,GAAG;QAChB,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,GAAG,KAAK,GAAG;YACb,CAAC,CAAC,cAAc,IAAI,MAAM,IAAI,OAAO;YACrC,CAAC,CAAC,KAAK,CAAC;AACZ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nmr-processing",
3
- "version": "9.9.2",
3
+ "version": "10.0.0",
4
4
  "description": "Pure functions allowing to process NMR spectra.",
5
5
  "main": "./lib/index.js",
6
6
  "module": "./lib-esm/index.js",
@@ -58,7 +58,6 @@
58
58
  "@lukeed/uuid": "^2.0.1",
59
59
  "@types/lodash": "^4.14.196",
60
60
  "binary-search": "^1.3.6",
61
- "brukerconverter": "^6.1.4",
62
61
  "cross-fetch": "^4.0.0",
63
62
  "form-data": "^4.0.0",
64
63
  "gyromagnetic-ratio": "^1.0.0",
@@ -82,7 +81,7 @@
82
81
  "ml-tree-set": "^0.1.1",
83
82
  "nmr-correlation": "^2.3.3",
84
83
  "nmredata": "^0.9.2",
85
- "openchemlib-utils": "^4.0.0",
84
+ "openchemlib-utils": "^4.2.1",
86
85
  "spectrum-generator": "^8.0.8"
87
86
  }
88
87
  }
@@ -1,12 +1,8 @@
1
1
  import { v4 as generateID } from '@lukeed/uuid';
2
2
  import { Molecule } from 'openchemlib/full';
3
- import { ensureHeterotopicChiralBonds } from 'openchemlib-utils';
4
3
 
5
- import { NMRRange, NMRRangeWithIntegration } from '..';
6
- import {
7
- predictCarbon,
8
- PredictCarbonOptions,
9
- } from '../prediction/predictCarbon';
4
+ import { NMRRange, NMRRangeWithIntegration, predict } from '..';
5
+ import { PredictCarbonOptions } from '../prediction/predictCarbon';
10
6
  import type { NMRSignal1D } from '../signals/NMRSignal1D';
11
7
 
12
8
  import type {
@@ -81,8 +77,13 @@ export async function get13CAssignments(
81
77
  throw new Error('It is needed a OCL molecule instance to assign');
82
78
  }
83
79
 
84
- ensureHeterotopicChiralBonds(molecule);
85
- const { joinedSignals } = await predictCarbon(molecule, predictionOptions);
80
+ const { spectra } = await predict(molecule, {
81
+ predictOptions: {
82
+ C: predictionOptions,
83
+ },
84
+ });
85
+
86
+ const joinedSignals = spectra.carbon?.joinedSignals || [];
86
87
 
87
88
  checkAtomsAndDiaIDs(joinedSignals);
88
89
  const copyRanges = checkIntegration(ranges);