Skip to content

Commit

Permalink
fix: generateSpectrum2D n getFrequency function (#1450)
Browse files Browse the repository at this point in the history
* fix: close #1403

* fix: close #1382

* chore: update nmr-processing to 7.4.1

* chore: fix eslint
  • Loading branch information
jobo322 committed Mar 29, 2022
1 parent 74c7499 commit ce8eb1b
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 86 deletions.
83 changes: 10 additions & 73 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Expand Up @@ -70,7 +70,7 @@
"multiplet-analysis": "^2.0.0",
"nmr-correlation": "^2.2.5",
"nmr-parser": "^1.7.3",
"nmr-processing": "^7.3.0",
"nmr-processing": "^7.4.1",
"nmredata": "^0.6.1",
"numeral": "^2.0.6",
"openchemlib": "^7.4.3",
Expand Down
2 changes: 1 addition & 1 deletion src/component/loader/DropZone.tsx
Expand Up @@ -4,8 +4,8 @@ import Zip from 'jszip';
import { useCallback } from 'react';
import { useDropzone } from 'react-dropzone';
import { FaUpload } from 'react-icons/fa';
import { File } from '../../data/types/common/File';

import { File } from '../../data/types/common/File';
import { useChartData } from '../context/ChartContext';
import { useDispatch } from '../context/DispatchContext';
import { LoaderProvider } from '../context/LoaderContext';
Expand Down
29 changes: 18 additions & 11 deletions src/data/PredictionManager.ts
@@ -1,4 +1,9 @@
import { predictAll, signalsToXY, signals2DToZ } from 'nmr-processing';
import {
predictAll,
signalsToXY,
signals2DToZ,
getFrequency,
} from 'nmr-processing';
import OCL from 'openchemlib/full';

import { DatumKind } from './constants/SignalsKinds';
Expand Down Expand Up @@ -137,7 +142,7 @@ function generated1DSpectrum(params: {
'1d': { nbPoints },
frequency: freq,
} = inputOptions;
const frequency = getFrequency(nucleus, freq);
const frequency = calculateFrequency(nucleus, freq);
const { x, y } = signalsToXY(signals, {
...inputOptions['1d'][nucleus],
frequency,
Expand Down Expand Up @@ -207,7 +212,7 @@ function generated2DSpectrum(params: {
const yOption = inputOptions['1d'][nuclei[1]];

const width = get2DWidth(nuclei);
const frequency = getFrequency(nuclei, inputOptions.frequency);
const frequency = calculateFrequency(nuclei, inputOptions.frequency);

const spectrumData = signals2DToZ(signals, {
from: { x: xOption.from, y: yOption.from },
Expand All @@ -217,6 +222,7 @@ function generated2DSpectrum(params: {
y: inputOptions['2d'].nbPoints.y,
},
width,
factor: 3,
});

const datum = initiateDatum2D(
Expand All @@ -240,22 +246,23 @@ function generated2DSpectrum(params: {
}

function get2DWidth(nucleus: string[]) {
return nucleus[0] === nucleus[1] ? 0.03 : { x: 0.03, y: 0.32 };
return nucleus[0] === nucleus[1] ? 0.02 : { x: 0.02, y: 0.2133 };
}

function getFrequency(
function calculateFrequency(
nucleus: string | string[],
inputFrequency: number,
frequency: number,
): number | string {
const ration13C = 0.25;

if (typeof nucleus === 'string') {
return nucleus === '13C' ? inputFrequency * ration13C : inputFrequency;
return getFrequency(nucleus, { nucleus: '1H', frequency });
} else {
if (nucleus[0] === nucleus[1]) {
return `${inputFrequency},${inputFrequency}`;
return `${frequency},${frequency}`;
} else {
return `${inputFrequency},${inputFrequency * ration13C}`;
return `${frequency},${getFrequency(nucleus[1], {
nucleus: nucleus[0],
frequency,
})}`;
}
}
}
1 change: 1 addition & 0 deletions src/data/types/data2d/Signal2D.ts
@@ -1,4 +1,5 @@
import { NMRSignal2D } from 'nmr-processing';

import { Signal2DAxisData } from './Signal2DAxisData';

export interface Signal2D extends Omit<NMRSignal2D, 'id' | 'x' | 'y'> {
Expand Down

0 comments on commit ce8eb1b

Please sign in to comment.