nmr-processing 7.3.0 → 7.4.2
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/getAssignments.d.ts +1 -1
- package/lib/assignment/nmrAssigment.d.ts +19 -27
- package/lib/assignment/utils/getAssignment/buildAssignments.d.ts +1 -1
- package/lib/assignment/utils/getAssignment/checkIDs.d.ts +3 -20
- package/lib/assignment/utils/getAssignment/checkIDs.js.map +1 -1
- package/lib/assignment/utils/getAssignment/formatData.d.ts +1 -1
- package/lib/assignment/utils/getAssignment/formatData.js.map +1 -1
- package/lib/assignment/utils/getAssignment/getTargetsAndCorrelations.d.ts +1 -1
- package/lib/assignment/utils/getAssignment/getTargetsAndCorrelations.js.map +1 -1
- package/lib/constants/gyromagneticRatio.d.ts +5 -19
- package/lib/constants/gyromagneticRatio.js +0 -1
- package/lib/constants/gyromagneticRatio.js.map +1 -1
- package/lib/index.d.ts +4 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/signals/signals2DToZ.d.ts +1 -0
- package/lib/signals/signals2DToZ.js +19 -4
- package/lib/signals/signals2DToZ.js.map +1 -1
- package/lib/utilities/getFrequency.d.ts +21 -0
- package/lib/utilities/getFrequency.js +30 -0
- package/lib/utilities/getFrequency.js.map +1 -0
- package/lib-esm/assignment/utils/getAssignment/checkIDs.js.map +1 -1
- package/lib-esm/assignment/utils/getAssignment/formatData.js.map +1 -1
- package/lib-esm/assignment/utils/getAssignment/getTargetsAndCorrelations.js.map +1 -1
- package/lib-esm/constants/gyromagneticRatio.js +0 -1
- package/lib-esm/constants/gyromagneticRatio.js.map +1 -1
- package/lib-esm/index.js +1 -0
- package/lib-esm/index.js.map +1 -1
- package/lib-esm/signals/signals2DToZ.js +19 -4
- package/lib-esm/signals/signals2DToZ.js.map +1 -1
- package/lib-esm/utilities/getFrequency.js +26 -0
- package/lib-esm/utilities/getFrequency.js.map +1 -0
- package/package.json +1 -1
- package/src/assignment/nmrAssigment.ts +23 -21
- package/src/assignment/utils/getAssignment/buildAssignments.ts +1 -1
- package/src/assignment/utils/getAssignment/checkIDs.ts +6 -28
- package/src/assignment/utils/getAssignment/formatData.ts +2 -1
- package/src/assignment/utils/getAssignment/getTargetsAndCorrelations.ts +2 -1
- package/src/constants/gyromagneticRatio.ts +25 -1
- package/src/index.ts +10 -1
- package/src/signals/signals2DToZ.ts +29 -5
- package/src/utilities/getFrequency.ts +47 -0
|
@@ -77,5 +77,5 @@ export interface GetAssignmentsOptions {
|
|
|
77
77
|
}
|
|
78
78
|
export declare function getAssignments(input: GetAutoAssignmentInput, options?: GetAssignmentsOptions): Promise<{
|
|
79
79
|
score: w;
|
|
80
|
-
assignment: import("./
|
|
80
|
+
assignment: import("./nmrAssigment").SpectraDataWithIds[];
|
|
81
81
|
}[]>;
|
|
@@ -1,28 +1,20 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import type {
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
[key: string]: number;
|
|
10
|
-
};
|
|
11
|
-
/**
|
|
12
|
-
* Contains the ranges for each nucleus or kind of experiment e.g. { H: [], C: [], apt: [], dept135: []}
|
|
13
|
-
* the ranges represented with atom label only contain the range from a single pulse experiment or equivalent.
|
|
14
|
-
*/
|
|
15
|
-
ranges: {
|
|
16
|
-
[key: string]: NMRRange[];
|
|
17
|
-
};
|
|
18
|
-
/**
|
|
19
|
-
* Contains the zones for each kind of experiment e.g. { H: [], C: [], apt: [], dept135: []};
|
|
20
|
-
*/
|
|
21
|
-
zones: {
|
|
22
|
-
[key: string]: NMRZone[];
|
|
23
|
-
};
|
|
24
|
-
/**
|
|
25
|
-
* Instance of Molecule
|
|
26
|
-
*/
|
|
27
|
-
molecule: Molecule;
|
|
1
|
+
import type { NMRRange, NMRSignal1D, NMRSignal2D, NMRZone } from '..';
|
|
2
|
+
import { MakeMandatory } from '../utilities/MakeMandatory';
|
|
3
|
+
import type { 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>;
|
|
28
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;
|
|
@@ -2,7 +2,7 @@ import { Values } from 'nmr-correlation';
|
|
|
2
2
|
import { Molecule } from 'openchemlib';
|
|
3
3
|
import { NMRSignal1D, PredictCarbonOptions, PredictProtonOptions } from '../../..';
|
|
4
4
|
import { MakeMandatory } from '../../../utilities/MakeMandatory';
|
|
5
|
-
import { SpectraDataWithIds } from '
|
|
5
|
+
import { SpectraDataWithIds } from '../../nmrAssigment';
|
|
6
6
|
import { TargetsByAtomType } from './getTargetsAndCorrelations';
|
|
7
7
|
export declare type AtomTypes = 'H' | 'C';
|
|
8
8
|
export declare type CurrentAtoms = Array<AtomTypes>;
|
|
@@ -1,23 +1,6 @@
|
|
|
1
|
-
import type { NMRRange,
|
|
2
|
-
import {
|
|
3
|
-
import type {
|
|
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;
|
|
1
|
+
import type { NMRRange, NMRZone } from '../../..';
|
|
2
|
+
import type { SpectraData } from '../../getAssignments';
|
|
3
|
+
import type { SpectraDataWithIds, NMRRangeWithIds, NMRZoneWithIds } from '../../nmrAssigment';
|
|
21
4
|
export declare function checkIDs(input?: SpectraData[]): SpectraDataWithIds[];
|
|
22
5
|
export declare function hasIDs(data: NMRRange[] | NMRZone[]): asserts data is NMRRangeWithIds[] | NMRZoneWithIds[];
|
|
23
6
|
export declare function addIDs(data: NMRRange[] | NMRZone[]): NMRRangeWithIds[] | NMRZoneWithIds[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkIDs.js","sourceRoot":"","sources":["../../../../src/assignment/utils/getAssignment/checkIDs.ts"],"names":[],"mappings":";;;;;;AAOA,+DAAuC;AAEvC,uDAAoD;
|
|
1
|
+
{"version":3,"file":"checkIDs.js","sourceRoot":"","sources":["../../../../src/assignment/utils/getAssignment/checkIDs.ts"],"names":[],"mappings":";;;;;;AAOA,+DAAuC;AAEvC,uDAAoD;AAEpD,SAAgB,QAAQ,CAAC,QAAuB,EAAE;IAChD,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAkB,CAAC;IACpE,IAAI,OAAO,GAAyB,EAAE,CAAC;IACvC,KAAK,MAAM,WAAW,IAAI,UAAU,EAAE;QACpC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,WAAW,CAAC;QACjC,IAAI,IAAA,iCAAe,EAAC,WAAW,CAAC,EAAE;YAChC,IAAI,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAsB,CAAC;YAC3D,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE;gBAC1B,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;gBAChC,KAAK,IAAI,MAAM,IAAI,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE;oBACxC,IAAI,CAAC,MAAM,CAAC,WAAW;wBAAE,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;iBAC3D;aACF;YACD,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;SAC1C;aAAM;YACL,IAAI,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAqB,CAAC;YACzD,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;SACzC;KACF;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AApBD,4BAoBC;AAED,SAAgB,MAAM,CACpB,IAA4B;IAE5B,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE;QAC1B,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC/D,KAAK,IAAI,MAAM,IAAI,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE;YACxC,IAAI,CAAC,MAAM,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;SAC3D;KACF;AACH,CAAC;AATD,wBASC;AAED,SAAgB,MAAM,CAAC,IAA4B;IACjD,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE;QAC1B,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,GAAG,IAAA,oBAAU,GAAE,CAAC;QAC3C,KAAK,IAAI,MAAM,IAAI,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE;YACxC,IAAI,CAAC,MAAM,CAAC,EAAE;gBAAE,MAAM,CAAC,EAAE,GAAG,IAAA,oBAAU,GAAE,CAAC;SAC1C;KACF;IACD,MAAM,CAAC,IAAI,CAAC,CAAC;IACb,OAAO,IAAI,CAAC;AACd,CAAC;AATD,wBASC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NMRRangeWithIds, NMRZoneWithIds, SpectraData1DWithIds, SpectraData2DWithIds, SpectraDataWithIds } from '
|
|
1
|
+
import { NMRRangeWithIds, NMRZoneWithIds, SpectraData1DWithIds, SpectraData2DWithIds, SpectraDataWithIds } from '../../nmrAssigment';
|
|
2
2
|
interface SpectraData1DFormatted extends Omit<SpectraData1DWithIds, 'ranges'> {
|
|
3
3
|
ranges: {
|
|
4
4
|
values: NMRRangeWithIds[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatData.js","sourceRoot":"","sources":["../../../../src/assignment/utils/getAssignment/formatData.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"formatData.js","sourceRoot":"","sources":["../../../../src/assignment/utils/getAssignment/formatData.ts"],"names":[],"mappings":";;;AAQA,uDAAoD;AAapD,SAAgB,UAAU,CACxB,QAA8B,EAAE;IAEhC,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAyB,CAAC;IAC3E,IAAI,OAAO,GAA2B,EAAE,CAAC;IACzC,KAAK,MAAM,WAAW,IAAI,UAAU,EAAE;QACpC,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC;QAC7B,IAAI,IAAA,iCAAe,EAAC,WAAW,CAAC,EAAE;YAChC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;SAChE;aAAM;YACL,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;SAC9D;KACF;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAdD,gCAcC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Correlation, Link } from 'nmr-correlation';
|
|
2
|
-
import { SpectraDataWithIds } from '
|
|
2
|
+
import { SpectraDataWithIds } from '../../nmrAssigment';
|
|
3
3
|
export interface CorrelationWithIntegration extends Pick<Correlation, 'link' | 'atomType' | 'label' | 'attachment' | 'protonsCount'> {
|
|
4
4
|
integration: number;
|
|
5
5
|
indirectLinks: Array<Link>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTargetsAndCorrelations.js","sourceRoot":"","sources":["../../../../src/assignment/utils/getAssignment/getTargetsAndCorrelations.ts"],"names":[],"mappings":";;;AAAA,qDAAuD;
|
|
1
|
+
{"version":3,"file":"getTargetsAndCorrelations.js","sourceRoot":"","sources":["../../../../src/assignment/utils/getAssignment/getTargetsAndCorrelations.ts"],"names":[],"mappings":";;;AAAA,qDAAuD;AAKvD,6CAA0C;AAC1C,uFAAoF;AAsBpF,SAAgB,yBAAyB,CACvC,OAA6B,EAC7B,UAAe,EAAE;IAEjB,gFAAgF;IAChF,8DAA8D;IAE9D,MAAM,EAAE,SAAS,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC;IAErD,MAAM,WAAW,GAAG,IAAA,uBAAU,EAAC,OAAO,CAAC,CAAC;IACxC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,IAAA,sCAAoB,EAAC,WAAW,EAAE;QACjE,SAAS;KACV,CAAC,CAAC;IAEH,IAAI,OAAO,GAAQ,EAAE,CAAC;IACtB,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;QACtC,IAAI,WAAW,CAAC,MAAM;YAAE,SAAS;QACjC,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC;QAC/C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QAC/C,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC;QAC1C,IAAI,QAAQ,KAAK,GAAG,EAAE;YACpB,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW;gBACrC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;SAC1C;aAAM;YACL,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,GAAG,IAAA,iEAA+B,EACvE,WAAW,EACX,YAAY,CACb,CAAC;SACH;KACF;IAED,OAAO;QACL,OAAO;QACP,YAAY;KACb,CAAC;AACJ,CAAC;AAnCD,8DAmCC"}
|
|
@@ -1,20 +1,6 @@
|
|
|
1
|
-
export declare
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
'3H': number;
|
|
5
|
-
'3He': number;
|
|
6
|
-
'7Li': number;
|
|
7
|
-
'13C': number;
|
|
8
|
-
'14N': number;
|
|
9
|
-
'15N': number;
|
|
10
|
-
'17O': number;
|
|
11
|
-
'19F': number;
|
|
12
|
-
'23Na': number;
|
|
13
|
-
'27Al': number;
|
|
14
|
-
'29Si': number;
|
|
15
|
-
'31P': number;
|
|
16
|
-
'57Fe': number;
|
|
17
|
-
'63Cu': number;
|
|
18
|
-
'67Zn': number;
|
|
19
|
-
'129Xe': number;
|
|
1
|
+
export declare type Nuclei = '1H' | '2H' | '3H' | '3He' | '7Li' | '13C' | '14N' | '15N' | '17O' | '19F' | '23Na' | '27Al' | '29Si' | '31P' | '57Fe' | '63Cu' | '67Zn' | '129Xe';
|
|
2
|
+
declare type GyromagneticRatio = {
|
|
3
|
+
[key in Nuclei]: number;
|
|
20
4
|
};
|
|
5
|
+
export declare const gyromagneticRatio: GyromagneticRatio;
|
|
6
|
+
export {};
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
// https://en.wikipedia.org/wiki/Gyromagnetic_ratio
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
exports.gyromagneticRatio = void 0;
|
|
6
|
-
// TODO: #13 can we have a better source and more digits ? @jwist
|
|
7
6
|
exports.gyromagneticRatio = {
|
|
8
7
|
'1H': 267.52218744e6,
|
|
9
8
|
'2H': 41.065e6,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gyromagneticRatio.js","sourceRoot":"","sources":["../../src/constants/gyromagneticRatio.ts"],"names":[],"mappings":";AAAA,WAAW;AACX,mDAAmD;;;
|
|
1
|
+
{"version":3,"file":"gyromagneticRatio.js","sourceRoot":"","sources":["../../src/constants/gyromagneticRatio.ts"],"names":[],"mappings":";AAAA,WAAW;AACX,mDAAmD;;;AA4BtC,QAAA,iBAAiB,GAAsB;IAClD,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,CAAC,SAAS;IACjB,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,CAAC,QAAQ;IAChB,KAAK,EAAE,CAAC,QAAQ;IAChB,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,CAAC,OAAO;IAChB,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,CAAC,QAAQ;CACnB,CAAC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ export * from './signals/signalsToXY';
|
|
|
19
19
|
export * from './signals/signals2DToZ';
|
|
20
20
|
export * from './utilities/resurrect';
|
|
21
21
|
export * from './utilities/rangeFromSignal';
|
|
22
|
+
export * from './utilities/getFrequency';
|
|
22
23
|
export * from './xy/xyAutoPeaksPicking';
|
|
23
24
|
export * from './xy/xyAutoRangesPicking';
|
|
24
25
|
export * from './xyz/xyzAutoZonesPicking';
|
|
@@ -27,10 +28,12 @@ export * from './databases/getDatabase';
|
|
|
27
28
|
export * from './databases/carbonImpurities';
|
|
28
29
|
export * from './databases/protonImpurities';
|
|
29
30
|
export type { NMRSignal1D } from './signals/NMRSignal1D';
|
|
30
|
-
export type { NMRSignal2D } from './xyz/NMRSignal2D';
|
|
31
|
+
export type { NMRSignal2D, Signal2DAxisData } from './xyz/NMRSignal2D';
|
|
31
32
|
export type { NMRRange } from './xy/NMRRange';
|
|
32
33
|
export type { NMRZone } from './xyz/NMRZone';
|
|
33
34
|
export type { NMRPeak1D } from './peaks/NMRPeak1D';
|
|
34
35
|
export type { Prediction1D } from './prediction/prediction1D';
|
|
35
36
|
export type { Jcoupling } from './signals/jcoupling';
|
|
37
|
+
export type { DatabaseNMREntry } from './databases/DatabaseNMREntry';
|
|
36
38
|
export type { DataBaseLevelStructure, DataBaseStructure, } from './prediction/dataStructure';
|
|
39
|
+
export type { NMRSignal1DWithId, NMRSignal2DWithId, SpectraData1DWithIds, SpectraData2DWithIds, SpectraDataWithIds, } from './assignment/nmrAssigment';
|
package/lib/index.js
CHANGED
|
@@ -35,6 +35,7 @@ __exportStar(require("./signals/signalsToXY"), exports);
|
|
|
35
35
|
__exportStar(require("./signals/signals2DToZ"), exports);
|
|
36
36
|
__exportStar(require("./utilities/resurrect"), exports);
|
|
37
37
|
__exportStar(require("./utilities/rangeFromSignal"), exports);
|
|
38
|
+
__exportStar(require("./utilities/getFrequency"), exports);
|
|
38
39
|
__exportStar(require("./xy/xyAutoPeaksPicking"), exports);
|
|
39
40
|
__exportStar(require("./xy/xyAutoRangesPicking"), exports);
|
|
40
41
|
__exportStar(require("./xyz/xyzAutoZonesPicking"), exports);
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA8C;AAC9C,yDAAuC;AACvC,+DAA6C;AAE7C,gEAA8C;AAE9C,6DAA2C;AAC3C,6DAA2C;AAC3C,2DAAyC;AACzC,2DAAyC;AACzC,2DAAyC;AACzC,0DAAwC;AACxC,iEAA+C;AAE/C,gEAA8C;AAC9C,iEAA+C;AAC/C,8DAA4C;AAE5C,uDAAqC;AACrC,sDAAoC;AAEpC,4DAA0C;AAC1C,wDAAsC;AACtC,yDAAuC;AAEvC,wDAAsC;AACtC,8DAA4C;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA8C;AAC9C,yDAAuC;AACvC,+DAA6C;AAE7C,gEAA8C;AAE9C,6DAA2C;AAC3C,6DAA2C;AAC3C,2DAAyC;AACzC,2DAAyC;AACzC,2DAAyC;AACzC,0DAAwC;AACxC,iEAA+C;AAE/C,gEAA8C;AAC9C,iEAA+C;AAC/C,8DAA4C;AAE5C,uDAAqC;AACrC,sDAAoC;AAEpC,4DAA0C;AAC1C,wDAAsC;AACtC,yDAAuC;AAEvC,wDAAsC;AACtC,8DAA4C;AAC5C,2DAAyC;AAEzC,0DAAwC;AACxC,2DAAyC;AAEzC,4DAA0C;AAC1C,wDAAsC;AAEtC,0DAAwC;AACxC,+DAA6C;AAC7C,+DAA6C"}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.signals2DToZ = void 0;
|
|
4
4
|
const spectrum_generator_1 = require("spectrum-generator");
|
|
5
5
|
function signals2DToZ(signals, options = {}) {
|
|
6
|
-
let { from = -1, to = 12, nbPoints = 512, width = 0.02 } = options;
|
|
6
|
+
let { from = -1, to = 12, nbPoints = 512, width = 0.02, factor = 3, } = options;
|
|
7
7
|
const peaks = signals.reduce((acc, { x, y }) => {
|
|
8
8
|
acc.x.push(x.delta);
|
|
9
9
|
acc.y.push(y.delta);
|
|
@@ -11,7 +11,7 @@ function signals2DToZ(signals, options = {}) {
|
|
|
11
11
|
return acc;
|
|
12
12
|
}, { x: [], y: [], z: [] });
|
|
13
13
|
width = ensureXYNumber(width);
|
|
14
|
-
return (0, spectrum_generator_1.generateSpectrum2D)(peaks, {
|
|
14
|
+
return (0, spectrum_generator_1.generateSpectrum2D)(mergeClosePeaks(peaks), {
|
|
15
15
|
generator: {
|
|
16
16
|
from: ensureXYNumber(from),
|
|
17
17
|
to: ensureXYNumber(to),
|
|
@@ -19,12 +19,27 @@ function signals2DToZ(signals, options = {}) {
|
|
|
19
19
|
},
|
|
20
20
|
peaks: {
|
|
21
21
|
width,
|
|
22
|
+
factor,
|
|
22
23
|
},
|
|
23
24
|
});
|
|
24
25
|
}
|
|
25
26
|
exports.signals2DToZ = signals2DToZ;
|
|
26
27
|
function ensureXYNumber(input) {
|
|
27
|
-
|
|
28
|
-
|
|
28
|
+
return typeof input !== 'object' ? { x: input, y: input } : { ...input };
|
|
29
|
+
}
|
|
30
|
+
function mergeClosePeaks(peaksIn) {
|
|
31
|
+
let peaks = JSON.parse(JSON.stringify(peaksIn));
|
|
32
|
+
for (let i = 0; i < peaks.x.length; i++) {
|
|
33
|
+
for (let j = i + 1; j < peaks.x.length; j++) {
|
|
34
|
+
if (peaks.x[i] === peaks.x[j] && peaks.y[i] === peaks.y[j]) {
|
|
35
|
+
peaks.z[i] += peaks.z[j];
|
|
36
|
+
peaks.x.splice(j, 1);
|
|
37
|
+
peaks.y.splice(j, 1);
|
|
38
|
+
peaks.z.splice(j, 1);
|
|
39
|
+
j--;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return peaks;
|
|
29
44
|
}
|
|
30
45
|
//# sourceMappingURL=signals2DToZ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signals2DToZ.js","sourceRoot":"","sources":["../../src/signals/signals2DToZ.ts"],"names":[],"mappings":";;;AAAA,2DAAwD;
|
|
1
|
+
{"version":3,"file":"signals2DToZ.js","sourceRoot":"","sources":["../../src/signals/signals2DToZ.ts"],"names":[],"mappings":";;;AAAA,2DAAwD;AAqCxD,SAAgB,YAAY,CAC1B,OAAsB,EACtB,UAA+B,EAAE;IAEjC,IAAI,EACF,IAAI,GAAG,CAAC,CAAC,EACT,EAAE,GAAG,EAAE,EACP,QAAQ,GAAG,GAAG,EACd,KAAK,GAAG,IAAI,EACZ,MAAM,GAAG,CAAC,GACX,GAAG,OAAO,CAAC;IAEZ,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAC1B,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;QAChB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACpB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACpB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CACxB,CAAC;IAEF,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAE9B,OAAO,IAAA,uCAAkB,EAAC,eAAe,CAAC,KAAK,CAAC,EAAE;QAChD,SAAS,EAAE;YACT,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC;YAC1B,EAAE,EAAE,cAAc,CAAC,EAAE,CAAC;YACtB,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;SACnC;QACD,KAAK,EAAE;YACL,KAAK;YACL,MAAM;SACP;KACF,CAAC,CAAC;AACL,CAAC;AAnCD,oCAmCC;AAED,SAAS,cAAc,CAAC,KAAwB;IAC9C,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;AAC3E,CAAC;AAED,SAAS,eAAe,CAAC,OAAqB;IAC5C,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC3C,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC1D,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzB,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrB,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrB,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrB,CAAC,EAAE,CAAC;aACL;SACF;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Nuclei } from '../constants/gyromagneticRatio';
|
|
2
|
+
export interface ObjervedNucleusData {
|
|
3
|
+
/**
|
|
4
|
+
* nucleus to use as reference in the calculation of frequency
|
|
5
|
+
*/
|
|
6
|
+
nucleus: Nucleus;
|
|
7
|
+
/**
|
|
8
|
+
* frequency of the reference nucleus
|
|
9
|
+
*/
|
|
10
|
+
frequency: number;
|
|
11
|
+
}
|
|
12
|
+
declare type Nucleus = Nuclei | (string & Record<never, never>);
|
|
13
|
+
/**
|
|
14
|
+
* calculate the frequency of a nucleus with respect to a reference nucleus
|
|
15
|
+
*/
|
|
16
|
+
export declare function getFrequency(
|
|
17
|
+
/**
|
|
18
|
+
* nucleus to calculate the frequency
|
|
19
|
+
*/
|
|
20
|
+
nucleus: Nucleus, observedNucleusData: ObjervedNucleusData): number;
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getFrequency = void 0;
|
|
4
|
+
const gyromagneticRatio_1 = require("../constants/gyromagneticRatio");
|
|
5
|
+
/**
|
|
6
|
+
* calculate the frequency of a nucleus with respect to a reference nucleus
|
|
7
|
+
*/
|
|
8
|
+
function getFrequency(
|
|
9
|
+
/**
|
|
10
|
+
* nucleus to calculate the frequency
|
|
11
|
+
*/
|
|
12
|
+
nucleus, observedNucleusData) {
|
|
13
|
+
const { nucleus: obsNucleus, frequency } = observedNucleusData;
|
|
14
|
+
checkExistence(nucleus, obsNucleus);
|
|
15
|
+
return ((frequency * gyromagneticRatio_1.gyromagneticRatio[nucleus]) /
|
|
16
|
+
gyromagneticRatio_1.gyromagneticRatio[obsNucleus]);
|
|
17
|
+
}
|
|
18
|
+
exports.getFrequency = getFrequency;
|
|
19
|
+
function checkExistence(...nucleus) {
|
|
20
|
+
let nuclei = [];
|
|
21
|
+
for (const n of nucleus) {
|
|
22
|
+
if (!(n in gyromagneticRatio_1.gyromagneticRatio)) {
|
|
23
|
+
nuclei.push(n);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
if (nuclei.length !== 0) {
|
|
27
|
+
throw new Error(`${nuclei.join(' , ')} is not supported`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=getFrequency.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getFrequency.js","sourceRoot":"","sources":["../../src/utilities/getFrequency.ts"],"names":[],"mappings":";;;AAAA,sEAA2E;AAgB3E;;GAEG;AACH,SAAgB,YAAY;AAC1B;;GAEG;AACH,OAAgB,EAChB,mBAAwC;IAExC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,mBAAmB,CAAC;IAE/D,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAEpC,OAAO,CACL,CAAC,SAAS,GAAG,qCAAiB,CAAC,OAAiB,CAAC,CAAC;QAClD,qCAAiB,CAAC,UAAoB,CAAC,CACxC,CAAC;AACJ,CAAC;AAfD,oCAeC;AAED,SAAS,cAAc,CAAC,GAAG,OAAkB;IAC3C,IAAI,MAAM,GAAa,EAAE,CAAC;IAC1B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE;QACvB,IAAI,CAAC,CAAC,CAAC,IAAI,qCAAiB,CAAC,EAAE;YAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAChB;KACF;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;KAC3D;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkIDs.js","sourceRoot":"","sources":["../../../../src/assignment/utils/getAssignment/checkIDs.ts"],"names":[],"mappings":"AAOA,OAAO,UAAU,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"checkIDs.js","sourceRoot":"","sources":["../../../../src/assignment/utils/getAssignment/checkIDs.ts"],"names":[],"mappings":"AAOA,OAAO,UAAU,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,UAAU,QAAQ,CAAC,QAAuB,EAAE;IAChD,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAkB,CAAC;IACpE,IAAI,OAAO,GAAyB,EAAE,CAAC;IACvC,KAAK,MAAM,WAAW,IAAI,UAAU,EAAE;QACpC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,WAAW,CAAC;QACjC,IAAI,eAAe,CAAC,WAAW,CAAC,EAAE;YAChC,IAAI,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAsB,CAAC;YAC3D,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE;gBAC1B,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;gBAChC,KAAK,IAAI,MAAM,IAAI,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE;oBACxC,IAAI,CAAC,MAAM,CAAC,WAAW;wBAAE,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;iBAC3D;aACF;YACD,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;SAC1C;aAAM;YACL,IAAI,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAqB,CAAC;YACzD,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;SACzC;KACF;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,MAAM,CACpB,IAA4B;IAE5B,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE;QAC1B,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC/D,KAAK,IAAI,MAAM,IAAI,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE;YACxC,IAAI,CAAC,MAAM,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;SAC3D;KACF;AACH,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,IAA4B;IACjD,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE;QAC1B,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,GAAG,UAAU,EAAE,CAAC;QAC3C,KAAK,IAAI,MAAM,IAAI,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE;YACxC,IAAI,CAAC,MAAM,CAAC,EAAE;gBAAE,MAAM,CAAC,EAAE,GAAG,UAAU,EAAE,CAAC;SAC1C;KACF;IACD,MAAM,CAAC,IAAI,CAAC,CAAC;IACb,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatData.js","sourceRoot":"","sources":["../../../../src/assignment/utils/getAssignment/formatData.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"formatData.js","sourceRoot":"","sources":["../../../../src/assignment/utils/getAssignment/formatData.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAapD,MAAM,UAAU,UAAU,CACxB,QAA8B,EAAE;IAEhC,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAyB,CAAC;IAC3E,IAAI,OAAO,GAA2B,EAAE,CAAC;IACzC,KAAK,MAAM,WAAW,IAAI,UAAU,EAAE;QACpC,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC;QAC7B,IAAI,eAAe,CAAC,WAAW,CAAC,EAAE;YAChC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;SAChE;aAAM;YACL,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;SAC9D;KACF;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTargetsAndCorrelations.js","sourceRoot":"","sources":["../../../../src/assignment/utils/getAssignment/getTargetsAndCorrelations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"getTargetsAndCorrelations.js","sourceRoot":"","sources":["../../../../src/assignment/utils/getAssignment/getTargetsAndCorrelations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAKvD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AAsBpF,MAAM,UAAU,yBAAyB,CACvC,OAA6B,EAC7B,UAAe,EAAE;IAEjB,gFAAgF;IAChF,8DAA8D;IAE9D,MAAM,EAAE,SAAS,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,CAAC;IAErD,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,oBAAoB,CAAC,WAAW,EAAE;QACjE,SAAS;KACV,CAAC,CAAC;IAEH,IAAI,OAAO,GAAQ,EAAE,CAAC;IACtB,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;QACtC,IAAI,WAAW,CAAC,MAAM;YAAE,SAAS;QACjC,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC;QAC/C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QAC/C,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC;QAC1C,IAAI,QAAQ,KAAK,GAAG,EAAE;YACpB,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW;gBACrC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;SAC1C;aAAM;YACL,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,GAAG,+BAA+B,CACvE,WAAW,EACX,YAAY,CACb,CAAC;SACH;KACF;IAED,OAAO;QACL,OAAO;QACP,YAAY;KACb,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gyromagneticRatio.js","sourceRoot":"","sources":["../../src/constants/gyromagneticRatio.ts"],"names":[],"mappings":"AAAA,WAAW;AACX,mDAAmD;
|
|
1
|
+
{"version":3,"file":"gyromagneticRatio.js","sourceRoot":"","sources":["../../src/constants/gyromagneticRatio.ts"],"names":[],"mappings":"AAAA,WAAW;AACX,mDAAmD;AA4BnD,MAAM,CAAC,MAAM,iBAAiB,GAAsB;IAClD,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,CAAC,SAAS;IACjB,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,CAAC,QAAQ;IAChB,KAAK,EAAE,CAAC,QAAQ;IAChB,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,CAAC,OAAO;IAChB,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,CAAC,QAAQ;CACnB,CAAC"}
|
package/lib-esm/index.js
CHANGED
|
@@ -19,6 +19,7 @@ export * from './signals/signalsToXY';
|
|
|
19
19
|
export * from './signals/signals2DToZ';
|
|
20
20
|
export * from './utilities/resurrect';
|
|
21
21
|
export * from './utilities/rangeFromSignal';
|
|
22
|
+
export * from './utilities/getFrequency';
|
|
22
23
|
export * from './xy/xyAutoPeaksPicking';
|
|
23
24
|
export * from './xy/xyAutoRangesPicking';
|
|
24
25
|
export * from './xyz/xyzAutoZonesPicking';
|
package/lib-esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,+BAA+B,CAAC;AAE9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAE/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAE5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAE7C,cAAc,+BAA+B,CAAC;AAE9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAE/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,6BAA6B,CAAC;AAE5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AAEzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AAEtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,8BAA8B,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { generateSpectrum2D } from 'spectrum-generator';
|
|
2
2
|
export function signals2DToZ(signals, options = {}) {
|
|
3
|
-
let { from = -1, to = 12, nbPoints = 512, width = 0.02 } = options;
|
|
3
|
+
let { from = -1, to = 12, nbPoints = 512, width = 0.02, factor = 3, } = options;
|
|
4
4
|
const peaks = signals.reduce((acc, { x, y }) => {
|
|
5
5
|
acc.x.push(x.delta);
|
|
6
6
|
acc.y.push(y.delta);
|
|
@@ -8,7 +8,7 @@ export function signals2DToZ(signals, options = {}) {
|
|
|
8
8
|
return acc;
|
|
9
9
|
}, { x: [], y: [], z: [] });
|
|
10
10
|
width = ensureXYNumber(width);
|
|
11
|
-
return generateSpectrum2D(peaks, {
|
|
11
|
+
return generateSpectrum2D(mergeClosePeaks(peaks), {
|
|
12
12
|
generator: {
|
|
13
13
|
from: ensureXYNumber(from),
|
|
14
14
|
to: ensureXYNumber(to),
|
|
@@ -16,11 +16,26 @@ export function signals2DToZ(signals, options = {}) {
|
|
|
16
16
|
},
|
|
17
17
|
peaks: {
|
|
18
18
|
width,
|
|
19
|
+
factor,
|
|
19
20
|
},
|
|
20
21
|
});
|
|
21
22
|
}
|
|
22
23
|
function ensureXYNumber(input) {
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
return typeof input !== 'object' ? { x: input, y: input } : { ...input };
|
|
25
|
+
}
|
|
26
|
+
function mergeClosePeaks(peaksIn) {
|
|
27
|
+
let peaks = JSON.parse(JSON.stringify(peaksIn));
|
|
28
|
+
for (let i = 0; i < peaks.x.length; i++) {
|
|
29
|
+
for (let j = i + 1; j < peaks.x.length; j++) {
|
|
30
|
+
if (peaks.x[i] === peaks.x[j] && peaks.y[i] === peaks.y[j]) {
|
|
31
|
+
peaks.z[i] += peaks.z[j];
|
|
32
|
+
peaks.x.splice(j, 1);
|
|
33
|
+
peaks.y.splice(j, 1);
|
|
34
|
+
peaks.z.splice(j, 1);
|
|
35
|
+
j--;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return peaks;
|
|
25
40
|
}
|
|
26
41
|
//# sourceMappingURL=signals2DToZ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signals2DToZ.js","sourceRoot":"","sources":["../../src/signals/signals2DToZ.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"signals2DToZ.js","sourceRoot":"","sources":["../../src/signals/signals2DToZ.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAqCxD,MAAM,UAAU,YAAY,CAC1B,OAAsB,EACtB,UAA+B,EAAE;IAEjC,IAAI,EACF,IAAI,GAAG,CAAC,CAAC,EACT,EAAE,GAAG,EAAE,EACP,QAAQ,GAAG,GAAG,EACd,KAAK,GAAG,IAAI,EACZ,MAAM,GAAG,CAAC,GACX,GAAG,OAAO,CAAC;IAEZ,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAC1B,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;QAChB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACpB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACpB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CACxB,CAAC;IAEF,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAE9B,OAAO,kBAAkB,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE;QAChD,SAAS,EAAE;YACT,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC;YAC1B,EAAE,EAAE,cAAc,CAAC,EAAE,CAAC;YACtB,QAAQ,EAAE,cAAc,CAAC,QAAQ,CAAC;SACnC;QACD,KAAK,EAAE;YACL,KAAK;YACL,MAAM;SACP;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,cAAc,CAAC,KAAwB;IAC9C,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;AAC3E,CAAC;AAED,SAAS,eAAe,CAAC,OAAqB;IAC5C,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC3C,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC1D,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzB,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrB,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrB,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrB,CAAC,EAAE,CAAC;aACL;SACF;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { gyromagneticRatio } from '../constants/gyromagneticRatio';
|
|
2
|
+
/**
|
|
3
|
+
* calculate the frequency of a nucleus with respect to a reference nucleus
|
|
4
|
+
*/
|
|
5
|
+
export function getFrequency(
|
|
6
|
+
/**
|
|
7
|
+
* nucleus to calculate the frequency
|
|
8
|
+
*/
|
|
9
|
+
nucleus, observedNucleusData) {
|
|
10
|
+
const { nucleus: obsNucleus, frequency } = observedNucleusData;
|
|
11
|
+
checkExistence(nucleus, obsNucleus);
|
|
12
|
+
return ((frequency * gyromagneticRatio[nucleus]) /
|
|
13
|
+
gyromagneticRatio[obsNucleus]);
|
|
14
|
+
}
|
|
15
|
+
function checkExistence(...nucleus) {
|
|
16
|
+
let nuclei = [];
|
|
17
|
+
for (const n of nucleus) {
|
|
18
|
+
if (!(n in gyromagneticRatio)) {
|
|
19
|
+
nuclei.push(n);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
if (nuclei.length !== 0) {
|
|
23
|
+
throw new Error(`${nuclei.join(' , ')} is not supported`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=getFrequency.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getFrequency.js","sourceRoot":"","sources":["../../src/utilities/getFrequency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAU,MAAM,gCAAgC,CAAC;AAgB3E;;GAEG;AACH,MAAM,UAAU,YAAY;AAC1B;;GAEG;AACH,OAAgB,EAChB,mBAAwC;IAExC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,mBAAmB,CAAC;IAE/D,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAEpC,OAAO,CACL,CAAC,SAAS,GAAG,iBAAiB,CAAC,OAAiB,CAAC,CAAC;QAClD,iBAAiB,CAAC,UAAoB,CAAC,CACxC,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,GAAG,OAAkB;IAC3C,IAAI,MAAM,GAAa,EAAE,CAAC;IAC1B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE;QACvB,IAAI,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,EAAE;YAC7B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAChB;KACF;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;KAC3D;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,24 +1,26 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { NMRRange, NMRSignal1D, NMRSignal2D, NMRZone } from '..';
|
|
2
|
+
import { MakeMandatory } from '../utilities/MakeMandatory';
|
|
2
3
|
|
|
3
|
-
import type {
|
|
4
|
-
import type { NMRZone } from '../xyz/NMRZone';
|
|
4
|
+
import type { SpectraData1D, SpectraData2D } from './getAssignments';
|
|
5
5
|
|
|
6
|
-
export
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
* Contains the zones for each kind of experiment e.g. { H: [], C: [], apt: [], dept135: []};
|
|
18
|
-
*/
|
|
19
|
-
zones: { [key: string]: NMRZone[] };
|
|
20
|
-
/**
|
|
21
|
-
* Instance of Molecule
|
|
22
|
-
*/
|
|
23
|
-
molecule: Molecule;
|
|
6
|
+
export type NMRSignal1DWithId = MakeMandatory<NMRSignal1D, 'id'>;
|
|
7
|
+
export type NMRSignal2DWithId = MakeMandatory<NMRSignal2D, 'id'>;
|
|
8
|
+
|
|
9
|
+
export interface NMRZoneWithIds extends Omit<NMRZone, 'signals' | 'id'> {
|
|
10
|
+
id: string;
|
|
11
|
+
signals: Array<NMRSignal2DWithId>;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export interface NMRRangeWithIds extends Omit<NMRRange, 'id' | 'signals'> {
|
|
15
|
+
id: string;
|
|
16
|
+
signals: Array<NMRSignal1DWithId>;
|
|
24
17
|
}
|
|
18
|
+
|
|
19
|
+
export interface SpectraData1DWithIds extends Omit<SpectraData1D, 'ranges'> {
|
|
20
|
+
ranges: NMRRangeWithIds[];
|
|
21
|
+
}
|
|
22
|
+
export interface SpectraData2DWithIds extends Omit<SpectraData2D, 'zones'> {
|
|
23
|
+
zones: NMRZoneWithIds[];
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export type SpectraDataWithIds = SpectraData1DWithIds | SpectraData2DWithIds;
|
|
@@ -11,9 +11,9 @@ import {
|
|
|
11
11
|
import { predictCarbon } from '../../../prediction/predictCarbon';
|
|
12
12
|
import { predictProton } from '../../../prediction/predictProton';
|
|
13
13
|
import { MakeMandatory } from '../../../utilities/MakeMandatory';
|
|
14
|
+
import { SpectraDataWithIds } from '../../nmrAssigment';
|
|
14
15
|
import { StoreAssignments } from '../buildAssignments';
|
|
15
16
|
|
|
16
|
-
import { SpectraDataWithIds } from './checkIDs';
|
|
17
17
|
import {
|
|
18
18
|
createMapPossibleAssignment,
|
|
19
19
|
MapPossibleAssignments,
|
|
@@ -1,36 +1,14 @@
|
|
|
1
|
-
import type { NMRRange,
|
|
2
|
-
import {
|
|
1
|
+
import type { NMRRange, NMRZone } from '../../..';
|
|
2
|
+
import type { SpectraData } from '../../getAssignments';
|
|
3
3
|
import type {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
} from '../../
|
|
4
|
+
SpectraDataWithIds,
|
|
5
|
+
NMRRangeWithIds,
|
|
6
|
+
NMRZoneWithIds,
|
|
7
|
+
} from '../../nmrAssigment';
|
|
8
8
|
import generateID from '../generateID';
|
|
9
9
|
|
|
10
10
|
import { isSpectraData1D } from './isSpectraData1D';
|
|
11
11
|
|
|
12
|
-
export type NMRSignal1DWithId = MakeMandatory<NMRSignal1D, 'id'>;
|
|
13
|
-
export type NMRSignal2DWithId = MakeMandatory<NMRSignal2D, 'id'>;
|
|
14
|
-
|
|
15
|
-
export interface NMRZoneWithIds extends Omit<NMRZone, 'signals' | 'id'> {
|
|
16
|
-
id: string;
|
|
17
|
-
signals: Array<NMRSignal2DWithId>;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export interface NMRRangeWithIds extends Omit<NMRRange, 'id' | 'signals'> {
|
|
21
|
-
id: string;
|
|
22
|
-
signals: Array<NMRSignal1DWithId>;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export interface SpectraData1DWithIds extends Omit<SpectraData1D, 'ranges'> {
|
|
26
|
-
ranges: NMRRangeWithIds[];
|
|
27
|
-
}
|
|
28
|
-
export interface SpectraData2DWithIds extends Omit<SpectraData2D, 'zones'> {
|
|
29
|
-
zones: NMRZoneWithIds[];
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export type SpectraDataWithIds = SpectraData1DWithIds | SpectraData2DWithIds;
|
|
33
|
-
|
|
34
12
|
export function checkIDs(input: SpectraData[] = []): SpectraDataWithIds[] {
|
|
35
13
|
let inputClone = JSON.parse(JSON.stringify(input)) as SpectraData[];
|
|
36
14
|
let spectra: SpectraDataWithIds[] = [];
|
|
@@ -4,7 +4,8 @@ import {
|
|
|
4
4
|
SpectraData1DWithIds,
|
|
5
5
|
SpectraData2DWithIds,
|
|
6
6
|
SpectraDataWithIds,
|
|
7
|
-
} from '
|
|
7
|
+
} from '../../nmrAssigment';
|
|
8
|
+
|
|
8
9
|
import { isSpectraData1D } from './isSpectraData1D';
|
|
9
10
|
|
|
10
11
|
interface SpectraData1DFormatted extends Omit<SpectraData1DWithIds, 'ranges'> {
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { buildCorrelationData } from 'nmr-correlation';
|
|
2
2
|
import type { Correlation, Link } from 'nmr-correlation';
|
|
3
3
|
|
|
4
|
-
import { SpectraDataWithIds } from '
|
|
4
|
+
import { SpectraDataWithIds } from '../../nmrAssigment';
|
|
5
|
+
|
|
5
6
|
import { formatData } from './formatData';
|
|
6
7
|
import { getIntegrationOfAttachedProtons } from './getIntegrationOfAttachedProtons';
|
|
7
8
|
|
|
@@ -3,7 +3,31 @@
|
|
|
3
3
|
|
|
4
4
|
// TODO: #13 can we have a better source and more digits ? @jwist
|
|
5
5
|
|
|
6
|
-
export
|
|
6
|
+
export type Nuclei =
|
|
7
|
+
| '1H'
|
|
8
|
+
| '2H'
|
|
9
|
+
| '3H'
|
|
10
|
+
| '3He'
|
|
11
|
+
| '7Li'
|
|
12
|
+
| '13C'
|
|
13
|
+
| '14N'
|
|
14
|
+
| '15N'
|
|
15
|
+
| '17O'
|
|
16
|
+
| '19F'
|
|
17
|
+
| '23Na'
|
|
18
|
+
| '27Al'
|
|
19
|
+
| '29Si'
|
|
20
|
+
| '31P'
|
|
21
|
+
| '57Fe'
|
|
22
|
+
| '63Cu'
|
|
23
|
+
| '67Zn'
|
|
24
|
+
| '129Xe';
|
|
25
|
+
|
|
26
|
+
type GyromagneticRatio = {
|
|
27
|
+
[key in Nuclei]: number;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export const gyromagneticRatio: GyromagneticRatio = {
|
|
7
31
|
'1H': 267.52218744e6,
|
|
8
32
|
'2H': 41.065e6,
|
|
9
33
|
'3H': 285.3508e6,
|
package/src/index.ts
CHANGED
|
@@ -25,6 +25,7 @@ export * from './signals/signals2DToZ';
|
|
|
25
25
|
|
|
26
26
|
export * from './utilities/resurrect';
|
|
27
27
|
export * from './utilities/rangeFromSignal';
|
|
28
|
+
export * from './utilities/getFrequency';
|
|
28
29
|
|
|
29
30
|
export * from './xy/xyAutoPeaksPicking';
|
|
30
31
|
export * from './xy/xyAutoRangesPicking';
|
|
@@ -37,13 +38,21 @@ export * from './databases/carbonImpurities';
|
|
|
37
38
|
export * from './databases/protonImpurities';
|
|
38
39
|
|
|
39
40
|
export type { NMRSignal1D } from './signals/NMRSignal1D';
|
|
40
|
-
export type { NMRSignal2D } from './xyz/NMRSignal2D';
|
|
41
|
+
export type { NMRSignal2D, Signal2DAxisData } from './xyz/NMRSignal2D';
|
|
41
42
|
export type { NMRRange } from './xy/NMRRange';
|
|
42
43
|
export type { NMRZone } from './xyz/NMRZone';
|
|
43
44
|
export type { NMRPeak1D } from './peaks/NMRPeak1D';
|
|
44
45
|
export type { Prediction1D } from './prediction/prediction1D';
|
|
45
46
|
export type { Jcoupling } from './signals/jcoupling';
|
|
47
|
+
export type { DatabaseNMREntry } from './databases/DatabaseNMREntry';
|
|
46
48
|
export type {
|
|
47
49
|
DataBaseLevelStructure,
|
|
48
50
|
DataBaseStructure,
|
|
49
51
|
} from './prediction/dataStructure';
|
|
52
|
+
export type {
|
|
53
|
+
NMRSignal1DWithId,
|
|
54
|
+
NMRSignal2DWithId,
|
|
55
|
+
SpectraData1DWithIds,
|
|
56
|
+
SpectraData2DWithIds,
|
|
57
|
+
SpectraDataWithIds,
|
|
58
|
+
} from './assignment/nmrAssigment';
|
|
@@ -26,6 +26,7 @@ interface Signals2DToZOptions {
|
|
|
26
26
|
* @default 0.02
|
|
27
27
|
*/
|
|
28
28
|
width?: number | XYNumber;
|
|
29
|
+
factor?: number | XYNumber;
|
|
29
30
|
}
|
|
30
31
|
|
|
31
32
|
export interface Peak2DSeries {
|
|
@@ -38,7 +39,13 @@ export function signals2DToZ(
|
|
|
38
39
|
signals: NMRSignal2D[],
|
|
39
40
|
options: Signals2DToZOptions = {},
|
|
40
41
|
) {
|
|
41
|
-
let {
|
|
42
|
+
let {
|
|
43
|
+
from = -1,
|
|
44
|
+
to = 12,
|
|
45
|
+
nbPoints = 512,
|
|
46
|
+
width = 0.02,
|
|
47
|
+
factor = 3,
|
|
48
|
+
} = options;
|
|
42
49
|
|
|
43
50
|
const peaks = signals.reduce<Peak2DSeries>(
|
|
44
51
|
(acc, { x, y }) => {
|
|
@@ -51,7 +58,8 @@ export function signals2DToZ(
|
|
|
51
58
|
);
|
|
52
59
|
|
|
53
60
|
width = ensureXYNumber(width);
|
|
54
|
-
|
|
61
|
+
|
|
62
|
+
return generateSpectrum2D(mergeClosePeaks(peaks), {
|
|
55
63
|
generator: {
|
|
56
64
|
from: ensureXYNumber(from),
|
|
57
65
|
to: ensureXYNumber(to),
|
|
@@ -59,11 +67,27 @@ export function signals2DToZ(
|
|
|
59
67
|
},
|
|
60
68
|
peaks: {
|
|
61
69
|
width,
|
|
70
|
+
factor,
|
|
62
71
|
},
|
|
63
72
|
});
|
|
64
73
|
}
|
|
65
74
|
|
|
66
|
-
function ensureXYNumber(input: number | XYNumber)
|
|
67
|
-
|
|
68
|
-
|
|
75
|
+
function ensureXYNumber(input: number | XYNumber) {
|
|
76
|
+
return typeof input !== 'object' ? { x: input, y: input } : { ...input };
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
function mergeClosePeaks(peaksIn: Peak2DSeries) {
|
|
80
|
+
let peaks = JSON.parse(JSON.stringify(peaksIn));
|
|
81
|
+
for (let i = 0; i < peaks.x.length; i++) {
|
|
82
|
+
for (let j = i + 1; j < peaks.x.length; j++) {
|
|
83
|
+
if (peaks.x[i] === peaks.x[j] && peaks.y[i] === peaks.y[j]) {
|
|
84
|
+
peaks.z[i] += peaks.z[j];
|
|
85
|
+
peaks.x.splice(j, 1);
|
|
86
|
+
peaks.y.splice(j, 1);
|
|
87
|
+
peaks.z.splice(j, 1);
|
|
88
|
+
j--;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return peaks;
|
|
69
93
|
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { gyromagneticRatio, Nuclei } from '../constants/gyromagneticRatio';
|
|
2
|
+
|
|
3
|
+
export interface ObjervedNucleusData {
|
|
4
|
+
/**
|
|
5
|
+
* nucleus to use as reference in the calculation of frequency
|
|
6
|
+
*/
|
|
7
|
+
nucleus: Nucleus;
|
|
8
|
+
/**
|
|
9
|
+
* frequency of the reference nucleus
|
|
10
|
+
*/
|
|
11
|
+
frequency: number;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
//Literal type is extends string and when union it with string we lose the autocomplete and to solve this we distinguish string
|
|
15
|
+
type Nucleus = Nuclei | (string & Record<never, never>);
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* calculate the frequency of a nucleus with respect to a reference nucleus
|
|
19
|
+
*/
|
|
20
|
+
export function getFrequency(
|
|
21
|
+
/**
|
|
22
|
+
* nucleus to calculate the frequency
|
|
23
|
+
*/
|
|
24
|
+
nucleus: Nucleus,
|
|
25
|
+
observedNucleusData: ObjervedNucleusData,
|
|
26
|
+
) {
|
|
27
|
+
const { nucleus: obsNucleus, frequency } = observedNucleusData;
|
|
28
|
+
|
|
29
|
+
checkExistence(nucleus, obsNucleus);
|
|
30
|
+
|
|
31
|
+
return (
|
|
32
|
+
(frequency * gyromagneticRatio[nucleus as Nuclei]) /
|
|
33
|
+
gyromagneticRatio[obsNucleus as Nuclei]
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function checkExistence(...nucleus: Nucleus[]) {
|
|
38
|
+
let nuclei: string[] = [];
|
|
39
|
+
for (const n of nucleus) {
|
|
40
|
+
if (!(n in gyromagneticRatio)) {
|
|
41
|
+
nuclei.push(n);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (nuclei.length !== 0) {
|
|
45
|
+
throw new Error(`${nuclei.join(' , ')} is not supported`);
|
|
46
|
+
}
|
|
47
|
+
}
|