nmr-processing 7.1.0 → 7.2.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.
- package/lib/assignment/get13CAssignments.d.ts +3 -3
- package/lib/assignment/get13CAssignments.js.map +1 -1
- package/lib/assignment/get1HAssignments.d.ts +3 -3
- package/lib/assignment/get1HAssignments.js.map +1 -1
- package/lib/assignment/getAssignments.d.ts +81 -0
- package/lib/assignment/getAssignments.js +44 -0
- package/lib/assignment/getAssignments.js.map +1 -0
- package/lib/assignment/utils/buildAssignments.d.ts +4 -4
- package/lib/assignment/utils/buildAssignments.js.map +1 -1
- package/lib/assignment/utils/createMapPossibleAssignments.d.ts +2 -2
- package/lib/assignment/utils/exploreTreeRec.d.ts +3 -3
- package/lib/assignment/utils/exploreTreeRec.js.map +1 -1
- package/lib/assignment/utils/getAssignment/buildAssignments.d.ts +72 -0
- package/lib/assignment/utils/getAssignment/buildAssignments.js +205 -0
- package/lib/assignment/utils/getAssignment/buildAssignments.js.map +1 -0
- package/lib/assignment/utils/getAssignment/checkIDs.d.ts +23 -0
- package/lib/assignment/utils/getAssignment/checkIDs.js +57 -0
- package/lib/assignment/utils/getAssignment/checkIDs.js.map +1 -0
- package/lib/assignment/utils/getAssignment/createMapPossibleAssignment.d.ts +15 -0
- package/lib/assignment/utils/getAssignment/createMapPossibleAssignment.js +55 -0
- package/lib/assignment/utils/getAssignment/createMapPossibleAssignment.js.map +1 -0
- package/lib/assignment/utils/getAssignment/exploreTree.d.ts +22 -0
- package/lib/assignment/utils/getAssignment/exploreTree.js +93 -0
- package/lib/assignment/utils/getAssignment/exploreTree.js.map +1 -0
- package/lib/assignment/utils/getAssignment/formatData.d.ts +14 -0
- package/lib/assignment/utils/getAssignment/formatData.js +20 -0
- package/lib/assignment/utils/getAssignment/formatData.js.map +1 -0
- package/lib/assignment/utils/getAssignment/getIntegrationOfAttachedProtons.d.ts +3 -0
- package/lib/assignment/utils/getAssignment/getIntegrationOfAttachedProtons.js +14 -0
- package/lib/assignment/utils/getAssignment/getIntegrationOfAttachedProtons.js.map +1 -0
- package/lib/assignment/utils/getAssignment/getTargetsAndCorrelations.d.ts +18 -0
- package/lib/assignment/utils/getAssignment/getTargetsAndCorrelations.js +37 -0
- package/lib/assignment/utils/getAssignment/getTargetsAndCorrelations.js.map +1 -0
- package/lib/assignment/utils/getAssignment/getWorkFlow.d.ts +19 -0
- package/lib/assignment/utils/getAssignment/getWorkFlow.js +52 -0
- package/lib/assignment/utils/getAssignment/getWorkFlow.js.map +1 -0
- package/lib/assignment/utils/getAssignment/groupCarbonTargetByIntegrationZone.d.ts +7 -0
- package/lib/assignment/utils/getAssignment/groupCarbonTargetByIntegrationZone.js +43 -0
- package/lib/assignment/utils/getAssignment/groupCarbonTargetByIntegrationZone.js.map +1 -0
- package/lib/assignment/utils/getAssignment/isSpectraData1D.d.ts +2 -0
- package/lib/assignment/utils/getAssignment/isSpectraData1D.js +8 -0
- package/lib/assignment/utils/getAssignment/isSpectraData1D.js.map +1 -0
- package/lib/assignment/utils/getAssignment/partialScore.d.ts +13 -0
- package/lib/assignment/utils/getAssignment/partialScore.js +221 -0
- package/lib/assignment/utils/getAssignment/partialScore.js.map +1 -0
- package/lib/assignment/utils/getAssignment/searchIndices.d.ts +6 -0
- package/lib/assignment/utils/getAssignment/searchIndices.js +21 -0
- package/lib/assignment/utils/getAssignment/searchIndices.js.map +1 -0
- package/lib/assignment/utils/partialScore.d.ts +2 -2
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/peaks/peaksToRanges.js +1 -0
- package/lib/peaks/peaksToRanges.js.map +1 -1
- package/lib/prediction/utils/predict2D.d.ts +0 -2
- package/lib/prediction/utils/predict2D.js.map +1 -1
- package/lib-esm/assignment/get13CAssignments.js.map +1 -1
- package/lib-esm/assignment/get1HAssignments.js.map +1 -1
- package/lib-esm/assignment/getAssignments.js +37 -0
- package/lib-esm/assignment/getAssignments.js.map +1 -0
- package/lib-esm/assignment/utils/buildAssignments.js.map +1 -1
- package/lib-esm/assignment/utils/exploreTreeRec.js.map +1 -1
- package/lib-esm/assignment/utils/getAssignment/buildAssignments.js +198 -0
- package/lib-esm/assignment/utils/getAssignment/buildAssignments.js.map +1 -0
- package/lib-esm/assignment/utils/getAssignment/checkIDs.js +48 -0
- package/lib-esm/assignment/utils/getAssignment/checkIDs.js.map +1 -0
- package/lib-esm/assignment/utils/getAssignment/createMapPossibleAssignment.js +51 -0
- package/lib-esm/assignment/utils/getAssignment/createMapPossibleAssignment.js.map +1 -0
- package/lib-esm/assignment/utils/getAssignment/exploreTree.js +89 -0
- package/lib-esm/assignment/utils/getAssignment/exploreTree.js.map +1 -0
- package/lib-esm/assignment/utils/getAssignment/formatData.js +16 -0
- package/lib-esm/assignment/utils/getAssignment/formatData.js.map +1 -0
- package/lib-esm/assignment/utils/getAssignment/getIntegrationOfAttachedProtons.js +10 -0
- package/lib-esm/assignment/utils/getAssignment/getIntegrationOfAttachedProtons.js.map +1 -0
- package/lib-esm/assignment/utils/getAssignment/getTargetsAndCorrelations.js +33 -0
- package/lib-esm/assignment/utils/getAssignment/getTargetsAndCorrelations.js.map +1 -0
- package/lib-esm/assignment/utils/getAssignment/getWorkFlow.js +50 -0
- package/lib-esm/assignment/utils/getAssignment/getWorkFlow.js.map +1 -0
- package/lib-esm/assignment/utils/getAssignment/groupCarbonTargetByIntegrationZone.js +41 -0
- package/lib-esm/assignment/utils/getAssignment/groupCarbonTargetByIntegrationZone.js.map +1 -0
- package/lib-esm/assignment/utils/getAssignment/isSpectraData1D.js +4 -0
- package/lib-esm/assignment/utils/getAssignment/isSpectraData1D.js.map +1 -0
- package/lib-esm/assignment/utils/getAssignment/partialScore.js +214 -0
- package/lib-esm/assignment/utils/getAssignment/partialScore.js.map +1 -0
- package/lib-esm/assignment/utils/getAssignment/searchIndices.js +17 -0
- package/lib-esm/assignment/utils/getAssignment/searchIndices.js.map +1 -0
- package/lib-esm/index.js +1 -0
- package/lib-esm/index.js.map +1 -1
- package/lib-esm/peaks/peaksToRanges.js +1 -0
- package/lib-esm/peaks/peaksToRanges.js.map +1 -1
- package/lib-esm/prediction/utils/predict2D.js.map +1 -1
- package/package.json +2 -1
- package/src/assignment/get13CAssignments.ts +2 -2
- package/src/assignment/get1HAssignments.ts +2 -2
- package/src/assignment/getAssignments.ts +149 -0
- package/src/assignment/utils/buildAssignments.ts +4 -4
- package/src/assignment/utils/createMapPossibleAssignments.ts +2 -2
- package/src/assignment/utils/exploreTreeRec.ts +5 -5
- package/src/assignment/utils/getAssignment/buildAssignments.ts +339 -0
- package/src/assignment/utils/getAssignment/checkIDs.ts +76 -0
- package/src/assignment/utils/getAssignment/createMapPossibleAssignment.ts +85 -0
- package/src/assignment/utils/getAssignment/data/correlations.js +713 -0
- package/src/assignment/utils/getAssignment/data/predictions.js +34 -0
- package/src/assignment/utils/getAssignment/exploreTree.ts +171 -0
- package/src/assignment/utils/getAssignment/formatData.ts +35 -0
- package/src/assignment/utils/getAssignment/getIntegrationOfAttachedProtons.ts +16 -0
- package/src/assignment/utils/getAssignment/getTargetsAndCorrelations.ts +63 -0
- package/src/assignment/utils/getAssignment/getWorkFlow.ts +72 -0
- package/src/assignment/utils/getAssignment/groupCarbonTargetByIntegrationZone.ts +55 -0
- package/src/assignment/utils/getAssignment/isSpectraData1D.ts +7 -0
- package/src/assignment/utils/getAssignment/partialScore.ts +308 -0
- package/src/assignment/utils/getAssignment/searchIndices.ts +19 -0
- package/src/assignment/utils/partialScore.ts +2 -2
- package/src/index.ts +1 -0
- package/src/ml-tree-set.d.ts +1 -1
- package/src/peaks/peaksToRanges.ts +1 -0
- package/src/prediction/utils/predict2D.ts +0 -2
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Molecule } from 'openchemlib';
|
|
2
2
|
import { NMRRange } from '..';
|
|
3
3
|
import { PredictCarbonOptions } from '../prediction/predictCarbon';
|
|
4
|
-
import {
|
|
4
|
+
import { RestrictionByCS1D } from './utils/buildAssignments';
|
|
5
5
|
export interface Get13CAssignmentsOptions {
|
|
6
|
-
restrictionByCS?: Partial<
|
|
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:
|
|
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,+
|
|
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 {
|
|
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<
|
|
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:
|
|
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,+
|
|
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
|
|
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<
|
|
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
|
|
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:
|
|
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":";;;;;;AAAA,8DAAkC;AAIlC,iFAA8E;AAC9E,qDAAkD;AAGlD,MAAM,UAAU,GAAG,CAAC,CAAqB,EAAE,CAAqB,EAAE,EAAE;IAClE,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;AAC3B,CAAC,CAAC;AAkCK,KAAK,UAAU,gBAAgB,CAAC,KAA4B;IACjE,MAAM,EACJ,eAAe,GAAG,EAAE,EACpB,yBAAyB,EACzB,OAAO,EACP,QAAQ,EACR,mBAAmB,EACnB,YAAY,EACZ,OAAO,EACP,aAAa,GACd,GAAG,KAAK,CAAC;IAEV,MAAM,EACJ,SAAS,GAAG,CAAC,EACb,qBAAqB,GAAG,KAAK,EAC7B,wBAAwB,GAAG,IAAI,GAChC,GAAG,eAAe,CAAC;IAEpB,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IACtB,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAE/B,IAAI,KAAK,
|
|
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 {
|
|
4
|
-
declare type RestrictionByCSMandatory = MakeMandatory<
|
|
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 {
|
|
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:
|
|
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:
|
|
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":";;;AAQA,iDAA8C;AAgB9C,SAAgB,cAAc,CAC5B,KAA0B,EAC1B,YAAoB,EACpB,OAA6B,EAC7B,
|
|
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[];
|