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
@@ -1,9 +1,9 @@
1
1
  import { Molecule } from 'openchemlib';
2
2
  import { NMRRange } from '..';
3
3
  import { PredictCarbonOptions } from '../prediction/predictCarbon';
4
- import { RestrictionByCS } from './utils/buildAssignments';
4
+ import { RestrictionByCS1D } from './utils/buildAssignments';
5
5
  export interface Get13CAssignmentsOptions {
6
- restrictionByCS?: Partial<RestrictionByCS>;
6
+ restrictionByCS?: Partial<RestrictionByCS1D>;
7
7
  /**
8
8
  * min score to accept an assignment
9
9
  * @default 1
@@ -30,6 +30,6 @@ export interface Get13CAssignmentsOptions {
30
30
  predictionOptions?: PredictCarbonOptions;
31
31
  }
32
32
  export declare function get13CAssignments(ranges: NMRRange[], molecule: Molecule, options?: Get13CAssignmentsOptions): Promise<{
33
- score: any;
33
+ score: w;
34
34
  assignment: unknown[];
35
35
  }[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"get13CAssignments.js","sourceRoot":"","sources":["../../src/assignment/get13CAssignments.ts"],"names":[],"mappings":";;;;;;AACA,yDAAsE;AAGtE,+DAGqC;AAOrC,+DAA6E;AAC7E,oEAA4C;AAE5C,SAAS,mBAAmB,CAC1B,OAAsB;IAEtB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,IAAI,CAAC,MAAM,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;KACzE;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAkB;IAC1C,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE;QACxB,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS;YAAE,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;KAC5D;IACD,OAAO,MAAmC,CAAC;AAC7C,CAAC;AA8BM,KAAK,UAAU,iBAAiB,CACrC,MAAkB,EAClB,QAAkB,EAClB,UAAoC,EAAE;IAEtC,IAAI,EACF,eAAe,GAAG,EAAE,EACpB,QAAQ,GAAG,CAAC,EACZ,YAAY,GAAG,EAAE,EACjB,mBAAmB,GAAG,CAAC,EACvB,OAAO,GAAG,IAAI,EACd,iBAAiB,GAAG,EAAE,GACvB,GAAG,OAAO,CAAC;IAEZ,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;KACnE;IAED,IAAA,qDAAiC,EAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,IAAA,6BAAa,EAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IAE3E,mBAAmB,CAAC,aAAa,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAE5C,MAAM,OAAO,GAAY,EAAE,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE;QAC9B,MAAM,EAAE,EAAE,GAAG,IAAA,oBAAU,GAAE,EAAE,GAAG,KAAK,CAAC;QACpC,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;KACjD;IAED,OAAO,IAAA,mCAAgB,EAAC;QACtB,eAAe;QACf,OAAO;QACP,QAAQ;QACR,mBAAmB;QACnB,YAAY;QACZ,OAAO;QACP,aAAa;QACb,yBAAyB,EAAE,KAAK;KACjC,CAAC,CAAC;AACL,CAAC;AAxCD,8CAwCC"}
1
+ {"version":3,"file":"get13CAssignments.js","sourceRoot":"","sources":["../../src/assignment/get13CAssignments.ts"],"names":[],"mappings":";;;;;;AACA,yDAAsE;AAGtE,+DAGqC;AAOrC,+DAA+E;AAC/E,oEAA4C;AAE5C,SAAS,mBAAmB,CAC1B,OAAsB;IAEtB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,IAAI,CAAC,MAAM,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;KACzE;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAkB;IAC1C,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE;QACxB,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS;YAAE,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;KAC5D;IACD,OAAO,MAAmC,CAAC;AAC7C,CAAC;AA8BM,KAAK,UAAU,iBAAiB,CACrC,MAAkB,EAClB,QAAkB,EAClB,UAAoC,EAAE;IAEtC,IAAI,EACF,eAAe,GAAG,EAAE,EACpB,QAAQ,GAAG,CAAC,EACZ,YAAY,GAAG,EAAE,EACjB,mBAAmB,GAAG,CAAC,EACvB,OAAO,GAAG,IAAI,EACd,iBAAiB,GAAG,EAAE,GACvB,GAAG,OAAO,CAAC;IAEZ,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;KACnE;IAED,IAAA,qDAAiC,EAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,IAAA,6BAAa,EAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IAE3E,mBAAmB,CAAC,aAAa,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAE5C,MAAM,OAAO,GAAY,EAAE,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE;QAC9B,MAAM,EAAE,EAAE,GAAG,IAAA,oBAAU,GAAE,EAAE,GAAG,KAAK,CAAC;QACpC,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;KACjD;IAED,OAAO,IAAA,mCAAgB,EAAC;QACtB,eAAe;QACf,OAAO;QACP,QAAQ;QACR,mBAAmB;QACnB,YAAY;QACZ,OAAO;QACP,aAAa;QACb,yBAAyB,EAAE,KAAK;KACjC,CAAC,CAAC;AACL,CAAC;AAxCD,8CAwCC"}
@@ -3,11 +3,11 @@ import { NMRRange } from '..';
3
3
  import { PredictProtonOptions } from '../prediction/predictProton';
4
4
  import type { NMRSignal1D } from '../signals/NMRSignal1D';
5
5
  import { MakeMandatory } from '../utilities/MakeMandatory';
6
- import { RestrictionByCS } from './utils/buildAssignments';
6
+ import { RestrictionByCS1D } from './utils/buildAssignments';
7
7
  export declare type NMRSignal1DWithAtomsAndDiaIDs = MakeMandatory<NMRSignal1D, 'atoms' | 'diaIDs' | 'nbAtoms'>;
8
8
  export declare type NMRRangeWithIntegration = MakeMandatory<NMRRange, 'integration'>;
9
9
  export interface Get1HAssignmentsOptions {
10
- restrictionByCS?: Partial<RestrictionByCS>;
10
+ restrictionByCS?: Partial<RestrictionByCS1D>;
11
11
  /**
12
12
  * min score to accept an assignment
13
13
  * @default 1
@@ -37,6 +37,6 @@ export interface Targets {
37
37
  [key: string]: NMRRangeWithIntegration;
38
38
  }
39
39
  export declare function get1HAssignments(ranges: NMRRange[], molecule: Molecule, options?: Get1HAssignmentsOptions): Promise<{
40
- score: any;
40
+ score: w;
41
41
  assignment: unknown[];
42
42
  }[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"get1HAssignments.js","sourceRoot":"","sources":["../../src/assignment/get1HAssignments.ts"],"names":[],"mappings":";;;;;;AACA,yDAAsE;AAGtE,+DAGqC;AAIrC,+DAA6E;AAC7E,oEAA4C;AAO5C,SAAS,mBAAmB,CAC1B,OAAsB;IAEtB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,IAAI,CAAC,MAAM,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;KACzE;AACH,CAAC;AAID,SAAS,mBAAmB,CAC1B,MAAkB;IAElB,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE;QACxB,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE;YACnC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;SACxD;KACF;AACH,CAAC;AAkCM,KAAK,UAAU,gBAAgB,CACpC,MAAkB,EAClB,QAAkB,EAClB,UAAmC,EAAE;IAErC,IAAI,EACF,eAAe,EACf,QAAQ,GAAG,CAAC,EACZ,YAAY,GAAG,EAAE,EACjB,mBAAmB,GAAG,CAAC,EACvB,OAAO,GAAG,IAAI,EACd,iBAAiB,GAAG,EAAE,GACvB,GAAG,OAAO,CAAC;IAEZ,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;KACnE;IAED,QAAQ,CAAC,oBAAoB,EAAE,CAAC;IAChC,IAAA,qDAAiC,EAAC,QAAQ,CAAC,CAAC;IAE5C,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,IAAA,6BAAa,EAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IAE3E,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,mBAAmB,CAAC,aAAa,CAAC,CAAC;IAEnC,MAAM,OAAO,GAAY,EAAE,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,MAAM,EAAE,EAAE,GAAG,IAAA,oBAAU,GAAE,EAAE,GAAG,KAAK,CAAC;QACpC,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;KACjD;IAED,OAAO,IAAA,mCAAgB,EAAC;QACtB,eAAe;QACf,OAAO;QACP,QAAQ;QACR,mBAAmB;QACnB,YAAY;QACZ,OAAO;QACP,aAAa;QACb,yBAAyB,EAAE,IAAI;KAChC,CAAC,CAAC;AACL,CAAC;AA1CD,4CA0CC"}
1
+ {"version":3,"file":"get1HAssignments.js","sourceRoot":"","sources":["../../src/assignment/get1HAssignments.ts"],"names":[],"mappings":";;;;;;AACA,yDAAsE;AAGtE,+DAGqC;AAIrC,+DAA+E;AAC/E,oEAA4C;AAO5C,SAAS,mBAAmB,CAC1B,OAAsB;IAEtB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,IAAI,CAAC,MAAM,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;KACzE;AACH,CAAC;AAID,SAAS,mBAAmB,CAC1B,MAAkB;IAElB,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE;QACxB,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE;YACnC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;SACxD;KACF;AACH,CAAC;AAkCM,KAAK,UAAU,gBAAgB,CACpC,MAAkB,EAClB,QAAkB,EAClB,UAAmC,EAAE;IAErC,IAAI,EACF,eAAe,EACf,QAAQ,GAAG,CAAC,EACZ,YAAY,GAAG,EAAE,EACjB,mBAAmB,GAAG,CAAC,EACvB,OAAO,GAAG,IAAI,EACd,iBAAiB,GAAG,EAAE,GACvB,GAAG,OAAO,CAAC;IAEZ,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;KACnE;IAED,QAAQ,CAAC,oBAAoB,EAAE,CAAC;IAChC,IAAA,qDAAiC,EAAC,QAAQ,CAAC,CAAC;IAE5C,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,IAAA,6BAAa,EAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IAE3E,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,mBAAmB,CAAC,aAAa,CAAC,CAAC;IAEnC,MAAM,OAAO,GAAY,EAAE,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,MAAM,EAAE,EAAE,GAAG,IAAA,oBAAU,GAAE,EAAE,GAAG,KAAK,CAAC;QACpC,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;KACjD;IAED,OAAO,IAAA,mCAAgB,EAAC;QACtB,eAAe;QACf,OAAO;QACP,QAAQ;QACR,mBAAmB;QACnB,YAAY;QACZ,OAAO;QACP,aAAa;QACb,yBAAyB,EAAE,IAAI;KAChC,CAAC,CAAC;AACL,CAAC;AA1CD,4CA0CC"}
@@ -0,0 +1,81 @@
1
+ import { Molecule } from 'openchemlib';
2
+ import { NMRSignal1D } from '..';
3
+ import type { PredictCarbonOptions } from '../prediction/predictCarbon';
4
+ import type { PredictProtonOptions } from '../prediction/predictProton';
5
+ import { NMRRange } from '../xy/NMRRange';
6
+ import { NMRZone } from '../xyz/NMRZone';
7
+ import { AtomTypes, RestrictionByCS } from './utils/getAssignment/buildAssignments';
8
+ export interface SpectraData1D {
9
+ id?: string;
10
+ ranges: NMRRange[];
11
+ info?: any;
12
+ }
13
+ export interface SpectraData2D {
14
+ id?: string;
15
+ zones: NMRZone[];
16
+ info?: any;
17
+ }
18
+ export declare type SpectraData = SpectraData1D | SpectraData2D;
19
+ export interface GetAutoAssignmentInput {
20
+ /**
21
+ * It has the number of each atoms in the chemical structure. e.g. { C: 6, H: 6 }
22
+ */
23
+ atoms?: {
24
+ [key: string]: number;
25
+ };
26
+ spectra: SpectraData[];
27
+ /**
28
+ * Instance of Molecule
29
+ */
30
+ molecule: Molecule;
31
+ }
32
+ export interface GetAssignmentsOptions {
33
+ justAssign?: Array<AtomTypes[]>;
34
+ restrictionByCS?: Partial<RestrictionByCS>;
35
+ /**
36
+ * min score to accept an assignment
37
+ * @default 1
38
+ */
39
+ minScore?: number;
40
+ /**
41
+ * maximal number of assignments to return
42
+ * @default 10
43
+ */
44
+ maxSolutions?: number;
45
+ /**
46
+ * number of allowed unassignment signals
47
+ * @default 0
48
+ */
49
+ nbAllowedUnAssigned?: {
50
+ [key: string]: number;
51
+ };
52
+ /**
53
+ * time limit in miliseconds to finish the assignment procedure.
54
+ * @default 6000
55
+ */
56
+ timeout?: number;
57
+ /**
58
+ * predictions
59
+ */
60
+ predictions?: {
61
+ H?: NMRSignal1D[];
62
+ C?: NMRSignal1D[];
63
+ };
64
+ /**
65
+ * prediction options
66
+ */
67
+ predictionOptions?: {
68
+ H?: PredictProtonOptions;
69
+ C?: PredictCarbonOptions;
70
+ };
71
+ /**
72
+ * correlation options
73
+ */
74
+ correlation?: {
75
+ tolerance?: number;
76
+ };
77
+ }
78
+ export declare function getAssignments(input: GetAutoAssignmentInput, options?: GetAssignmentsOptions): Promise<{
79
+ score: w;
80
+ assignment: import("./utils/getAssignment/checkIDs").SpectraDataWithIds[];
81
+ }[]>;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getAssignments = void 0;
7
+ const openchemlib_utils_1 = require("openchemlib-utils");
8
+ const buildAssignments_1 = require("./utils/getAssignment/buildAssignments");
9
+ const checkIDs_1 = require("./utils/getAssignment/checkIDs");
10
+ const getTargetsAndCorrelations_1 = require("./utils/getAssignment/getTargetsAndCorrelations");
11
+ const getWorkFlow_1 = __importDefault(require("./utils/getAssignment/getWorkFlow"));
12
+ async function getAssignments(input, options = {}) {
13
+ let { restrictionByCS = {}, justAssign, minScore = 1, maxSolutions = 10, nbAllowedUnAssigned, timeout = 6000, predictionOptions = {}, predictions = {}, correlation: correlationOptions = {}, } = options;
14
+ const { tolerance = { H: 0.2, C: 1 }, useChemicalShiftScore = false, chemicalShiftRestriction = true, } = restrictionByCS;
15
+ const molecule = input.molecule;
16
+ if (!molecule)
17
+ throw new Error('It is needed a molecule to assign');
18
+ molecule.addImplicitHydrogens();
19
+ (0, openchemlib_utils_1.addDiastereotopicMissingChirality)(molecule);
20
+ const spectra = (0, checkIDs_1.checkIDs)(input.spectra);
21
+ const { targets, correlations } = (0, getTargetsAndCorrelations_1.getTargetsAndCorrelations)(spectra, correlationOptions);
22
+ const { assignmentOrder } = (0, getWorkFlow_1.default)(correlations, justAssign);
23
+ const solutions = await (0, buildAssignments_1.buildAssignments)({
24
+ restrictionByCS: {
25
+ tolerance,
26
+ useChemicalShiftScore,
27
+ chemicalShiftRestriction,
28
+ },
29
+ spectra,
30
+ molecule,
31
+ timeout,
32
+ minScore,
33
+ maxSolutions,
34
+ assignmentOrder,
35
+ nbAllowedUnAssigned,
36
+ correlations,
37
+ targets,
38
+ predictionOptions,
39
+ predictions,
40
+ });
41
+ return solutions;
42
+ }
43
+ exports.getAssignments = getAssignments;
44
+ //# sourceMappingURL=getAssignments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAssignments.js","sourceRoot":"","sources":["../../src/assignment/getAssignments.ts"],"names":[],"mappings":";;;;;;AACA,yDAAsE;AAQtE,6EAIgD;AAChD,6DAA0D;AAC1D,+FAA4F;AAC5F,oFAA4D;AA2ErD,KAAK,UAAU,cAAc,CAClC,KAA6B,EAC7B,UAAiC,EAAE;IAEnC,IAAI,EACF,eAAe,GAAG,EAAE,EACpB,UAAU,EACV,QAAQ,GAAG,CAAC,EACZ,YAAY,GAAG,EAAE,EACjB,mBAAmB,EACnB,OAAO,GAAG,IAAI,EACd,iBAAiB,GAAG,EAAE,EACtB,WAAW,GAAG,EAAE,EAChB,WAAW,EAAE,kBAAkB,GAAG,EAAE,GACrC,GAAG,OAAO,CAAC;IAEZ,MAAM,EACJ,SAAS,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAC5B,qBAAqB,GAAG,KAAK,EAC7B,wBAAwB,GAAG,IAAI,GAChC,GAAG,eAAe,CAAC;IAEpB,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAEhC,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAEpE,QAAQ,CAAC,oBAAoB,EAAE,CAAC;IAChC,IAAA,qDAAiC,EAAC,QAAQ,CAAC,CAAC;IAE5C,MAAM,OAAO,GAAG,IAAA,mBAAQ,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAExC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,IAAA,qDAAyB,EACzD,OAAO,EACP,kBAAkB,CACnB,CAAC;IACF,MAAM,EAAE,eAAe,EAAE,GAAG,IAAA,qBAAW,EAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAElE,MAAM,SAAS,GAAG,MAAM,IAAA,mCAAgB,EAAC;QACvC,eAAe,EAAE;YACf,SAAS;YACT,qBAAqB;YACrB,wBAAwB;SACzB;QACD,OAAO;QACP,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,YAAY;QACZ,eAAe;QACf,mBAAmB;QACnB,YAAY;QACZ,OAAO;QACP,iBAAiB;QACjB,WAAW;KACZ,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC;AACnB,CAAC;AAzDD,wCAyDC"}
@@ -1,12 +1,12 @@
1
1
  import treeSet from 'ml-tree-set';
