nmr-processing 7.0.1 → 7.3.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 (127) hide show
  1. package/lib/assignment/get13CAssignments.d.ts +3 -3
  2. package/lib/assignment/get13CAssignments.js.map +1 -1
  3. package/lib/assignment/get1HAssignments.d.ts +3 -3
  4. package/lib/assignment/get1HAssignments.js.map +1 -1
  5. package/lib/assignment/getAssignments.d.ts +81 -0
  6. package/lib/assignment/getAssignments.js +44 -0
  7. package/lib/assignment/getAssignments.js.map +1 -0
  8. package/lib/assignment/utils/buildAssignments.d.ts +4 -4
  9. package/lib/assignment/utils/buildAssignments.js.map +1 -1
  10. package/lib/assignment/utils/createMapPossibleAssignments.d.ts +2 -2
  11. package/lib/assignment/utils/exploreTreeRec.d.ts +3 -3
  12. package/lib/assignment/utils/exploreTreeRec.js.map +1 -1
  13. package/lib/assignment/utils/getAssignment/buildAssignments.d.ts +72 -0
  14. package/lib/assignment/utils/getAssignment/buildAssignments.js +205 -0
  15. package/lib/assignment/utils/getAssignment/buildAssignments.js.map +1 -0
  16. package/lib/assignment/utils/getAssignment/checkIDs.d.ts +23 -0
  17. package/lib/assignment/utils/getAssignment/checkIDs.js +57 -0
  18. package/lib/assignment/utils/getAssignment/checkIDs.js.map +1 -0
  19. package/lib/assignment/utils/getAssignment/createMapPossibleAssignment.d.ts +15 -0
  20. package/lib/assignment/utils/getAssignment/createMapPossibleAssignment.js +55 -0
  21. package/lib/assignment/utils/getAssignment/createMapPossibleAssignment.js.map +1 -0
  22. package/lib/assignment/utils/getAssignment/exploreTree.d.ts +22 -0
  23. package/lib/assignment/utils/getAssignment/exploreTree.js +93 -0
  24. package/lib/assignment/utils/getAssignment/exploreTree.js.map +1 -0
  25. package/lib/assignment/utils/getAssignment/formatData.d.ts +14 -0
  26. package/lib/assignment/utils/getAssignment/formatData.js +20 -0
  27. package/lib/assignment/utils/getAssignment/formatData.js.map +1 -0
  28. package/lib/assignment/utils/getAssignment/getIntegrationOfAttachedProtons.d.ts +3 -0
  29. package/lib/assignment/utils/getAssignment/getIntegrationOfAttachedProtons.js +14 -0
  30. package/lib/assignment/utils/getAssignment/getIntegrationOfAttachedProtons.js.map +1 -0
  31. package/lib/assignment/utils/getAssignment/getTargetsAndCorrelations.d.ts +18 -0
  32. package/lib/assignment/utils/getAssignment/getTargetsAndCorrelations.js +37 -0
  33. package/lib/assignment/utils/getAssignment/getTargetsAndCorrelations.js.map +1 -0
  34. package/lib/assignment/utils/getAssignment/getWorkFlow.d.ts +19 -0
  35. package/lib/assignment/utils/getAssignment/getWorkFlow.js +52 -0
  36. package/lib/assignment/utils/getAssignment/getWorkFlow.js.map +1 -0
  37. package/lib/assignment/utils/getAssignment/groupCarbonTargetByIntegrationZone.d.ts +7 -0
  38. package/lib/assignment/utils/getAssignment/groupCarbonTargetByIntegrationZone.js +43 -0
  39. package/lib/assignment/utils/getAssignment/groupCarbonTargetByIntegrationZone.js.map +1 -0
  40. package/lib/assignment/utils/getAssignment/isSpectraData1D.d.ts +2 -0
  41. package/lib/assignment/utils/getAssignment/isSpectraData1D.js +8 -0
  42. package/lib/assignment/utils/getAssignment/isSpectraData1D.js.map +1 -0
  43. package/lib/assignment/utils/getAssignment/partialScore.d.ts +13 -0
  44. package/lib/assignment/utils/getAssignment/partialScore.js +221 -0
  45. package/lib/assignment/utils/getAssignment/partialScore.js.map +1 -0
  46. package/lib/assignment/utils/getAssignment/searchIndices.d.ts +6 -0
  47. package/lib/assignment/utils/getAssignment/searchIndices.js +21 -0
  48. package/lib/assignment/utils/getAssignment/searchIndices.js.map +1 -0
  49. package/lib/assignment/utils/partialScore.d.ts +2 -2
  50. package/lib/index.d.ts +2 -0
  51. package/lib/index.js +7 -1
  52. package/lib/index.js.map +1 -1
  53. package/lib/peaks/peaksToRanges.js +1 -0
  54. package/lib/peaks/peaksToRanges.js.map +1 -1
  55. package/lib/prediction/predictAllSpectra.d.ts +18 -0
  56. package/lib/prediction/predictAllSpectra.js +40 -0
  57. package/lib/prediction/predictAllSpectra.js.map +1 -0
  58. package/lib/prediction/utils/predict2D.d.ts +0 -2
  59. package/lib/prediction/utils/predict2D.js +13 -12
  60. package/lib/prediction/utils/predict2D.js.map +1 -1
  61. package/lib/xyz/xyzAutoZonesPicking.js +5 -1
  62. package/lib/xyz/xyzAutoZonesPicking.js.map +1 -1
  63. package/lib-esm/assignment/get13CAssignments.js.map +1 -1
  64. package/lib-esm/assignment/get1HAssignments.js.map +1 -1
  65. package/lib-esm/assignment/getAssignments.js +37 -0
  66. package/lib-esm/assignment/getAssignments.js.map +1 -0
  67. package/lib-esm/assignment/utils/buildAssignments.js.map +1 -1
  68. package/lib-esm/assignment/utils/exploreTreeRec.js.map +1 -1
  69. package/lib-esm/assignment/utils/getAssignment/buildAssignments.js +198 -0
  70. package/lib-esm/assignment/utils/getAssignment/buildAssignments.js.map +1 -0
  71. package/lib-esm/assignment/utils/getAssignment/checkIDs.js +48 -0
  72. package/lib-esm/assignment/utils/getAssignment/checkIDs.js.map +1 -0
  73. package/lib-esm/assignment/utils/getAssignment/createMapPossibleAssignment.js +51 -0
  74. package/lib-esm/assignment/utils/getAssignment/createMapPossibleAssignment.js.map +1 -0
  75. package/lib-esm/assignment/utils/getAssignment/exploreTree.js +89 -0
  76. package/lib-esm/assignment/utils/getAssignment/exploreTree.js.map +1 -0
  77. package/lib-esm/assignment/utils/getAssignment/formatData.js +16 -0
  78. package/lib-esm/assignment/utils/getAssignment/formatData.js.map +1 -0
  79. package/lib-esm/assignment/utils/getAssignment/getIntegrationOfAttachedProtons.js +10 -0
  80. package/lib-esm/assignment/utils/getAssignment/getIntegrationOfAttachedProtons.js.map +1 -0
  81. package/lib-esm/assignment/utils/getAssignment/getTargetsAndCorrelations.js +33 -0
  82. package/lib-esm/assignment/utils/getAssignment/getTargetsAndCorrelations.js.map +1 -0
  83. package/lib-esm/assignment/utils/getAssignment/getWorkFlow.js +50 -0
  84. package/lib-esm/assignment/utils/getAssignment/getWorkFlow.js.map +1 -0
  85. package/lib-esm/assignment/utils/getAssignment/groupCarbonTargetByIntegrationZone.js +41 -0
  86. package/lib-esm/assignment/utils/getAssignment/groupCarbonTargetByIntegrationZone.js.map +1 -0
  87. package/lib-esm/assignment/utils/getAssignment/isSpectraData1D.js +4 -0
  88. package/lib-esm/assignment/utils/getAssignment/isSpectraData1D.js.map +1 -0
  89. package/lib-esm/assignment/utils/getAssignment/partialScore.js +214 -0
  90. package/lib-esm/assignment/utils/getAssignment/partialScore.js.map +1 -0
  91. package/lib-esm/assignment/utils/getAssignment/searchIndices.js +17 -0
  92. package/lib-esm/assignment/utils/getAssignment/searchIndices.js.map +1 -0
  93. package/lib-esm/index.js +2 -0
  94. package/lib-esm/index.js.map +1 -1
  95. package/lib-esm/peaks/peaksToRanges.js +1 -0
  96. package/lib-esm/peaks/peaksToRanges.js.map +1 -1
  97. package/lib-esm/prediction/predictAllSpectra.js +36 -0
  98. package/lib-esm/prediction/predictAllSpectra.js.map +1 -0
  99. package/lib-esm/prediction/utils/predict2D.js +13 -12
  100. package/lib-esm/prediction/utils/predict2D.js.map +1 -1
  101. package/package.json +14 -13
  102. package/src/assignment/get13CAssignments.ts +2 -2
  103. package/src/assignment/get1HAssignments.ts +2 -2
  104. package/src/assignment/getAssignments.ts +149 -0
  105. package/src/assignment/utils/buildAssignments.ts +4 -4
  106. package/src/assignment/utils/createMapPossibleAssignments.ts +2 -2
  107. package/src/assignment/utils/exploreTreeRec.ts +5 -5
  108. package/src/assignment/utils/getAssignment/buildAssignments.ts +339 -0
  109. package/src/assignment/utils/getAssignment/checkIDs.ts +76 -0
  110. package/src/assignment/utils/getAssignment/createMapPossibleAssignment.ts +85 -0
  111. package/src/assignment/utils/getAssignment/data/correlations.js +713 -0
  112. package/src/assignment/utils/getAssignment/data/predictions.js +34 -0
  113. package/src/assignment/utils/getAssignment/exploreTree.ts +171 -0
  114. package/src/assignment/utils/getAssignment/formatData.ts +35 -0
  115. package/src/assignment/utils/getAssignment/getIntegrationOfAttachedProtons.ts +16 -0
  116. package/src/assignment/utils/getAssignment/getTargetsAndCorrelations.ts +63 -0
  117. package/src/assignment/utils/getAssignment/getWorkFlow.ts +72 -0
  118. package/src/assignment/utils/getAssignment/groupCarbonTargetByIntegrationZone.ts +55 -0
  119. package/src/assignment/utils/getAssignment/isSpectraData1D.ts +7 -0
  120. package/src/assignment/utils/getAssignment/partialScore.ts +308 -0
  121. package/src/assignment/utils/getAssignment/searchIndices.ts +19 -0
  122. package/src/assignment/utils/partialScore.ts +2 -2
  123. package/src/index.ts +2 -0
  124. package/src/ml-tree-set.d.ts +1 -1
  125. package/src/peaks/peaksToRanges.ts +1 -0
  126. package/src/prediction/predictAllSpectra.ts +48 -0
  127. package/src/prediction/utils/predict2D.ts +16 -16
