nmr-processing 3.3.3 → 4.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.
- package/CHANGELOG.md +38 -0
- package/lib/assignment/get13CAssignments.d.ts +35 -0
- package/lib/assignment/get13CAssignments.js +54 -0
- package/lib/assignment/get13CAssignments.js.map +1 -0
- package/lib/assignment/get1HAssignments.d.ts +42 -0
- package/lib/assignment/get1HAssignments.js +55 -0
- package/lib/assignment/get1HAssignments.js.map +1 -0
- package/lib/assignment/utils/buildAssignments.d.ts +33 -0
- package/lib/assignment/utils/buildAssignments.js +93 -0
- package/lib/assignment/utils/buildAssignments.js.map +1 -0
- package/lib/assignment/utils/createMapPossibleAssignments.d.ts +15 -0
- package/lib/assignment/utils/createMapPossibleAssignments.js +51 -0
- package/lib/assignment/utils/createMapPossibleAssignments.js.map +1 -0
- package/lib/assignment/utils/exploreTreeRec.d.ts +22 -0
- package/lib/assignment/utils/exploreTreeRec.js +77 -0
- package/lib/assignment/utils/exploreTreeRec.js.map +1 -0
- package/lib/assignment/utils/generateID.d.ts +1 -0
- package/lib/assignment/utils/generateID.js +13 -0
- package/lib/assignment/utils/generateID.js.map +1 -0
- package/lib/assignment/utils/partialScore.d.ts +16 -0
- package/lib/assignment/utils/partialScore.js +91 -0
- package/lib/assignment/utils/partialScore.js.map +1 -0
- package/lib/index.d.ts +2 -5
- package/lib/index.js +2 -5
- package/lib/index.js.map +1 -1
- package/lib/peaks/peaksFilterImpurities.js +1 -1
- package/lib/peaks/peaksFilterImpurities.js.map +1 -1
- package/lib/peaks/peaksToRanges.js +11 -17
- package/lib/peaks/peaksToRanges.js.map +1 -1
- package/lib/peaks/util/determineRealTop.js +3 -2
- package/lib/peaks/util/determineRealTop.js.map +1 -1
- package/lib/peaks/util/jAnalyzer.js +33 -35
- package/lib/peaks/util/jAnalyzer.js.map +1 -1
- package/lib/ranges/rangesToXY.d.ts +2 -2
- package/lib/ranges/rangesToXY.js +10 -2
- package/lib/ranges/rangesToXY.js.map +1 -1
- package/lib/signals/signals2DToZ.d.ts +2 -2
- package/lib/signals/signalsToXY.d.ts +2 -2
- package/lib/signals/simulation/simulate1D.d.ts +4 -3
- package/lib/signals/simulation/simulate1D.js.map +1 -1
- package/lib/types/NMRPeak1D.d.ts +2 -9
- package/lib/types/NMRRange.d.ts +1 -0
- package/lib/types/NMRSignal1D.d.ts +3 -2
- package/lib/types/NMRSignal2D.d.ts +1 -0
- package/lib/types/NMRZone.d.ts +4 -3
- package/lib/xy/xyAutoPeaksPicking.d.ts +4 -60
- package/lib/xy/xyAutoPeaksPicking.js +3 -3
- package/lib/xy/xyAutoPeaksPicking.js.map +1 -1
- package/lib-esm/assignment/get13CAssignments.js +47 -0
- package/lib-esm/assignment/get13CAssignments.js.map +1 -0
- package/lib-esm/assignment/get1HAssignments.js +48 -0
- package/lib-esm/assignment/get1HAssignments.js.map +1 -0
- package/lib-esm/assignment/utils/buildAssignments.js +86 -0
- package/lib-esm/assignment/utils/buildAssignments.js.map +1 -0
- package/lib-esm/assignment/utils/createMapPossibleAssignments.js +47 -0
- package/lib-esm/assignment/utils/createMapPossibleAssignments.js.map +1 -0
- package/lib-esm/assignment/utils/exploreTreeRec.js +73 -0
- package/lib-esm/assignment/utils/exploreTreeRec.js.map +1 -0
- package/lib-esm/assignment/utils/generateID.js +10 -0
- package/lib-esm/assignment/utils/generateID.js.map +1 -0
- package/lib-esm/assignment/utils/partialScore.js +87 -0
- package/lib-esm/assignment/utils/partialScore.js.map +1 -0
- package/lib-esm/index.js +2 -5
- package/lib-esm/index.js.map +1 -1
- package/lib-esm/peaks/peaksFilterImpurities.js +1 -1
- package/lib-esm/peaks/peaksFilterImpurities.js.map +1 -1
- package/lib-esm/peaks/peaksToRanges.js +11 -17
- package/lib-esm/peaks/peaksToRanges.js.map +1 -1
- package/lib-esm/peaks/util/determineRealTop.js +4 -3
- package/lib-esm/peaks/util/determineRealTop.js.map +1 -1
- package/lib-esm/peaks/util/jAnalyzer.js +33 -35
- package/lib-esm/peaks/util/jAnalyzer.js.map +1 -1
- package/lib-esm/ranges/rangesToXY.js +10 -2
- package/lib-esm/ranges/rangesToXY.js.map +1 -1
- package/lib-esm/signals/simulation/simulate1D.js.map +1 -1
- package/lib-esm/xy/xyAutoPeaksPicking.js +3 -3
- package/lib-esm/xy/xyAutoPeaksPicking.js.map +1 -1
- package/package.json +4 -4
- package/src/assignment/get13CAssignments.ts +100 -0
- package/src/assignment/get1HAssignments.ts +116 -0
- package/src/assignment/utils/buildAssignments.ts +155 -0
- package/src/assignment/utils/createMapPossibleAssignments.ts +76 -0
- package/src/assignment/utils/exploreTreeRec.ts +138 -0
- package/src/assignment/utils/generateID.ts +11 -0
- package/src/assignment/utils/partialScore.ts +128 -0
- package/src/index.ts +3 -6
- package/src/peaks/peaksFilterImpurities.ts +1 -1
- package/src/peaks/peaksToRanges.ts +12 -19
- package/src/peaks/util/determineRealTop.ts +4 -6
- package/src/peaks/util/jAnalyzer.ts +34 -36
- package/src/ranges/rangesToXY.ts +14 -7
- package/src/signals/signals2DToZ.ts +2 -2
- package/src/signals/signalsToXY.ts +2 -2
- package/src/signals/simulation/simulate1D.ts +4 -3
- package/src/types/NMRPeak1D.ts +3 -9
- package/src/types/NMRRange.ts +1 -0
- package/src/types/NMRSignal1D.ts +3 -3
- package/src/types/NMRSignal2D.ts +2 -0
- package/src/types/NMRZone.ts +4 -3
- package/src/types/ml-spectra-processing/index.d.ts +8 -8
- package/src/types/ml-tree-set/index.d.ts +18 -0
- package/src/types/openchemlib-utils/index..d.ts +2 -2
- package/src/xy/xyAutoPeaksPicking.ts +19 -58
- package/src/types/ml-gsd/index.d.ts +0 -164
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Shape1D } from 'ml-peak-shape-generator';
|
|
2
2
|
import type { NMRRange } from '../types/NMRRange';
|
|
3
3
|
export interface RangeToXYOptions {
|
|
4
4
|
/**
|
|
@@ -30,7 +30,7 @@ export interface RangeToXYOptions {
|
|
|
30
30
|
* options of signals.
|
|
31
31
|
* @default { kind: 'gaussian' }
|
|
32
32
|
*/
|
|
33
|
-
shape:
|
|
33
|
+
shape: Shape1D;
|
|
34
34
|
}
|
|
35
35
|
export declare function rangesToXY(ranges: NMRRange[], options?: any): {
|
|
36
36
|
x: number[];
|
package/lib/ranges/rangesToXY.js
CHANGED
|
@@ -31,7 +31,15 @@ function rangesToXY(ranges, options = {}) {
|
|
|
31
31
|
};
|
|
32
32
|
let spectrum = new Float64Array(nbPoints);
|
|
33
33
|
for (const range of ranges) {
|
|
34
|
-
const { integration, signals } = range;
|
|
34
|
+
const { integration, signals = [] } = range;
|
|
35
|
+
const { multiplicity: rangeMulplicity = '' } = range;
|
|
36
|
+
if (rangeMulplicity === 'm' && signals.length < 1) {
|
|
37
|
+
const { from, to } = range;
|
|
38
|
+
signals.push({
|
|
39
|
+
delta: (from + to) / 2,
|
|
40
|
+
multiplicity: 'm',
|
|
41
|
+
});
|
|
42
|
+
}
|
|
35
43
|
let rangeSpectrum = new Float64Array(nbPoints);
|
|
36
44
|
for (const signal of signals) {
|
|
37
45
|
const { multiplicity } = signal;
|
|
@@ -96,8 +104,8 @@ function normalizeSpectrum(spectrum, signals, options = {}) {
|
|
|
96
104
|
return acc + integration;
|
|
97
105
|
}, 0), } = options;
|
|
98
106
|
const sum = spectrum.reduce((acc, element) => acc + element, 0);
|
|
99
|
-
const norma = (integration / sum) * 1e6;
|
|
100
107
|
if (sum !== 0) {
|
|
108
|
+
const norma = (integration / sum) * 1e6;
|
|
101
109
|
for (let i = 0; i < spectrum.length; i++) {
|
|
102
110
|
spectrum[i] *= norma;
|
|
103
111
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rangesToXY.js","sourceRoot":"","sources":["../../src/ranges/rangesToXY.ts"],"names":[],"mappings":";;;;;;AACA,wFAA2D;
|
|
1
|
+
{"version":3,"file":"rangesToXY.js","sourceRoot":"","sources":["../../src/ranges/rangesToXY.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { XYNumber } from 'spectrum-generator';
|
|
2
2
|
import type { NMRSignal2D } from '../types/NMRSignal2D';
|
|
3
|
-
interface
|
|
3
|
+
interface Signals2DToZOptions {
|
|
4
4
|
/**
|
|
5
5
|
* lower limit in the spectrum, if it is a number the value will be defined for both axes
|
|
6
6
|
* @default -1
|
|
@@ -29,5 +29,5 @@ export interface Peak2DSeries {
|
|
|
29
29
|
y: number[];
|
|
30
30
|
z: number[];
|
|
31
31
|
}
|
|
32
|
-
export declare function signals2DToZ(signals: NMRSignal2D[], options?:
|
|
32
|
+
export declare function signals2DToZ(signals: NMRSignal2D[], options?: Signals2DToZOptions): import("spectrum-generator").Spectrum2D;
|
|
33
33
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Shape1D } from 'ml-peak-shape-generator';
|
|
2
2
|
import type { NMRSignal1D } from '../types/NMRSignal1D';
|
|
3
3
|
export interface OptionsSignalsToXY {
|
|
4
4
|
frequency?: number;
|
|
@@ -15,7 +15,7 @@ export interface OptionsSignalsToXY {
|
|
|
15
15
|
/**
|
|
16
16
|
* Shape options for ml-spectrum-generator
|
|
17
17
|
*/
|
|
18
|
-
shape?:
|
|
18
|
+
shape?: Shape1D;
|
|
19
19
|
/**
|
|
20
20
|
* The linewidth of the output spectrum, expresed in Hz.
|
|
21
21
|
* @default 1
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { DataXY } from 'cheminfo-types';
|
|
2
|
+
import type { Shape1D } from 'ml-peak-shape-generator';
|
|
2
3
|
import type { SpinSystem } from '../../types/spinSystem';
|
|
3
4
|
interface Simulate1DOptions {
|
|
4
5
|
/**
|
|
@@ -35,7 +36,7 @@ interface Simulate1DOptions {
|
|
|
35
36
|
* Shape options
|
|
36
37
|
* @default {kind:'gaussian'}
|
|
37
38
|
*/
|
|
38
|
-
shape?:
|
|
39
|
+
shape?: Shape1D;
|
|
39
40
|
}
|
|
40
41
|
/**
|
|
41
42
|
* This function simulates a one dimensional nmr spectrum. This function returns an array containing the relative intensities of the spectrum in the specified simulation window (from-to).
|
|
@@ -44,5 +45,5 @@ export default function simulate1D(
|
|
|
44
45
|
/**
|
|
45
46
|
* The SpinSystem object to be simulated
|
|
46
47
|
*/
|
|
47
|
-
spinSystem: SpinSystem, options?: Simulate1DOptions):
|
|
48
|
+
spinSystem: SpinSystem, options?: Simulate1DOptions): DataXY;
|
|
48
49
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"simulate1D.js","sourceRoot":"","sources":["../../../src/signals/simulation/simulate1D.ts"],"names":[],"mappings":";;;;;AAAA,kEAAyC;
|
|
1
|
+
{"version":3,"file":"simulate1D.js","sourceRoot":"","sources":["../../../src/signals/simulation/simulate1D.ts"],"names":[],"mappings":"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"}
|
package/lib/types/NMRPeak1D.d.ts
CHANGED
package/lib/types/NMRRange.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { NMRPeak1D } from './NMRPeak1D';
|
|
2
2
|
import type { Jcoupling } from './jcoupling';
|
|
3
3
|
export interface NMRSignal1D {
|
|
4
4
|
delta: number;
|
|
5
|
+
id?: string;
|
|
5
6
|
js?: Jcoupling[];
|
|
6
7
|
atoms?: number[];
|
|
7
8
|
assignment?: string;
|
|
@@ -10,7 +11,7 @@ export interface NMRSignal1D {
|
|
|
10
11
|
diaIDs?: string[];
|
|
11
12
|
nbAtoms?: number;
|
|
12
13
|
integration?: number;
|
|
13
|
-
peaks?:
|
|
14
|
+
peaks?: NMRPeak1D[];
|
|
14
15
|
statistic?: {
|
|
15
16
|
mean: number;
|
|
16
17
|
sd: number;
|
package/lib/types/NMRZone.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import type { NMRSignal2D } from "./NMRSignal2D";
|
|
2
|
-
interface
|
|
2
|
+
interface FromTo {
|
|
3
3
|
from: number;
|
|
4
4
|
to: number;
|
|
5
5
|
}
|
|
6
6
|
export interface NMRZone {
|
|
7
|
-
x:
|
|
8
|
-
y:
|
|
7
|
+
x: FromTo;
|
|
8
|
+
y: FromTo;
|
|
9
|
+
id?: string;
|
|
9
10
|
signals: NMRSignal2D;
|
|
10
11
|
}
|
|
11
12
|
export {};
|
|
@@ -1,68 +1,13 @@
|
|
|
1
1
|
import { DataXY } from 'cheminfo-types';
|
|
2
|
-
import type {
|
|
3
|
-
interface
|
|
4
|
-
/**
|
|
5
|
-
* Noise threshold in spectrum y units. Default is three/thresholdFactor times the absolute median of data.y.
|
|
6
|
-
* @default `median(data.y) * (options.thresholdFactor || 3)`
|
|
7
|
-
*/
|
|
8
|
-
noiseLevel?: number;
|
|
9
|
-
/**
|
|
10
|
-
* Threshold to determine if a given peak should be considered as a noise, bases on its relative height compared to the highest peak.
|
|
11
|
-
* @default 0.01
|
|
12
|
-
*/
|
|
13
|
-
minMaxRatio: number;
|
|
14
|
-
/**
|
|
15
|
-
* If broadRatio is higher than 0, then all the peaks which second derivative smaller than broadRatio * maxAbsSecondDerivative will be marked with the soft mask equal to true.
|
|
16
|
-
* @default 0.00025
|
|
17
|
-
*/
|
|
18
|
-
broadRatio: number;
|
|
19
|
-
/**
|
|
20
|
-
* Select the peak intensities from a smoothed version of the independent variables.
|
|
21
|
-
* @default true
|
|
22
|
-
*/
|
|
23
|
-
smoothY: boolean;
|
|
2
|
+
import type { Peak1D, IGSDOptions, IOptimizePeaksOptions, IJoinBroadPeaksOptions } from 'ml-gsd';
|
|
3
|
+
export interface IGetPeakListOptions extends IGSDOptions, IOptimizePeaksOptions, IJoinBroadPeaksOptions {
|
|
24
4
|
/**
|
|
25
5
|
* If it is true, the peaks parameters will be optimized.
|
|
26
6
|
* @default false
|
|
27
7
|
*/
|
|
28
8
|
optimize: boolean;
|
|
29
|
-
/**
|
|
30
|
-
* factor to determine the width at the moment to group the peaks in signals in 'GSD.optimizePeaks' function.
|
|
31
|
-
* @default 4
|
|
32
|
-
*/
|
|
33
|
-
factorWidth: number;
|
|
34
|
-
/**
|
|
35
|
-
* if it is true, it optimizes the x and intensity by extrapolation.
|
|
36
|
-
*/
|
|
37
|
-
realTopDetection: boolean;
|
|
38
|
-
/**
|
|
39
|
-
* options to shape used to adapt the FWHM
|
|
40
|
-
* @default {kind:'gaussian'}
|
|
41
|
-
*/
|
|
42
|
-
shape: {
|
|
43
|
-
kind: string;
|
|
44
|
-
};
|
|
45
|
-
/**
|
|
46
|
-
* options for optimization step, kind represent the algorithm
|
|
47
|
-
* @default {kind:'lm'}
|
|
48
|
-
*/
|
|
49
|
-
optimization: {
|
|
50
|
-
kind: string;
|
|
51
|
-
};
|
|
52
|
-
/**
|
|
53
|
-
* Threshold to determine if some peak is candidate to clustering into range.
|
|
54
|
-
* @default 0.25
|
|
55
|
-
*/
|
|
56
|
-
broadWidth: number;
|
|
57
|
-
/**
|
|
58
|
-
* Options for savitz Golay
|
|
59
|
-
*/
|
|
60
|
-
sgOptions: {
|
|
61
|
-
windowSize: number;
|
|
62
|
-
polynomial: number;
|
|
63
|
-
};
|
|
64
9
|
}
|
|
65
|
-
export interface OptionsXYAutoPeaksPicking extends Partial<
|
|
10
|
+
export interface OptionsXYAutoPeaksPicking extends Partial<IGetPeakListOptions> {
|
|
66
11
|
/**
|
|
67
12
|
* Low limit value in the x axis to extract a sub set of points from the input data.
|
|
68
13
|
*/
|
|
@@ -87,5 +32,4 @@ export interface OptionsXYAutoPeaksPicking extends Partial<OptionsGetPeakList> {
|
|
|
87
32
|
*/
|
|
88
33
|
useSanPlot?: boolean;
|
|
89
34
|
}
|
|
90
|
-
export declare function xyAutoPeaksPicking(data: DataXY, options?: OptionsXYAutoPeaksPicking):
|
|
91
|
-
export {};
|
|
35
|
+
export declare function xyAutoPeaksPicking(data: DataXY, options?: OptionsXYAutoPeaksPicking): Peak1D[];
|
|
@@ -36,14 +36,14 @@ function getPeakList(data, options) {
|
|
|
36
36
|
shape,
|
|
37
37
|
sgOptions,
|
|
38
38
|
minMaxRatio,
|
|
39
|
-
broadRatio,
|
|
40
39
|
noiseLevel,
|
|
41
40
|
smoothY,
|
|
42
41
|
realTopDetection,
|
|
43
42
|
});
|
|
44
43
|
if (broadWidth) {
|
|
45
|
-
peakList = (0, ml_gsd_1.joinBroadPeaks)(peakList, {
|
|
46
|
-
|
|
44
|
+
peakList = (0, ml_gsd_1.joinBroadPeaks)(data, peakList, {
|
|
45
|
+
broadRatio,
|
|
46
|
+
broadWidth,
|
|
47
47
|
shape,
|
|
48
48
|
optimization,
|
|
49
49
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xyAutoPeaksPicking.js","sourceRoot":"","sources":["../../src/xy/xyAutoPeaksPicking.ts"],"names":[],"mappings":";;;AACA,mCAA4D;
|
|
1
|
+
{"version":3,"file":"xyAutoPeaksPicking.js","sourceRoot":"","sources":["../../src/xy/xyAutoPeaksPicking.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { addDiastereotopicMissingChirality } from 'openchemlib-utils';
|
|
2
|
+
import { predictCarbon, } from '../prediction/predictCarbon';
|
|
3
|
+
import { buildAssignments } from './utils/buildAssignments';
|
|
4
|
+
import generateID from './utils/generateID';
|
|
5
|
+
function checkAtomsAndDiaIDs(signals) {
|
|
6
|
+
for (const signal of signals) {
|
|
7
|
+
if (!signal.atoms)
|
|
8
|
+
throw new Error('signal has not atoms property');
|
|
9
|
+
if (!signal.diaIDs)
|
|
10
|
+
throw new Error('signal has not diaIDs property');
|
|
11
|
+
if (!signal.nbAtoms)
|
|
12
|
+
throw new Error('signal has not nbAtoms property');
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function checkIntegration(ranges) {
|
|
16
|
+
for (let range of ranges) {
|
|
17
|
+
if (range.integration === undefined)
|
|
18
|
+
range.integration = 0;
|
|
19
|
+
}
|
|
20
|
+
return ranges;
|
|
21
|
+
}
|
|
22
|
+
export async function get13CAssignments(ranges, molecule, options = {}) {
|
|
23
|
+
let { restrictionByCS = {}, minScore = 1, maxSolutions = 10, nbAllowedUnAssigned = 0, timeout = 6000, predictionOptions = {}, } = options;
|
|
24
|
+
if (!molecule) {
|
|
25
|
+
throw new Error('It is needed a OCL molecule instance to assign');
|
|
26
|
+
}
|
|
27
|
+
addDiastereotopicMissingChirality(molecule);
|
|
28
|
+
const { joinedSignals } = await predictCarbon(molecule, predictionOptions);
|
|
29
|
+
checkAtomsAndDiaIDs(joinedSignals);
|
|
30
|
+
const copyRanges = checkIntegration(ranges);
|
|
31
|
+
const targets = {};
|
|
32
|
+
for (const range of copyRanges) {
|
|
33
|
+
const { id = generateID() } = range;
|
|
34
|
+
targets[id] = JSON.parse(JSON.stringify(range));
|
|
35
|
+
}
|
|
36
|
+
return buildAssignments({
|
|
37
|
+
restrictionByCS,
|
|
38
|
+
timeout,
|
|
39
|
+
minScore,
|
|
40
|
+
nbAllowedUnAssigned,
|
|
41
|
+
maxSolutions,
|
|
42
|
+
targets,
|
|
43
|
+
joinedSignals,
|
|
44
|
+
useIntegrationRestriction: false,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=get13CAssignments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get13CAssignments.js","sourceRoot":"","sources":["../../src/assignment/get13CAssignments.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iCAAiC,EAAE,MAAM,mBAAmB,CAAC;AAGtE,OAAO,EACL,aAAa,GAEd,MAAM,6BAA6B,CAAC;AAIrC,OAAO,EAAmB,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,UAAU,MAAM,oBAAoB,CAAC;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;AA8BD,MAAM,CAAC,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,iCAAiC,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,aAAa,CAAC,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,UAAU,EAAE,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,gBAAgB,CAAC;QACtB,eAAe;QACf,OAAO;QACP,QAAQ;QACR,mBAAmB;QACnB,YAAY;QACZ,OAAO;QACP,aAAa;QACb,yBAAyB,EAAE,KAAK;KACjC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { addDiastereotopicMissingChirality } from 'openchemlib-utils';
|
|
2
|
+
import { predictProton, } from '../prediction/predictProton';
|
|
3
|
+
import { buildAssignments } from './utils/buildAssignments';
|
|
4
|
+
import generateID from './utils/generateID';
|
|
5
|
+
function checkAtomsAndDiaIDs(signals) {
|
|
6
|
+
for (const signal of signals) {
|
|
7
|
+
if (!signal.atoms)
|
|
8
|
+
throw new Error('signal has not atoms property');
|
|
9
|
+
if (!signal.diaIDs)
|
|
10
|
+
throw new Error('signal has not diaIDs property');
|
|
11
|
+
if (!signal.nbAtoms)
|
|
12
|
+
throw new Error('signal has not nbAtoms property');
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function checkForIntegration(ranges) {
|
|
16
|
+
for (let range of ranges) {
|
|
17
|
+
if (range.integration === undefined) {
|
|
18
|
+
throw new Error('ranges has not integration property');
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
export async function get1HAssignments(ranges, molecule, options = {}) {
|
|
23
|
+
let { restrictionByCS, minScore = 1, maxSolutions = 10, nbAllowedUnAssigned = 0, timeout = 6000, predictionOptions = {}, } = options;
|
|
24
|
+
if (!molecule) {
|
|
25
|
+
throw new Error('It is needed a OCL molecule instance to assign');
|
|
26
|
+
}
|
|
27
|
+
molecule.addImplicitHydrogens();
|
|
28
|
+
addDiastereotopicMissingChirality(molecule);
|
|
29
|
+
const { joinedSignals } = await predictProton(molecule, predictionOptions);
|
|
30
|
+
checkForIntegration(ranges);
|
|
31
|
+
checkAtomsAndDiaIDs(joinedSignals);
|
|
32
|
+
const targets = {};
|
|
33
|
+
for (const range of ranges) {
|
|
34
|
+
const { id = generateID() } = range;
|
|
35
|
+
targets[id] = JSON.parse(JSON.stringify(range));
|
|
36
|
+
}
|
|
37
|
+
return buildAssignments({
|
|
38
|
+
restrictionByCS,
|
|
39
|
+
timeout,
|
|
40
|
+
minScore,
|
|
41
|
+
nbAllowedUnAssigned,
|
|
42
|
+
maxSolutions,
|
|
43
|
+
targets,
|
|
44
|
+
joinedSignals,
|
|
45
|
+
useIntegrationRestriction: true,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=get1HAssignments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get1HAssignments.js","sourceRoot":"","sources":["../../src/assignment/get1HAssignments.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iCAAiC,EAAE,MAAM,mBAAmB,CAAC;AAGtE,OAAO,EACL,aAAa,GAEd,MAAM,6BAA6B,CAAC;AAIrC,OAAO,EAAE,gBAAgB,EAAmB,MAAM,0BAA0B,CAAC;AAC7E,OAAO,UAAU,MAAM,oBAAoB,CAAC;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;AAkCD,MAAM,CAAC,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,iCAAiC,CAAC,QAAQ,CAAC,CAAC;IAE5C,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,aAAa,CAAC,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,UAAU,EAAE,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,gBAAgB,CAAC;QACtB,eAAe;QACf,OAAO;QACP,QAAQ;QACR,mBAAmB;QACnB,YAAY;QACZ,OAAO;QACP,aAAa;QACb,yBAAyB,EAAE,IAAI;KAChC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import treeSet from 'ml-tree-set';
|
|
2
|
+
import { createMapPossibleAssignments } from './createMapPossibleAssignments';
|
|
3
|
+
import { exploreTreeRec } from './exploreTreeRec';
|
|
4
|
+
const comparator = (a, b) => {
|
|
5
|
+
return b.score - a.score;
|
|
6
|
+
};
|
|
7
|
+
export async function buildAssignments(props) {
|
|
8
|
+
const { restrictionByCS = {}, useIntegrationRestriction, timeout, minScore, nbAllowedUnAssigned, maxSolutions, targets, joinedSignals, } = props;
|
|
9
|
+
const { tolerance = 1, useChemicalShiftScore = false, chemicalShiftRestriction = true, } = restrictionByCS;
|
|
10
|
+
let date = new Date();
|
|
11
|
+
let timeStart = date.getTime();
|
|
12
|
+
let store = {
|
|
13
|
+
solutions: new treeSet(comparator),
|
|
14
|
+
nSolutions: 0,
|
|
15
|
+
};
|
|
16
|
+
let nSources = joinedSignals.length;
|
|
17
|
+
const predictions = {};
|
|
18
|
+
for (let prediction of joinedSignals) {
|
|
19
|
+
const diaID = prediction.diaIDs[0];
|
|
20
|
+
const index = prediction.atoms[0];
|
|
21
|
+
predictions[diaID] = {
|
|
22
|
+
...prediction,
|
|
23
|
+
diaIDIndex: index,
|
|
24
|
+
allHydrogens: prediction.nbAtoms,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
const possibleAssignmentMap = createMapPossibleAssignments({
|
|
28
|
+
restrictionByCS: {
|
|
29
|
+
tolerance,
|
|
30
|
+
useChemicalShiftScore,
|
|
31
|
+
chemicalShiftRestriction,
|
|
32
|
+
},
|
|
33
|
+
useIntegrationRestriction,
|
|
34
|
+
predictions,
|
|
35
|
+
targets,
|
|
36
|
+
});
|
|
37
|
+
const diaIDPeerPossibleAssignment = Object.keys(possibleAssignmentMap);
|
|
38
|
+
let partial = fillPartial(nSources);
|
|
39
|
+
store = {
|
|
40
|
+
solutions: new treeSet(comparator),
|
|
41
|
+
nSolutions: 0,
|
|
42
|
+
};
|
|
43
|
+
exploreTreeRec({
|
|
44
|
+
nSources,
|
|
45
|
+
restrictionByCS: {
|
|
46
|
+
tolerance,
|
|
47
|
+
useChemicalShiftScore,
|
|
48
|
+
chemicalShiftRestriction,
|
|
49
|
+
},
|
|
50
|
+
timeout,
|
|
51
|
+
timeStart,
|
|
52
|
+
targets,
|
|
53
|
+
predictions,
|
|
54
|
+
maxSolutions,
|
|
55
|
+
lowerBoundScore: minScore,
|
|
56
|
+
nbAllowedUnAssigned,
|
|
57
|
+
possibleAssignmentMap,
|
|
58
|
+
diaIDPeerPossibleAssignment,
|
|
59
|
+
useIntegrationRestriction,
|
|
60
|
+
}, 0, partial, store);
|
|
61
|
+
const assignments = [];
|
|
62
|
+
for (const solution of store.solutions.elements) {
|
|
63
|
+
const { assignment, score } = solution;
|
|
64
|
+
const currentAssignment = JSON.parse(JSON.stringify(targets));
|
|
65
|
+
for (let i = 0; i < assignment.length; i++) {
|
|
66
|
+
let range = currentAssignment[assignment[i]];
|
|
67
|
+
if (!range.diaIDs)
|
|
68
|
+
range.diaIDs = [];
|
|
69
|
+
if (assignment[i])
|
|
70
|
+
range.diaIDs.push(diaIDPeerPossibleAssignment[i]);
|
|
71
|
+
}
|
|
72
|
+
assignments.push({
|
|
73
|
+
score,
|
|
74
|
+
assignment: Object.values(currentAssignment),
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
return assignments;
|
|
78
|
+
}
|
|
79
|
+
function fillPartial(nSources, value = null) {
|
|
80
|
+
const partial = new Array(nSources);
|
|
81
|
+
for (let i = 0; i < nSources; i++) {
|
|
82
|
+
partial[i] = value;
|
|
83
|
+
}
|
|
84
|
+
return partial;
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=buildAssignments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildAssignments.js","sourceRoot":"","sources":["../../../src/assignment/utils/buildAssignments.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export function createMapPossibleAssignments(props) {
|
|
2
|
+
const { restrictionByCS, predictions, targets, useIntegrationRestriction } = props;
|
|
3
|
+
const { tolerance: toleranceCS, chemicalShiftRestriction } = restrictionByCS;
|
|
4
|
+
let errorAbs = Math.abs(toleranceCS);
|
|
5
|
+
const expandMap = {};
|
|
6
|
+
for (const diaID in predictions) {
|
|
7
|
+
let prediction = predictions[diaID];
|
|
8
|
+
if (prediction.error)
|
|
9
|
+
prediction.error = Math.abs(prediction.error);
|
|
10
|
+
expandMap[diaID] = [];
|
|
11
|
+
if (targets) {
|
|
12
|
+
for (const targetID in targets) {
|
|
13
|
+
let target = targets[targetID];
|
|
14
|
+
const { nbAtoms } = prediction;
|
|
15
|
+
const { integration } = target;
|
|
16
|
+
const couldBeAssigned = useIntegrationRestriction
|
|
17
|
+
? integration > 0
|
|
18
|
+
? nbAtoms - integration < 1
|
|
19
|
+
: true
|
|
20
|
+
: true;
|
|
21
|
+
if (couldBeAssigned) {
|
|
22
|
+
if (!chemicalShiftRestriction ||
|
|
23
|
+
typeof prediction.delta === 'undefined') {
|
|
24
|
+
// Chemical shift is not a restriction
|
|
25
|
+
expandMap[diaID].push(targetID);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
let error = errorAbs;
|
|
29
|
+
if (prediction.error) {
|
|
30
|
+
error = Math.max(error, prediction.error);
|
|
31
|
+
}
|
|
32
|
+
const delta = target.signals && target.signals.length > 0
|
|
33
|
+
? target.signals[0].delta
|
|
34
|
+
: (target.to + target.from) / 2;
|
|
35
|
+
let distAfterLimit = Math.abs(prediction.delta - delta - errorAbs);
|
|
36
|
+
if (distAfterLimit < 4 * errorAbs) {
|
|
37
|
+
expandMap[diaID].push(targetID);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
expandMap[diaID].push('*');
|
|
44
|
+
}
|
|
45
|
+
return expandMap;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=createMapPossibleAssignments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createMapPossibleAssignments.js","sourceRoot":"","sources":["../../../src/assignment/utils/createMapPossibleAssignments.ts"],"names":[],"mappings":"AAoBA,MAAM,UAAU,4BAA4B,CAC1C,KAAmC;IAEnC,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,OAAO,EAAE,yBAAyB,EAAE,GACxE,KAAK,CAAC;IAER,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,wBAAwB,EAAE,GAAG,eAAe,CAAC;IAE7E,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACrC,MAAM,SAAS,GAA0B,EAAE,CAAC;IAC5C,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE;QAC/B,IAAI,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,UAAU,CAAC,KAAK;YAAE,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACpE,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAEtB,IAAI,OAAO,EAAE;YACX,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE;gBAC9B,IAAI,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC/B,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;gBAC/B,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;gBAE/B,MAAM,eAAe,GAAG,yBAAyB;oBAC/C,CAAC,CAAC,WAAW,GAAG,CAAC;wBACf,CAAC,CAAC,OAAO,GAAG,WAAW,GAAG,CAAC;wBAC3B,CAAC,CAAC,IAAI;oBACR,CAAC,CAAC,IAAI,CAAC;gBAET,IAAI,eAAe,EAAE;oBACnB,IACE,CAAC,wBAAwB;wBACzB,OAAO,UAAU,CAAC,KAAK,KAAK,WAAW,EACvC;wBACA,sCAAsC;wBACtC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;qBACjC;yBAAM;wBACL,IAAI,KAAK,GAAG,QAAQ,CAAC;wBACrB,IAAI,UAAU,CAAC,KAAK,EAAE;4BACpB,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;yBAC3C;wBACD,MAAM,KAAK,GACT,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;4BACzC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK;4BACzB,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBAEpC,IAAI,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC;wBACnE,IAAI,cAAc,GAAG,CAAC,GAAG,QAAQ,EAAE;4BACjC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;yBACjC;qBACF;iBACF;aACF;SACF;QACD,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC5B;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|