2
2
  import { Targets, NMRSignal1DWithAtomsAndDiaIDs } from '../get1HAssignments';
3
- export interface RestrictionByCS {
3
+ export interface RestrictionByCS1D {
4
4
  chemicalShiftRestriction: boolean;
5
5
  tolerance: number;
6
6
  useChemicalShiftScore: boolean;
7
7
  }
8
8
  export interface BuildAssignmentsProps {
9
- restrictionByCS?: Partial<RestrictionByCS>;
9
+ restrictionByCS?: Partial<RestrictionByCS1D>;
10
10
  timeout: number;
11
11
  minScore: number;
12
12
  useIntegrationRestriction: boolean;
@@ -23,11 +23,11 @@ export interface Signals1DAssignment extends NMRSignal1DWithAtomsAndDiaIDs {
23
23
  export interface Predictions1Dassignments {
24
24
  [key: string]: Signals1DAssignment;
25
25
  }
26
- export interface StoreAssignments1D {
26
+ export interface StoreAssignments {
27
27
  solutions: treeSet;
28
28
  nSolutions: number;
29
29
  }
30
30
  export declare function buildAssignments(props: BuildAssignmentsProps): Promise<{
31
- score: any;
31
+ score: w;
32
32
  assignment: unknown[];
33
33
  }[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"buildAssignments.js","sourceRoot":"","sources":["../../../src/assignment/utils/buildAssignments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buildAssignments.js","sourceRoot":"","sources":["../../../src/assignment/utils/buildAssignments.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { MakeMandatory } from '../../utilities/MakeMandatory';
2
2
  import type { Targets } from '../get1HAssignments';
3
- import type { RestrictionByCS, Predictions1Dassignments } from './buildAssignments';
4
- declare type RestrictionByCSMandatory = MakeMandatory<RestrictionByCS, 'chemicalShiftRestriction' | 'tolerance' | 'useChemicalShiftScore'>;
3
+ import type { RestrictionByCS1D, Predictions1Dassignments } from './buildAssignments';
4
+ declare type RestrictionByCSMandatory = MakeMandatory<RestrictionByCS1D, 'chemicalShiftRestriction' | 'tolerance' | 'useChemicalShiftScore'>;
5
5
  interface CreateMapPossibleAssignments {
6
6
  predictions: Predictions1Dassignments;
7
7
  restrictionByCS: RestrictionByCSMandatory;
@@ -1,9 +1,9 @@
1
1
  import type { Targets } from '../get1HAssignments';
2
- import type { RestrictionByCS, StoreAssignments1D, Predictions1Dassignments } from './buildAssignments';
2
+ import type { RestrictionByCS1D, StoreAssignments, Predictions1Dassignments } from './buildAssignments';
3
3
  import type { PossibleAssignmentMap } from './createMapPossibleAssignments';
4
4
  export interface ExploreTreeRecProps {
5
5
  nSources: number;
6
- restrictionByCS: RestrictionByCS;
6
+ restrictionByCS: RestrictionByCS1D;
7
7
  timeout: number;
8
8
  timeStart: number;
9
9
  maxSolutions: number;
@@ -15,7 +15,7 @@ export interface ExploreTreeRecProps {
15
15
  possibleAssignmentMap: PossibleAssignmentMap;
16
16
  diaIDPeerPossibleAssignment: string[];
17
17
  }
18
- export declare function exploreTreeRec(props: ExploreTreeRecProps, currentIndex: number, partial: Array<string | null>, store: StoreAssignments1D): StoreAssignments1D | undefined;
18
+ export declare function exploreTreeRec(props: ExploreTreeRecProps, currentIndex: number, partial: Array<string | null>, store: StoreAssignments): StoreAssignments | undefined;
19
19
  export interface SolutionAssignment {
20
20
  assignment: string[];
21
21
  score: number;
@@ -1 +1 @@
1
- {"version":3,"file":"exploreTreeRec.js","sourceRoot":"","sources":["../../../src/assignment/utils/exploreTreeRec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exploreTreeRec.js","sourceRoot":"","sources":["../../../src/assignment/utils/exploreTreeRec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ import { Values } from 'nmr-correlation';
2
+ import { Molecule } from 'openchemlib';
3
+ import { NMRSignal1D, PredictCarbonOptions, PredictProtonOptions } from '../../..';
4
+ import { MakeMandatory } from '../../../utilities/MakeMandatory';
5
+ import { SpectraDataWithIds } from './checkIDs';
6
+ import { TargetsByAtomType } from './getTargetsAndCorrelations';
7
+ export declare type AtomTypes = 'H' | 'C';
8
+ export declare type CurrentAtoms = Array<AtomTypes>;
9
+ export interface Partial {
10
+ [key: string]: Array<string | null>;
11
+ }
12
+ export interface DiaIDPeerPossibleAssignment {
13
+ [key: string]: string[];
14
+ }
15
+ export interface RestrictionByCS {
16
+ chemicalShiftRestriction: boolean;
17
+ tolerance: {
18
+ [key: string]: number;
19
+ };
20
+ useChemicalShiftScore: boolean;
21
+ }
22
+ export interface BuildAssignmentInput {
23
+ spectra: SpectraDataWithIds[];
24
+ molecule: Molecule;
25
+ restrictionByCS: RestrictionByCS;
26
+ timeout: number;
27
+ minScore: number;
28
+ nbAllowedUnAssigned?: {
29
+ [key: string]: number;
30
+ };
31
+ maxSolutions: number;
32
+ correlations: Values;
33
+ assignmentOrder: Array<Array<AtomTypes>>;
34
+ predictions: {
35
+ H?: NMRSignal1D[];
36
+ C?: NMRSignal1D[];
37
+ };
38
+ predictionOptions: {
39
+ H?: PredictProtonOptions;
40
+ C?: PredictCarbonOptions;
41
+ };
42
+ targets: TargetsByAtomType;
43
+ }
44
+ declare type NMRSignal1DFromPrediction = MakeMandatory<NMRSignal1D, 'nbAtoms' | 'diaIDs' | 'atoms'>;
45
+ export interface Prediction extends NMRSignal1DFromPrediction {
46
+ diaIDIndex: number;
47
+ allHydrogens: number;
48
+ protonsCount: number;
49
+ pathLength: number[];
50
+ }
51
+ export interface Predictions {
52
+ [key: string]: Prediction;
53
+ }
54
+ export interface PredictionsByAtomType {
55
+ [key: string]: Predictions;
56
+ }
57
+ export interface InfoByAtomType {
58
+ [key: string]: {
59
+ nSources: number;
60
+ currentIndex: number;
61
+ nbAllowedUnAssigned: number;
62
+ };
63
+ }
64
+ export declare const getAllHydrogens: {
65
+ C: (m: Molecule, i: number) => number;
66
+ H: () => number;
67
+ };
68
+ export declare function buildAssignments(props: BuildAssignmentInput): Promise<{
69
+ score: w;
70
+ assignment: SpectraDataWithIds[];
71
+ }[]>;
72
+ export {};
@@ -0,0 +1,205 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.buildAssignments = exports.getAllHydrogens = void 0;
7
+ const ml_tree_set_1 = __importDefault(require("ml-tree-set"));
8
+ const openchemlib_utils_1 = require("openchemlib-utils");
9
+ const predictCarbon_1 = require("../../../prediction/predictCarbon");
10
+ const predictProton_1 = require("../../../prediction/predictProton");
11
+ const createMapPossibleAssignment_1 = require("./createMapPossibleAssignment");
12
+ const exploreTree_1 = require("./exploreTree");
13
+ const isSpectraData1D_1 = require("./isSpectraData1D");
14
+ const searchIndices_1 = require("./searchIndices");
15
+ const comparator = (a, b) => {
16
+ return b.score - a.score;
17
+ };
18
+ const predictor = { H: predictProton_1.predictProton, C: predictCarbon_1.predictCarbon };
19
+ function checkNMRSignal1D(signals) {
20
+ const keys = [
21
+ 'nbAtoms',
22
+ 'diaIDs',
23
+ 'atoms',
24
+ ];
25
+ for (const signal of signals) {
26
+ for (let key of keys) {
27
+ if (!signal[key])
28
+ throw new Error(`property ${key} does not exist`);
29
+ }
30
+ }
31
+ }
32
+ exports.getAllHydrogens = {
33
+ C: (m, i) => m.getAllHydrogens(i),
34
+ H: () => 1,
35
+ };
36
+ async function buildAssignments(props) {
37
+ const { spectra, molecule, restrictionByCS, timeout, minScore, nbAllowedUnAssigned = {}, maxSolutions, correlations, assignmentOrder, predictionOptions, predictions: inputPrediction = {}, targets, } = props;
38
+ let date = new Date();
39
+ let timeStart = date.getTime();
40
+ let lowerBoundScore = minScore;
41
+ let store = {
42
+ solutions: new ml_tree_set_1.default(comparator),
43
+ nSolutions: 0,
44
+ };
45
+ const pathLengthMatrix = (0, openchemlib_utils_1.getConnectivityMatrix)(molecule, {
46
+ pathLength: true,
47
+ });
48
+ let infoByAtomType = {};
49
+ const predictions = {};
50
+ let possibleAssignmentMap = {};
51
+ let diaIDPeerPossibleAssignment = {};
52
+ for (const atomTypesToPredict of assignmentOrder) {
53
+ for (const atomType of atomTypesToPredict) {
54
+ const options = predictionOptions[atomType];
55
+ const predictedSignals = inputPrediction[atomType];
56
+ let { joinedSignals } = predictedSignals
57
+ ? { joinedSignals: predictedSignals }
58
+ : await predictor[atomType](molecule, options);
59
+ checkNMRSignal1D(joinedSignals);
60
+ if (!predictions[atomType])
61
+ predictions[atomType] = {};
62
+ for (let prediction of joinedSignals) {
63
+ const diaID = prediction.diaIDs[0];
64
+ const index = prediction.atoms[0];
65
+ const allHydrogens = exports.getAllHydrogens[atomType](molecule, index);
66
+ predictions[atomType][diaID] = {
67
+ ...prediction,
68
+ diaIDIndex: index,
69
+ allHydrogens: prediction.nbAtoms * allHydrogens,
70
+ protonsCount: allHydrogens,
71
+ pathLength: pathLengthMatrix[index],
72
+ };
73
+ }
74
+ infoByAtomType[atomType] = {
75
+ nSources: joinedSignals.length,
76
+ currentIndex: 0,
77
+ nbAllowedUnAssigned: nbAllowedUnAssigned[atomType] || 0,
78
+ };
79
+ }
80
+ possibleAssignmentMap = (0, createMapPossibleAssignment_1.createMapPossibleAssignment)(possibleAssignmentMap, {
81
+ restrictionByCS,
82
+ predictions,
83
+ targets,
84
+ });
85
+ diaIDPeerPossibleAssignment = {};
86
+ for (const atomType in possibleAssignmentMap) {
87
+ diaIDPeerPossibleAssignment[atomType] = Object.keys(possibleAssignmentMap[atomType]);
88
+ }
89
+ let sourceOfPartials = getSourceOfPartials(store, infoByAtomType, atomTypesToPredict);
90
+ store = {
91
+ solutions: new ml_tree_set_1.default(comparator),
92
+ nSolutions: 0,
93
+ };
94
+ for (let partial of sourceOfPartials) {
95
+ (0, exploreTree_1.exploreTree)({
96
+ currentAtomTypes: atomTypesToPredict,
97
+ restrictionByCS,
98
+ timeout,
99
+ timeStart,
100
+ targets,
101
+ predictions,
102
+ correlations,
103
+ maxSolutions,
104
+ lowerBoundScore,
105
+ possibleAssignmentMap,
106
+ diaIDPeerPossibleAssignment,
107
+ }, infoByAtomType, partial, store);
108
+ }
109
+ }
110
+ return annotateSpectraData({
111
+ store,
112
+ spectra,
113
+ diaIDPeerPossibleAssignment,
114
+ targets,
115
+ });
116
+ }
117
+ exports.buildAssignments = buildAssignments;
118
+ function annotateSpectraData(input) {
119
+ var _a;
120
+ const { store, spectra, diaIDPeerPossibleAssignment, targets } = input;
121
+ const { solutions } = store;
122
+ const mapSignalId = {};
123
+ const atomTypes = Object.keys(targets);
124
+ for (const atomType of atomTypes) {
125
+ const targetByAtomType = targets[atomType];
126
+ for (const targetId in targetByAtomType) {
127
+ let target = targetByAtomType[targetId];
128
+ for (const link of target.link) {
129
+ const signalId = link.signal.id;
130
+ if (mapSignalId[signalId])
131
+ continue;
132
+ mapSignalId[link.signal.id] = (0, searchIndices_1.searchIndices)(signalId, spectra);
133
+ }
134
+ }
135
+ }
136
+ const result = [];
137
+ for (let solution of solutions.elements) {
138
+ const spectraResult = JSON.parse(JSON.stringify(spectra));
139
+ const { assignment, score } = solution;
140
+ const atomTypes = Object.keys(assignment);
141
+ for (const atomType of atomTypes) {
142
+ const targetByAtomType = targets[atomType];
143
+ const assignmentPeerAtomType = assignment[atomType];
144
+ for (let index = 0; index < assignmentPeerAtomType.length; index++) {
145
+ const targetID = assignmentPeerAtomType[index];
146
+ if (targetID === '*' || !targetID)
147
+ continue;
148
+ const target = targetByAtomType[targetID];
149
+ const diaId = diaIDPeerPossibleAssignment[atomType][index];
150
+ for (let link of target.link) {
151
+ const { spectrumIndex, elementIndex, signalIndex } = mapSignalId[link.signal.id];
152
+ const spectrum = spectraResult[spectrumIndex];
153
+ if ((0, isSpectraData1D_1.isSpectraData1D)(spectrum)) {
154
+ let { ranges } = spectrum;
155
+ let range = ranges[elementIndex];
156
+ let signal = range.signals[signalIndex];
157
+ if (!signal.diaIDs)
158
+ signal.diaIDs = [];
159
+ signal.diaIDs.push(diaId);
160
+ }
161
+ else {
162
+ const axis = link.axis;
163
+ const signal = spectrum.zones[elementIndex].signals[signalIndex];
164
+ if (!signal[axis].diaIDs)
165
+ signal[axis].diaIDs = [];
166
+ (_a = signal[axis].diaIDs) === null || _a === void 0 ? void 0 : _a.push(diaId);
167
+ }
168
+ }
169
+ }
170
+ }
171
+ result.push({
172
+ score,
173
+ assignment: spectraResult,
174
+ });
175
+ }
176
+ return result;
177
+ }
178
+ function getSourceOfPartials(store, infoByAtomType, currentAtoms) {
179
+ return store.nSolutions > 0
180
+ ? store.solutions.elements.map((e) => {
181
+ let currentAssignment = e.assignment;
182
+ for (const atom of currentAtoms) {
183
+ currentAssignment[atom] = fillPartial(infoByAtomType[atom].nSources);
184
+ }
185
+ return currentAssignment;
186
+ })
187
+ : initializePartials(infoByAtomType, currentAtoms);
188
+ }
189
+ function initializePartials(infoByAtomType, currentAtoms) {
190
+ const partial = {};
191
+ const atomsType = Object.keys(infoByAtomType);
192
+ for (const atom of atomsType) {
193
+ const value = currentAtoms.includes(atom) ? null : '*';
194
+ partial[atom] = fillPartial(infoByAtomType[atom].nSources, value);
195
+ }
196
+ return [partial];
197
+ }
198
+ function fillPartial(nSources, value = null) {
199
+ const partial = new Array(nSources);
200
+ for (let i = 0; i < nSources; i++) {
201
+ partial[i] = value;
202
+ }
203
+ return partial;
204
+ }
205
+ //# sourceMappingURL=buildAssignments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildAssignments.js","sourceRoot":"","sources":["../../../../src/assignment/utils/getAssignment/buildAssignments.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { NMRRange, NMRSignal1D, NMRSignal2D, NMRZone } from '../../..';
2
+ import { MakeMandatory } from '../../../utilities/MakeMandatory';
3
+ import type { SpectraData, SpectraData1D, SpectraData2D } from '../../getAssignments';
4
+ export declare type NMRSignal1DWithId = MakeMandatory<NMRSignal1D, 'id'>;
5
+ export declare type NMRSignal2DWithId = MakeMandatory<NMRSignal2D, 'id'>;
6
+ export interface NMRZoneWithIds extends Omit<NMRZone, 'signals' | 'id'> {
7
+ id: string;
8
+ signals: Array<NMRSignal2DWithId>;
9
+ }
10
+ export interface NMRRangeWithIds extends Omit<NMRRange, 'id' | 'signals'> {
11
+ id: string;
12
+ signals: Array<NMRSignal1DWithId>;
13
+ }
14
+ export interface SpectraData1DWithIds extends Omit<SpectraData1D, 'ranges'> {
15
+ ranges: NMRRangeWithIds[];
16
+ }
17
+ export interface SpectraData2DWithIds extends Omit<SpectraData2D, 'zones'> {
18
+ zones: NMRZoneWithIds[];
19
+ }
20
+ export declare type SpectraDataWithIds = SpectraData1DWithIds | SpectraData2DWithIds;
21
+ export declare function checkIDs(input?: SpectraData[]): SpectraDataWithIds[];
22
+ export declare function hasIDs(data: NMRRange[] | NMRZone[]): asserts data is NMRRangeWithIds[] | NMRZoneWithIds[];
23
+ export declare function addIDs(data: NMRRange[] | NMRZone[]): NMRRangeWithIds[] | NMRZoneWithIds[];