@@ -0,0 +1,85 @@
1
+ import { getCorrelationDelta } from 'nmr-correlation';
2
+
3
+ import { PossibleAssignmentMap } from '../createMapPossibleAssignments';
4
+
5
+ import {
6
+ AtomTypes,
7
+ PredictionsByAtomType,
8
+ RestrictionByCS,
9
+ } from './buildAssignments';
10
+ import { TargetsByAtomType } from './getTargetsAndCorrelations';
11
+
12
+ export interface PossibleAssignments {
13
+ [key: string]: string[];
14
+ }
15
+ export interface MapPossibleAssignments {
16
+ [key: string]: PossibleAssignmentMap;
17
+ }
18
+ export interface CreateMapPossibleAssignmentOptions {
19
+ restrictionByCS: RestrictionByCS;
20
+ predictions: PredictionsByAtomType;
21
+ targets: TargetsByAtomType;
22
+ }
23
+ export function createMapPossibleAssignment(
24
+ expandMap: MapPossibleAssignments,
25
+ props: CreateMapPossibleAssignmentOptions,
26
+ ) {
27
+ const { restrictionByCS, predictions, targets } = props;
28
+
29
+ const { tolerance: toleranceCS, chemicalShiftRestriction } = restrictionByCS;
30
+
31
+ const atomTypes = Object.keys(predictions) as AtomTypes[];
32
+
33
+ for (const atomType of atomTypes) {
34
+ let errorAbs = toleranceCS[atomType];
35
+ let predictionByAtomType = predictions[atomType];
36
+ let targetByAtomType = targets[atomType];
37
+ if (!expandMap[atomType]) expandMap[atomType] = {};
38
+ for (const diaID in predictionByAtomType) {
39
+ let prediction = predictionByAtomType[diaID];
40
+ expandMap[atomType][diaID] = [];
41
+
42
+ if (targetByAtomType) {
43
+ for (const targetID in targetByAtomType) {
44
+ let target = targetByAtomType[targetID];
45
+ const { nbAtoms, protonsCount: protonsCountFromPrediction } =
46
+ prediction;
47
+ const { integration, protonsCount } = target;
48
+
49
+ const couldBeAssigned = !integration
50
+ ? true
51
+ : atomType === 'H'
52
+ ? nbAtoms - integration < 1
53
+ : protonsCount.length > 0
54
+ ? protonsCount.some(
55
+ (count: number) => protonsCountFromPrediction === count,
56
+ )
57
+ : true;
58
+ if (couldBeAssigned) {
59
+ if (
60
+ !chemicalShiftRestriction ||
61
+ typeof prediction.delta === 'undefined'
62
+ ) {
63
+ // Chemical shift is not a restriction
64
+ expandMap[atomType][diaID].push(targetID);
65
+ } else {
66
+ let targetDelta = getCorrelationDelta(target);
67
+ if (targetDelta === undefined) {
68
+ throw new Error(`Correlation has not delta`);
69
+ }
70
+ let distAfterLimit = Math.abs(
71
+ prediction.delta - targetDelta - errorAbs,
72
+ );
73
+
74
+ if (distAfterLimit < 4 * errorAbs) {
75
+ expandMap[atomType][diaID].push(targetID);
76
+ }
77
+ }
78
+ }
79
+ }
80
+ }
81
+ expandMap[atomType][diaID].push('*');
82
+ }
83
+ }
84
+ return expandMap;
85
+ }