nmr-processing 9.7.8 → 9.8.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/apodization/compose.js +1 -1
- package/lib/apodization/compose.js.map +1 -1
- package/lib/assignment/get13CAssignments.d.ts +1 -1
- package/lib/assignment/get13CAssignments.js +3 -3
- package/lib/assignment/get13CAssignments.js.map +1 -1
- package/lib/assignment/get1HAssignments.d.ts +2 -4
- package/lib/assignment/get1HAssignments.js +3 -3
- package/lib/assignment/get1HAssignments.js.map +1 -1
- package/lib/assignment/getAssignments.d.ts +3 -5
- package/lib/assignment/getAssignments.js +5 -5
- package/lib/assignment/getAssignments.js.map +1 -1
- package/lib/assignment/nmrAssigment.d.ts +2 -2
- package/lib/assignment/utils/addSolution.d.ts +13 -0
- package/lib/assignment/utils/addSolution.js +29 -0
- package/lib/assignment/utils/addSolution.js.map +1 -0
- package/lib/assignment/utils/{getAssignment → generalAssignment}/buildAssignments.d.ts +13 -27
- package/lib/assignment/utils/{getAssignment → generalAssignment}/buildAssignments.js +15 -15
- package/lib/assignment/utils/generalAssignment/buildAssignments.js.map +1 -0
- package/lib/assignment/utils/{getAssignment → generalAssignment}/checkIDs.js +6 -6
- package/lib/assignment/utils/generalAssignment/checkIDs.js.map +1 -0
- package/lib/assignment/utils/{getAssignment → generalAssignment}/createMapPossibleAssignment.d.ts +3 -7
- package/lib/assignment/utils/{getAssignment → generalAssignment}/createMapPossibleAssignment.js +7 -7
- package/lib/assignment/utils/generalAssignment/createMapPossibleAssignment.js.map +1 -0
- package/lib/assignment/utils/{getAssignment → generalAssignment}/exploreTree.d.ts +1 -1
- package/lib/assignment/utils/{getAssignment → generalAssignment}/exploreTree.js +6 -7
- package/lib/assignment/utils/generalAssignment/exploreTree.js.map +1 -0
- package/lib/assignment/utils/{getAssignment → generalAssignment}/formatData.js +5 -5
- package/lib/assignment/utils/generalAssignment/formatData.js.map +1 -0
- package/lib/assignment/utils/generalAssignment/getIntegrationOfAttachedProtons.js.map +1 -0
- package/lib/assignment/utils/{getAssignment → generalAssignment}/getTargetsAndCorrelations.d.ts +2 -4
- package/lib/assignment/utils/{getAssignment → generalAssignment}/getTargetsAndCorrelations.js +1 -1
- package/lib/assignment/utils/generalAssignment/getTargetsAndCorrelations.js.map +1 -0
- package/lib/assignment/utils/{getAssignment → generalAssignment}/getWorkFlow.d.ts +1 -1
- package/lib/assignment/utils/generalAssignment/getWorkFlow.js.map +1 -0
- package/lib/assignment/utils/{getAssignment → generalAssignment}/groupCarbonTargetByIntegrationZone.js +8 -8
- package/lib/assignment/utils/generalAssignment/groupCarbonTargetByIntegrationZone.js.map +1 -0
- package/lib/assignment/utils/generalAssignment/isSpectraData1D.js.map +1 -0
- package/lib/assignment/utils/{getAssignment → generalAssignment}/partialScore.d.ts +1 -3
- package/lib/assignment/utils/{getAssignment → generalAssignment}/partialScore.js +20 -20
- package/lib/assignment/utils/generalAssignment/partialScore.js.map +1 -0
- package/lib/assignment/utils/generalAssignment/searchIndices.js.map +1 -0
- package/lib/assignment/utils/{buildAssignments.d.ts → oneDimensionalAssignment/buildAssignments.d.ts} +2 -4
- package/lib/assignment/utils/{buildAssignments.js → oneDimensionalAssignment/buildAssignments.js} +4 -4
- package/lib/assignment/utils/oneDimensionalAssignment/buildAssignments.js.map +1 -0
- package/lib/assignment/utils/{createMapPossibleAssignments.d.ts → oneDimensionalAssignment/createMapPossibleAssignments.d.ts} +3 -5
- package/lib/assignment/utils/{createMapPossibleAssignments.js → oneDimensionalAssignment/createMapPossibleAssignments.js} +4 -4
- package/lib/assignment/utils/oneDimensionalAssignment/createMapPossibleAssignments.js.map +1 -0
- package/lib/assignment/utils/{exploreTreeRec.d.ts → oneDimensionalAssignment/exploreTreeRec.d.ts} +1 -1
- package/lib/assignment/utils/{exploreTreeRec.js → oneDimensionalAssignment/exploreTreeRec.js} +7 -8
- package/lib/assignment/utils/oneDimensionalAssignment/exploreTreeRec.js.map +1 -0
- package/lib/assignment/utils/{partialScore.d.ts → oneDimensionalAssignment/partialScore.d.ts} +1 -1
- package/lib/assignment/utils/{partialScore.js → oneDimensionalAssignment/partialScore.js} +9 -9
- package/lib/assignment/utils/oneDimensionalAssignment/partialScore.js.map +1 -0
- package/lib/constants/SignalsKinds.d.ts +2 -2
- package/lib/constants/SignalsKinds.js.map +1 -1
- package/lib/constants/couplingValues.d.ts +1 -3
- package/lib/constants/couplingValues.js.map +1 -1
- package/lib/constants/degreeToRadians.d.ts +1 -0
- package/lib/constants/degreeToRadians.js +5 -0
- package/lib/constants/degreeToRadians.js.map +1 -0
- package/lib/constants/impurities.d.ts +1509 -6
- package/lib/constants/impurities.js +2 -1
- package/lib/constants/impurities.js.map +1 -1
- package/lib/databases/getDatabase.js +1 -1
- package/lib/databases/getDatabase.js.map +1 -1
- package/lib/datum/Filters.js +4 -0
- package/lib/datum/Filters.js.map +1 -1
- package/lib/datum/FiltersManager.d.ts +1 -1
- package/lib/datum/FiltersManager.js +2 -2
- package/lib/datum/FiltersManager.js.map +1 -1
- package/lib/datum/MatrixOptions.d.ts +2 -2
- package/lib/datum/data1d/Entry1D.d.ts +1 -1
- package/lib/datum/data1d/filter1d/baselineCorrection.js +4 -4
- package/lib/datum/data1d/filter1d/baselineCorrection.js.map +1 -1
- package/lib/datum/data1d/filter1d/digitalFilter.js +2 -2
- package/lib/datum/data1d/filter1d/digitalFilter.js.map +1 -1
- package/lib/datum/data1d/filter1d/fft.js +7 -7
- package/lib/datum/data1d/filter1d/fft.js.map +1 -1
- package/lib/datum/data1d/filter1d/phaseCorrection.js +3 -3
- package/lib/datum/data1d/filter1d/phaseCorrection.js.map +1 -1
- package/lib/datum/data1d/filter1d/signalProcessing.js +1 -1
- package/lib/datum/data1d/filter1d/signalProcessing.js.map +1 -1
- package/lib/datum/data1d/filter1d/utils/padDataToNextPowerOfTwo.js +2 -2
- package/lib/datum/data1d/filter1d/utils/padDataToNextPowerOfTwo.js.map +1 -1
- package/lib/datum/data1d/filter1d/zeroFilling.js +8 -8
- package/lib/datum/data1d/filter1d/zeroFilling.js.map +1 -1
- package/lib/datum/data1d/utils/mapPeaks.js +1 -1
- package/lib/datum/data1d/utils/mapPeaks.js.map +1 -1
- package/lib/datum/data2d/Entry2D.d.ts +1 -1
- package/lib/datum/data2d/filter2d/fftDimension1.d.ts +15 -0
- package/lib/datum/data2d/filter2d/fftDimension1.js +69 -0
- package/lib/datum/data2d/filter2d/fftDimension1.js.map +1 -0
- package/lib/datum/data2d/filter2d/fftDimension2.d.ts +15 -0
- package/lib/datum/data2d/filter2d/fftDimension2.js +78 -0
- package/lib/datum/data2d/filter2d/fftDimension2.js.map +1 -0
- package/lib/datum/data2d/utils/getShift.js +1 -1
- package/lib/datum/data2d/utils/getShift.js.map +1 -1
- package/lib/multiplicity/splitPatterns.js +1 -1
- package/lib/multiplicity/splitPatterns.js.map +1 -1
- package/lib/peaks/peaksFilterImpurities.js +7 -6
- package/lib/peaks/peaksFilterImpurities.js.map +1 -1
- package/lib/peaks/peaksToRanges.js +17 -17
- package/lib/peaks/peaksToRanges.js.map +1 -1
- package/lib/peaks/solventSuppression.js +11 -11
- package/lib/peaks/solventSuppression.js.map +1 -1
- package/lib/peaks/util/addMissingIDs.js.map +1 -1
- package/lib/peaks/util/determineRealTop.js +32 -32
- package/lib/peaks/util/determineRealTop.js.map +1 -1
- package/lib/peaks/util/getKernel.js +4 -4
- package/lib/peaks/util/getKernel.js.map +1 -1
- package/lib/peaks/util/peakOptimizer.js +17 -17
- package/lib/peaks/util/peakOptimizer.js.map +1 -1
- package/lib/peaks/util/setIDs.js.map +1 -1
- package/lib/prediction/dataStructure.d.ts +1 -3
- package/lib/prediction/predictAll.js +2 -1
- package/lib/prediction/predictAll.js.map +1 -1
- package/lib/prediction/predictCOSY.js +1 -1
- package/lib/prediction/predictCOSY.js.map +1 -1
- package/lib/prediction/predictCarbon.js +6 -6
- package/lib/prediction/predictCarbon.js.map +1 -1
- package/lib/prediction/predictHMBC.js +1 -1
- package/lib/prediction/predictHMBC.js.map +1 -1
- package/lib/prediction/predictHSQC.js +1 -1
- package/lib/prediction/predictHSQC.js.map +1 -1
- package/lib/prediction/predictProton.js +9 -9
- package/lib/prediction/predictProton.js.map +1 -1
- package/lib/prediction/utils/getFilteredIDiaIDs.js +3 -3
- package/lib/prediction/utils/getFilteredIDiaIDs.js.map +1 -1
- package/lib/prediction/utils/getNuclei.d.ts +1 -3
- package/lib/prediction/utils/getNuclei.js.map +1 -1
- package/lib/prediction/utils/predict2D.d.ts +1 -3
- package/lib/prediction/utils/predict2D.js +17 -17
- package/lib/prediction/utils/predict2D.js.map +1 -1
- package/lib/prediction/utils/queryByHOSE.js +1 -1
- package/lib/prediction/utils/queryByHOSE.js.map +1 -1
- package/lib/ranges/markSolventSignal.js +8 -8
- package/lib/ranges/markSolventSignal.js.map +1 -1
- package/lib/ranges/rangesToACS.js +6 -6
- package/lib/ranges/rangesToACS.js.map +1 -1
- package/lib/ranges/rangesToXY.js +6 -6
- package/lib/ranges/rangesToXY.js.map +1 -1
- package/lib/signal/signalJoinCouplings.js +9 -9
- package/lib/signal/signalJoinCouplings.js.map +1 -1
- package/lib/signal/signalMultiplicityPattern.js +2 -2
- package/lib/signal/signalMultiplicityPattern.js.map +1 -1
- package/lib/signals/addDummySignals.js +4 -4
- package/lib/signals/addDummySignals.js.map +1 -1
- package/lib/signals/hackSignalsToXY.js +1 -1
- package/lib/signals/hackSignalsToXY.js.map +1 -1
- package/lib/signals/optimization/getInternalSignals.js +6 -6
- package/lib/signals/optimization/getInternalSignals.js.map +1 -1
- package/lib/signals/optimization/getSumOfShapes.js +1 -1
- package/lib/signals/optimization/getSumOfShapes.js.map +1 -1
- package/lib/signals/optimizeSignals.js +3 -3
- package/lib/signals/optimizeSignals.js.map +1 -1
- package/lib/signals/signals2DToZ.js +3 -2
- package/lib/signals/signals2DToZ.js.map +1 -1
- package/lib/signals/signalsJoin.js +5 -5
- package/lib/signals/signalsJoin.js.map +1 -1
- package/lib/signals/signalsToFID.js +1 -1
- package/lib/signals/signalsToFID.js.map +1 -1
- package/lib/signals/signalsToRanges.js +3 -3
- package/lib/signals/signalsToRanges.js.map +1 -1
- package/lib/signals/signalsToXY.js +3 -3
- package/lib/signals/signalsToXY.js.map +1 -1
- package/lib/signals/simulation/signalsToSpinSystem.js +2 -2
- package/lib/signals/simulation/signalsToSpinSystem.js.map +1 -1
- package/lib/signals/simulation/simulate1D.js +2 -2
- package/lib/signals/simulation/simulate1D.js.map +1 -1
- package/lib/signals/simulation/simulateXYPeaks.js +15 -17
- package/lib/signals/simulation/simulateXYPeaks.js.map +1 -1
- package/lib/signals/simulation/splitSpinSystem.js +26 -23
- package/lib/signals/simulation/splitSpinSystem.js.map +1 -1
- package/lib/signals/utils/jAnalyzer.js +38 -38
- package/lib/signals/utils/jAnalyzer.js.map +1 -1
- package/lib/types/Integrals.d.ts +1 -1
- package/lib/types/Peaks/Peaks.d.ts +1 -1
- package/lib/types/Ranges/Ranges.d.ts +1 -1
- package/lib/types/Zones/Zone.d.ts +1 -1
- package/lib/types/Zones/Zones.d.ts +1 -1
- package/lib/utilities/getFrequency.js +1 -1
- package/lib/utilities/getFrequency.js.map +1 -1
- package/lib/utilities/resurrectRange.js +1 -1
- package/lib/utilities/resurrectRange.js.map +1 -1
- package/lib/xy/xyAutoPeaksPicking.js +3 -3
- package/lib/xy/xyAutoPeaksPicking.js.map +1 -1
- package/lib/xyz/quadrature.js +1 -19
- package/lib/xyz/quadrature.js.map +1 -1
- package/lib/xyz/util/fft2d/digitalFilter.js +3 -3
- package/lib/xyz/util/fft2d/digitalFilter.js.map +1 -1
- package/lib/xyz/util/fft2d/fftDirectDimension.d.ts +1 -1
- package/lib/xyz/util/fft2d/fftDirectDimension.js +3 -11
- package/lib/xyz/util/fft2d/fftDirectDimension.js.map +1 -1
- package/lib/xyz/util/fft2d/fftIndirectDimension.d.ts +2 -4
- package/lib/xyz/util/fft2d/fftIndirectDimension.js +104 -50
- package/lib/xyz/util/fft2d/fftIndirectDimension.js.map +1 -1
- package/lib/xyz/util/fft2d/removeDCOffset.js +1 -1
- package/lib/xyz/util/fft2d/removeDCOffset.js.map +1 -1
- package/lib/xyz/util/fft2d/zeroFilling.js +4 -6
- package/lib/xyz/util/fft2d/zeroFilling.js.map +1 -1
- package/lib/xyz/util/formatZone.js +3 -3
- package/lib/xyz/util/formatZone.js.map +1 -1
- package/lib/xyz/util/getMinMaxXY.d.ts +6 -0
- package/lib/xyz/util/getMinMaxXY.js +23 -0
- package/lib/xyz/util/getMinMaxXY.js.map +1 -0
- package/lib/xyz/util/padData.js +7 -7
- package/lib/xyz/util/padData.js.map +1 -1
- package/lib/xyz/util/phaseCorrection/applyOverImag.d.ts +24 -0
- package/lib/xyz/util/phaseCorrection/applyOverImag.js +27 -0
- package/lib/xyz/util/phaseCorrection/applyOverImag.js.map +1 -0
- package/lib/xyz/util/phaseCorrection/applyOverReal.d.ts +22 -0
- package/lib/xyz/util/phaseCorrection/applyOverReal.js +27 -0
- package/lib/xyz/util/phaseCorrection/applyOverReal.js.map +1 -0
- package/lib/xyz/util/phaseCorrection/checkNmrData2DFourQuad.d.ts +3 -0
- package/lib/xyz/util/phaseCorrection/checkNmrData2DFourQuad.js +10 -0
- package/lib/xyz/util/phaseCorrection/checkNmrData2DFourQuad.js.map +1 -0
- package/lib/xyz/util/phaseCorrection/checkNmrData2DTwoQuad.d.ts +3 -0
- package/lib/xyz/util/phaseCorrection/checkNmrData2DTwoQuad.js +10 -0
- package/lib/xyz/util/phaseCorrection/checkNmrData2DTwoQuad.js.map +1 -0
- package/lib/xyz/util/phaseCorrection/getZMinMax.d.ts +6 -0
- package/lib/xyz/util/phaseCorrection/getZMinMax.js +13 -0
- package/lib/xyz/util/phaseCorrection/getZMinMax.js.map +1 -0
- package/lib/xyz/xyzAutoSignalsPicking.js +19 -18
- package/lib/xyz/xyzAutoSignalsPicking.js.map +1 -1
- package/lib/xyz/xyzBidimensionalFFT.js +2 -19
- package/lib/xyz/xyzBidimensionalFFT.js.map +1 -1
- package/lib/xyz/xyzJResAnalyzer.js +21 -21
- package/lib/xyz/xyzJResAnalyzer.js.map +1 -1
- package/lib/xyz/xyzPhaseCorrectionDirectDimension.d.ts +16 -0
- package/lib/xyz/xyzPhaseCorrectionDirectDimension.js +30 -0
- package/lib/xyz/xyzPhaseCorrectionDirectDimension.js.map +1 -0
- package/lib/xyz/xyzPhaseCorrectionIndirectDimension.d.ts +25 -0
- package/lib/xyz/xyzPhaseCorrectionIndirectDimension.js +32 -0
- package/lib/xyz/xyzPhaseCorrectionIndirectDimension.js.map +1 -0
- package/lib-esm/apodization/compose.js +1 -1
- package/lib-esm/apodization/compose.js.map +1 -1
- package/lib-esm/assignment/get13CAssignments.js +3 -3
- package/lib-esm/assignment/get13CAssignments.js.map +1 -1
- package/lib-esm/assignment/get1HAssignments.js +3 -3
- package/lib-esm/assignment/get1HAssignments.js.map +1 -1
- package/lib-esm/assignment/getAssignments.js +5 -5
- package/lib-esm/assignment/getAssignments.js.map +1 -1
- package/lib-esm/assignment/utils/addSolution.js +25 -0
- package/lib-esm/assignment/utils/addSolution.js.map +1 -0
- package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/buildAssignments.js +15 -15
- package/lib-esm/assignment/utils/generalAssignment/buildAssignments.js.map +1 -0
- package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/checkIDs.js +6 -6
- package/lib-esm/assignment/utils/generalAssignment/checkIDs.js.map +1 -0
- package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/createMapPossibleAssignment.js +7 -7
- package/lib-esm/assignment/utils/generalAssignment/createMapPossibleAssignment.js.map +1 -0
- package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/exploreTree.js +6 -7
- package/lib-esm/assignment/utils/generalAssignment/exploreTree.js.map +1 -0
- package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/formatData.js +5 -5
- package/lib-esm/assignment/utils/generalAssignment/formatData.js.map +1 -0
- package/lib-esm/assignment/utils/generalAssignment/getIntegrationOfAttachedProtons.js.map +1 -0
- package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/getTargetsAndCorrelations.js +1 -1
- package/lib-esm/assignment/utils/generalAssignment/getTargetsAndCorrelations.js.map +1 -0
- package/lib-esm/assignment/utils/generalAssignment/getWorkFlow.js.map +1 -0
- package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/groupCarbonTargetByIntegrationZone.js +8 -8
- package/lib-esm/assignment/utils/generalAssignment/groupCarbonTargetByIntegrationZone.js.map +1 -0
- package/lib-esm/assignment/utils/generalAssignment/isSpectraData1D.js.map +1 -0
- package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/partialScore.js +20 -20
- package/lib-esm/assignment/utils/generalAssignment/partialScore.js.map +1 -0
- package/lib-esm/assignment/utils/generalAssignment/searchIndices.js.map +1 -0
- package/lib-esm/assignment/utils/{buildAssignments.js → oneDimensionalAssignment/buildAssignments.js} +4 -4
- package/lib-esm/assignment/utils/oneDimensionalAssignment/buildAssignments.js.map +1 -0
- package/lib-esm/assignment/utils/{createMapPossibleAssignments.js → oneDimensionalAssignment/createMapPossibleAssignments.js} +4 -4
- package/lib-esm/assignment/utils/oneDimensionalAssignment/createMapPossibleAssignments.js.map +1 -0
- package/lib-esm/assignment/utils/{exploreTreeRec.js → oneDimensionalAssignment/exploreTreeRec.js} +7 -8
- package/lib-esm/assignment/utils/oneDimensionalAssignment/exploreTreeRec.js.map +1 -0
- package/lib-esm/assignment/utils/{partialScore.js → oneDimensionalAssignment/partialScore.js} +9 -9
- package/lib-esm/assignment/utils/oneDimensionalAssignment/partialScore.js.map +1 -0
- package/lib-esm/constants/SignalsKinds.js.map +1 -1
- package/lib-esm/constants/couplingValues.js.map +1 -1
- package/lib-esm/constants/degreeToRadians.js +2 -0
- package/lib-esm/constants/degreeToRadians.js.map +1 -0
- package/lib-esm/constants/impurities.js +2 -1
- package/lib-esm/constants/impurities.js.map +1 -1
- package/lib-esm/databases/getDatabase.js +1 -1
- package/lib-esm/databases/getDatabase.js.map +1 -1
- package/lib-esm/datum/Filters.js +4 -0
- package/lib-esm/datum/Filters.js.map +1 -1
- package/lib-esm/datum/FiltersManager.js +2 -2
- package/lib-esm/datum/FiltersManager.js.map +1 -1
- package/lib-esm/datum/data1d/filter1d/baselineCorrection.js +4 -4
- package/lib-esm/datum/data1d/filter1d/baselineCorrection.js.map +1 -1
- package/lib-esm/datum/data1d/filter1d/digitalFilter.js +2 -2
- package/lib-esm/datum/data1d/filter1d/digitalFilter.js.map +1 -1
- package/lib-esm/datum/data1d/filter1d/fft.js +7 -7
- package/lib-esm/datum/data1d/filter1d/fft.js.map +1 -1
- package/lib-esm/datum/data1d/filter1d/phaseCorrection.js +3 -3
- package/lib-esm/datum/data1d/filter1d/phaseCorrection.js.map +1 -1
- package/lib-esm/datum/data1d/filter1d/signalProcessing.js +1 -1
- package/lib-esm/datum/data1d/filter1d/signalProcessing.js.map +1 -1
- package/lib-esm/datum/data1d/filter1d/utils/padDataToNextPowerOfTwo.js +2 -2
- package/lib-esm/datum/data1d/filter1d/utils/padDataToNextPowerOfTwo.js.map +1 -1
- package/lib-esm/datum/data1d/filter1d/zeroFilling.js +8 -8
- package/lib-esm/datum/data1d/filter1d/zeroFilling.js.map +1 -1
- package/lib-esm/datum/data1d/utils/mapPeaks.js +1 -1
- package/lib-esm/datum/data1d/utils/mapPeaks.js.map +1 -1
- package/lib-esm/datum/data2d/filter2d/fftDimension1.js +63 -0
- package/lib-esm/datum/data2d/filter2d/fftDimension1.js.map +1 -0
- package/lib-esm/datum/data2d/filter2d/fftDimension2.js +72 -0
- package/lib-esm/datum/data2d/filter2d/fftDimension2.js.map +1 -0
- package/lib-esm/datum/data2d/utils/getShift.js +1 -1
- package/lib-esm/datum/data2d/utils/getShift.js.map +1 -1
- package/lib-esm/multiplicity/splitPatterns.js +1 -1
- package/lib-esm/multiplicity/splitPatterns.js.map +1 -1
- package/lib-esm/peaks/peaksFilterImpurities.js +7 -6
- package/lib-esm/peaks/peaksFilterImpurities.js.map +1 -1
- package/lib-esm/peaks/peaksToRanges.js +17 -17
- package/lib-esm/peaks/peaksToRanges.js.map +1 -1
- package/lib-esm/peaks/solventSuppression.js +11 -11
- package/lib-esm/peaks/solventSuppression.js.map +1 -1
- package/lib-esm/peaks/util/addMissingIDs.js.map +1 -1
- package/lib-esm/peaks/util/determineRealTop.js +32 -32
- package/lib-esm/peaks/util/determineRealTop.js.map +1 -1
- package/lib-esm/peaks/util/getKernel.js +4 -4
- package/lib-esm/peaks/util/getKernel.js.map +1 -1
- package/lib-esm/peaks/util/peakOptimizer.js +17 -17
- package/lib-esm/peaks/util/peakOptimizer.js.map +1 -1
- package/lib-esm/peaks/util/setIDs.js.map +1 -1
- package/lib-esm/prediction/predictAll.js +2 -1
- package/lib-esm/prediction/predictAll.js.map +1 -1
- package/lib-esm/prediction/predictCOSY.js +1 -1
- package/lib-esm/prediction/predictCOSY.js.map +1 -1
- package/lib-esm/prediction/predictCarbon.js +6 -6
- package/lib-esm/prediction/predictCarbon.js.map +1 -1
- package/lib-esm/prediction/predictHMBC.js +1 -1
- package/lib-esm/prediction/predictHMBC.js.map +1 -1
- package/lib-esm/prediction/predictHSQC.js +1 -1
- package/lib-esm/prediction/predictHSQC.js.map +1 -1
- package/lib-esm/prediction/predictProton.js +9 -9
- package/lib-esm/prediction/predictProton.js.map +1 -1
- package/lib-esm/prediction/utils/getFilteredIDiaIDs.js +3 -3
- package/lib-esm/prediction/utils/getFilteredIDiaIDs.js.map +1 -1
- package/lib-esm/prediction/utils/getNuclei.js.map +1 -1
- package/lib-esm/prediction/utils/predict2D.js +17 -17
- package/lib-esm/prediction/utils/predict2D.js.map +1 -1
- package/lib-esm/prediction/utils/queryByHOSE.js +1 -1
- package/lib-esm/prediction/utils/queryByHOSE.js.map +1 -1
- package/lib-esm/ranges/markSolventSignal.js +8 -8
- package/lib-esm/ranges/markSolventSignal.js.map +1 -1
- package/lib-esm/ranges/rangesToACS.js +6 -6
- package/lib-esm/ranges/rangesToACS.js.map +1 -1
- package/lib-esm/ranges/rangesToXY.js +6 -6
- package/lib-esm/ranges/rangesToXY.js.map +1 -1
- package/lib-esm/signal/signalJoinCouplings.js +9 -9
- package/lib-esm/signal/signalJoinCouplings.js.map +1 -1
- package/lib-esm/signal/signalMultiplicityPattern.js +2 -2
- package/lib-esm/signal/signalMultiplicityPattern.js.map +1 -1
- package/lib-esm/signals/addDummySignals.js +4 -4
- package/lib-esm/signals/addDummySignals.js.map +1 -1
- package/lib-esm/signals/hackSignalsToXY.js +1 -1
- package/lib-esm/signals/hackSignalsToXY.js.map +1 -1
- package/lib-esm/signals/optimization/getInternalSignals.js +6 -6
- package/lib-esm/signals/optimization/getInternalSignals.js.map +1 -1
- package/lib-esm/signals/optimization/getSumOfShapes.js +1 -1
- package/lib-esm/signals/optimization/getSumOfShapes.js.map +1 -1
- package/lib-esm/signals/optimizeSignals.js +3 -3
- package/lib-esm/signals/optimizeSignals.js.map +1 -1
- package/lib-esm/signals/signals2DToZ.js +3 -2
- package/lib-esm/signals/signals2DToZ.js.map +1 -1
- package/lib-esm/signals/signalsJoin.js +5 -5
- package/lib-esm/signals/signalsJoin.js.map +1 -1
- package/lib-esm/signals/signalsToFID.js +1 -1
- package/lib-esm/signals/signalsToFID.js.map +1 -1
- package/lib-esm/signals/signalsToRanges.js +3 -3
- package/lib-esm/signals/signalsToRanges.js.map +1 -1
- package/lib-esm/signals/signalsToXY.js +3 -3
- package/lib-esm/signals/signalsToXY.js.map +1 -1
- package/lib-esm/signals/simulation/signalsToSpinSystem.js +2 -2
- package/lib-esm/signals/simulation/signalsToSpinSystem.js.map +1 -1
- package/lib-esm/signals/simulation/simulate1D.js +2 -2
- package/lib-esm/signals/simulation/simulate1D.js.map +1 -1
- package/lib-esm/signals/simulation/simulateXYPeaks.js +15 -17
- package/lib-esm/signals/simulation/simulateXYPeaks.js.map +1 -1
- package/lib-esm/signals/simulation/splitSpinSystem.js +26 -23
- package/lib-esm/signals/simulation/splitSpinSystem.js.map +1 -1
- package/lib-esm/signals/utils/jAnalyzer.js +38 -38
- package/lib-esm/signals/utils/jAnalyzer.js.map +1 -1
- package/lib-esm/utilities/getFrequency.js +1 -1
- package/lib-esm/utilities/getFrequency.js.map +1 -1
- package/lib-esm/utilities/resurrectRange.js +1 -1
- package/lib-esm/utilities/resurrectRange.js.map +1 -1
- package/lib-esm/xy/xyAutoPeaksPicking.js +3 -3
- package/lib-esm/xy/xyAutoPeaksPicking.js.map +1 -1
- package/lib-esm/xyz/quadrature.js +2 -20
- package/lib-esm/xyz/quadrature.js.map +1 -1
- package/lib-esm/xyz/util/fft2d/digitalFilter.js +3 -3
- package/lib-esm/xyz/util/fft2d/digitalFilter.js.map +1 -1
- package/lib-esm/xyz/util/fft2d/fftDirectDimension.js +4 -12
- package/lib-esm/xyz/util/fft2d/fftDirectDimension.js.map +1 -1
- package/lib-esm/xyz/util/fft2d/fftIndirectDimension.js +104 -50
- package/lib-esm/xyz/util/fft2d/fftIndirectDimension.js.map +1 -1
- package/lib-esm/xyz/util/fft2d/removeDCOffset.js +1 -1
- package/lib-esm/xyz/util/fft2d/removeDCOffset.js.map +1 -1
- package/lib-esm/xyz/util/fft2d/zeroFilling.js +4 -6
- package/lib-esm/xyz/util/fft2d/zeroFilling.js.map +1 -1
- package/lib-esm/xyz/util/formatZone.js +3 -3
- package/lib-esm/xyz/util/formatZone.js.map +1 -1
- package/lib-esm/xyz/util/getMinMaxXY.js +19 -0
- package/lib-esm/xyz/util/getMinMaxXY.js.map +1 -0
- package/lib-esm/xyz/util/padData.js +7 -7
- package/lib-esm/xyz/util/padData.js.map +1 -1
- package/lib-esm/xyz/util/phaseCorrection/applyOverImag.js +20 -0
- package/lib-esm/xyz/util/phaseCorrection/applyOverImag.js.map +1 -0
- package/lib-esm/xyz/util/phaseCorrection/applyOverReal.js +20 -0
- package/lib-esm/xyz/util/phaseCorrection/applyOverReal.js.map +1 -0
- package/lib-esm/xyz/util/phaseCorrection/checkNmrData2DFourQuad.js +6 -0
- package/lib-esm/xyz/util/phaseCorrection/checkNmrData2DFourQuad.js.map +1 -0
- package/lib-esm/xyz/util/phaseCorrection/checkNmrData2DTwoQuad.js +6 -0
- package/lib-esm/xyz/util/phaseCorrection/checkNmrData2DTwoQuad.js.map +1 -0
- package/lib-esm/xyz/util/phaseCorrection/getZMinMax.js +9 -0
- package/lib-esm/xyz/util/phaseCorrection/getZMinMax.js.map +1 -0
- package/lib-esm/xyz/xyzAutoSignalsPicking.js +19 -18
- package/lib-esm/xyz/xyzAutoSignalsPicking.js.map +1 -1
- package/lib-esm/xyz/xyzBidimensionalFFT.js +1 -18
- package/lib-esm/xyz/xyzBidimensionalFFT.js.map +1 -1
- package/lib-esm/xyz/xyzJResAnalyzer.js +21 -21
- package/lib-esm/xyz/xyzJResAnalyzer.js.map +1 -1
- package/lib-esm/xyz/xyzPhaseCorrectionDirectDimension.js +26 -0
- package/lib-esm/xyz/xyzPhaseCorrectionDirectDimension.js.map +1 -0
- package/lib-esm/xyz/xyzPhaseCorrectionIndirectDimension.js +28 -0
- package/lib-esm/xyz/xyzPhaseCorrectionIndirectDimension.js.map +1 -0
- package/package.json +4 -4
- package/src/apodization/compose.ts +1 -1
- package/src/assignment/get13CAssignments.ts +6 -3
- package/src/assignment/get1HAssignments.ts +7 -6
- package/src/assignment/getAssignments.ts +7 -7
- package/src/assignment/nmrAssigment.ts +2 -2
- package/src/assignment/utils/addSolution.ts +45 -0
- package/src/assignment/utils/{getAssignment → generalAssignment}/buildAssignments.ts +29 -36
- package/src/assignment/utils/{getAssignment → generalAssignment}/checkIDs.ts +6 -6
- package/src/assignment/utils/{getAssignment → generalAssignment}/createMapPossibleAssignment.ts +10 -14
- package/src/assignment/utils/{getAssignment → generalAssignment}/exploreTree.ts +7 -8
- package/src/assignment/utils/{getAssignment → generalAssignment}/formatData.ts +5 -5
- package/src/assignment/utils/{getAssignment → generalAssignment}/getTargetsAndCorrelations.ts +3 -5
- package/src/assignment/utils/{getAssignment → generalAssignment}/getWorkFlow.ts +2 -5
- package/src/assignment/utils/{getAssignment → generalAssignment}/groupCarbonTargetByIntegrationZone.ts +8 -8
- package/src/assignment/utils/{getAssignment → generalAssignment}/partialScore.ts +25 -29
- package/src/assignment/utils/{buildAssignments.ts → oneDimensionalAssignment/buildAssignments.ts} +6 -8
- package/src/assignment/utils/{createMapPossibleAssignments.ts → oneDimensionalAssignment/createMapPossibleAssignments.ts} +9 -9
- package/src/assignment/utils/{exploreTreeRec.ts → oneDimensionalAssignment/exploreTreeRec.ts} +8 -9
- package/src/assignment/utils/{partialScore.ts → oneDimensionalAssignment/partialScore.ts} +10 -12
- package/src/constants/SignalsKinds.ts +1 -1
- package/src/constants/couplingValues.ts +1 -1
- package/src/constants/degreeToRadians.ts +1 -0
- package/src/constants/impurities.ts +14 -15
- package/src/databases/getDatabase.ts +1 -1
- package/src/datum/Filters.ts +4 -0
- package/src/datum/FiltersManager.ts +3 -3
- package/src/datum/MatrixOptions.ts +1 -1
- package/src/datum/data1d/Entry1D.ts +1 -1
- package/src/datum/data1d/filter1d/baselineCorrection.ts +4 -4
- package/src/datum/data1d/filter1d/digitalFilter.ts +2 -2
- package/src/datum/data1d/filter1d/fft.ts +7 -7
- package/src/datum/data1d/filter1d/phaseCorrection.ts +3 -3
- package/src/datum/data1d/filter1d/signalProcessing.ts +1 -1
- package/src/datum/data1d/filter1d/utils/padDataToNextPowerOfTwo.ts +2 -2
- package/src/datum/data1d/filter1d/zeroFilling.ts +10 -9
- package/src/datum/data1d/utils/mapPeaks.ts +1 -1
- package/src/datum/data2d/Entry2D.ts +1 -1
- package/src/datum/data2d/filter2d/fftDimension1.ts +93 -0
- package/src/datum/data2d/filter2d/fftDimension2.ts +94 -0
- package/src/datum/data2d/utils/getShift.ts +1 -1
- package/src/ml-tree-set.d.ts +1 -1
- package/src/multiplicity/splitPatterns.ts +1 -1
- package/src/peaks/peaksFilterImpurities.ts +7 -6
- package/src/peaks/peaksToRanges.ts +19 -18
- package/src/peaks/solventSuppression.ts +11 -11
- package/src/peaks/util/addMissingIDs.ts +1 -1
- package/src/peaks/util/determineRealTop.ts +32 -32
- package/src/peaks/util/getKernel.ts +4 -4
- package/src/peaks/util/peakOptimizer.ts +17 -17
- package/src/peaks/util/setIDs.ts +6 -4
- package/src/prediction/dataStructure.ts +1 -3
- package/src/prediction/predictAll.ts +3 -2
- package/src/prediction/predictCOSY.ts +1 -1
- package/src/prediction/predictCarbon.ts +6 -6
- package/src/prediction/predictHMBC.ts +1 -1
- package/src/prediction/predictHSQC.ts +1 -1
- package/src/prediction/predictProton.ts +9 -9
- package/src/prediction/utils/getFilteredIDiaIDs.ts +3 -3
- package/src/prediction/utils/getNuclei.ts +2 -2
- package/src/prediction/utils/predict2D.ts +21 -25
- package/src/prediction/utils/queryByHOSE.ts +1 -1
- package/src/ranges/markSolventSignal.ts +8 -8
- package/src/ranges/rangesToACS.ts +6 -6
- package/src/ranges/rangesToXY.ts +6 -6
- package/src/signal/signalJoinCouplings.ts +9 -9
- package/src/signal/signalMultiplicityPattern.ts +2 -2
- package/src/signals/addDummySignals.ts +4 -4
- package/src/signals/hackSignalsToXY.ts +1 -1
- package/src/signals/optimization/getInternalSignals.ts +6 -6
- package/src/signals/optimization/getSumOfShapes.ts +1 -1
- package/src/signals/optimizeSignals.ts +3 -3
- package/src/signals/signals2DToZ.ts +4 -8
- package/src/signals/signalsJoin.ts +5 -5
- package/src/signals/signalsToFID.ts +1 -1
- package/src/signals/signalsToRanges.ts +3 -3
- package/src/signals/signalsToXY.ts +3 -3
- package/src/signals/simulation/signalsToSpinSystem.ts +3 -5
- package/src/signals/simulation/simulate1D.ts +2 -2
- package/src/signals/simulation/simulateXYPeaks.ts +16 -17
- package/src/signals/simulation/splitSpinSystem.ts +28 -25
- package/src/signals/utils/jAnalyzer.ts +38 -38
- package/src/types/Integrals.ts +1 -1
- package/src/types/Peaks/Peaks.ts +1 -1
- package/src/types/Ranges/Ranges.ts +1 -1
- package/src/types/Zones/Zone.ts +1 -1
- package/src/types/Zones/Zones.ts +1 -1
- package/src/utilities/getFrequency.ts +1 -1
- package/src/utilities/resurrectRange.ts +1 -1
- package/src/xy/xyAutoPeaksPicking.ts +3 -3
- package/src/xyz/quadrature.ts +2 -27
- package/src/xyz/util/fft2d/digitalFilter.ts +3 -3
- package/src/xyz/util/fft2d/fftDirectDimension.ts +4 -23
- package/src/xyz/util/fft2d/fftIndirectDimension.ts +123 -73
- package/src/xyz/util/fft2d/removeDCOffset.ts +1 -1
- package/src/xyz/util/fft2d/zeroFilling.ts +5 -6
- package/src/xyz/util/formatZone.ts +3 -3
- package/src/xyz/util/getMinMaxXY.ts +19 -0
- package/src/xyz/util/padData.ts +7 -7
- package/src/xyz/util/phaseCorrection/applyOverImag.ts +29 -0
- package/src/xyz/util/phaseCorrection/applyOverReal.ts +29 -0
- package/src/xyz/util/phaseCorrection/checkNmrData2DFourQuad.ts +12 -0
- package/src/xyz/util/phaseCorrection/checkNmrData2DTwoQuad.ts +11 -0
- package/src/xyz/util/phaseCorrection/getZMinMax.ts +10 -0
- package/src/xyz/xyzAutoSignalsPicking.ts +20 -19
- package/src/xyz/xyzBidimensionalFFT.ts +1 -20
- package/src/xyz/xyzJResAnalyzer.ts +21 -21
- package/src/xyz/xyzPhaseCorrectionDirectDimension.ts +52 -0
- package/src/xyz/xyzPhaseCorrectionIndirectDimension.ts +45 -0
- package/lib/assignment/utils/buildAssignments.js.map +0 -1
- package/lib/assignment/utils/createMapPossibleAssignments.js.map +0 -1
- package/lib/assignment/utils/exploreTreeRec.js.map +0 -1
- package/lib/assignment/utils/getAssignment/buildAssignments.js.map +0 -1
- package/lib/assignment/utils/getAssignment/checkIDs.js.map +0 -1
- package/lib/assignment/utils/getAssignment/createMapPossibleAssignment.js.map +0 -1
- package/lib/assignment/utils/getAssignment/exploreTree.js.map +0 -1
- package/lib/assignment/utils/getAssignment/formatData.js.map +0 -1
- package/lib/assignment/utils/getAssignment/getIntegrationOfAttachedProtons.js.map +0 -1
- package/lib/assignment/utils/getAssignment/getTargetsAndCorrelations.js.map +0 -1
- package/lib/assignment/utils/getAssignment/getWorkFlow.js.map +0 -1
- package/lib/assignment/utils/getAssignment/groupCarbonTargetByIntegrationZone.js.map +0 -1
- package/lib/assignment/utils/getAssignment/isSpectraData1D.js.map +0 -1
- package/lib/assignment/utils/getAssignment/partialScore.js.map +0 -1
- package/lib/assignment/utils/getAssignment/searchIndices.js.map +0 -1
- package/lib/assignment/utils/partialScore.js.map +0 -1
- package/lib-esm/assignment/utils/buildAssignments.js.map +0 -1
- package/lib-esm/assignment/utils/createMapPossibleAssignments.js.map +0 -1
- package/lib-esm/assignment/utils/exploreTreeRec.js.map +0 -1
- package/lib-esm/assignment/utils/getAssignment/buildAssignments.js.map +0 -1
- package/lib-esm/assignment/utils/getAssignment/checkIDs.js.map +0 -1
- package/lib-esm/assignment/utils/getAssignment/createMapPossibleAssignment.js.map +0 -1
- package/lib-esm/assignment/utils/getAssignment/exploreTree.js.map +0 -1
- package/lib-esm/assignment/utils/getAssignment/formatData.js.map +0 -1
- package/lib-esm/assignment/utils/getAssignment/getIntegrationOfAttachedProtons.js.map +0 -1
- package/lib-esm/assignment/utils/getAssignment/getTargetsAndCorrelations.js.map +0 -1
- package/lib-esm/assignment/utils/getAssignment/getWorkFlow.js.map +0 -1
- package/lib-esm/assignment/utils/getAssignment/groupCarbonTargetByIntegrationZone.js.map +0 -1
- package/lib-esm/assignment/utils/getAssignment/isSpectraData1D.js.map +0 -1
- package/lib-esm/assignment/utils/getAssignment/partialScore.js.map +0 -1
- package/lib-esm/assignment/utils/getAssignment/searchIndices.js.map +0 -1
- package/lib-esm/assignment/utils/partialScore.js.map +0 -1
- /package/lib/assignment/utils/{getAssignment → generalAssignment}/checkIDs.d.ts +0 -0
- /package/lib/assignment/utils/{getAssignment → generalAssignment}/formatData.d.ts +0 -0
- /package/lib/assignment/utils/{getAssignment → generalAssignment}/getIntegrationOfAttachedProtons.d.ts +0 -0
- /package/lib/assignment/utils/{getAssignment → generalAssignment}/getIntegrationOfAttachedProtons.js +0 -0
- /package/lib/assignment/utils/{getAssignment → generalAssignment}/getWorkFlow.js +0 -0
- /package/lib/assignment/utils/{getAssignment → generalAssignment}/groupCarbonTargetByIntegrationZone.d.ts +0 -0
- /package/lib/assignment/utils/{getAssignment → generalAssignment}/isSpectraData1D.d.ts +0 -0
- /package/lib/assignment/utils/{getAssignment → generalAssignment}/isSpectraData1D.js +0 -0
- /package/lib/assignment/utils/{getAssignment → generalAssignment}/searchIndices.d.ts +0 -0
- /package/lib/assignment/utils/{getAssignment → generalAssignment}/searchIndices.js +0 -0
- /package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/getIntegrationOfAttachedProtons.js +0 -0
- /package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/getWorkFlow.js +0 -0
- /package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/isSpectraData1D.js +0 -0
- /package/lib-esm/assignment/utils/{getAssignment → generalAssignment}/searchIndices.js +0 -0
- /package/src/assignment/utils/{getAssignment → generalAssignment}/getIntegrationOfAttachedProtons.ts +0 -0
- /package/src/assignment/utils/{getAssignment → generalAssignment}/isSpectraData1D.ts +0 -0
- /package/src/assignment/utils/{getAssignment → generalAssignment}/searchIndices.ts +0 -0
package/src/assignment/utils/{getAssignment → generalAssignment}/createMapPossibleAssignment.ts
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { getCorrelationDelta } from 'nmr-correlation';
|
|
2
2
|
|
|
3
|
-
import { PossibleAssignmentMap } from '../createMapPossibleAssignments';
|
|
3
|
+
import { PossibleAssignmentMap } from '../oneDimensionalAssignment/createMapPossibleAssignments';
|
|
4
4
|
|
|
5
5
|
import {
|
|
6
6
|
AtomTypes,
|
|
@@ -9,12 +9,8 @@ import {
|
|
|
9
9
|
} from './buildAssignments';
|
|
10
10
|
import { TargetsByAtomType } from './getTargetsAndCorrelations';
|
|
11
11
|
|
|
12
|
-
export
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
export interface MapPossibleAssignments {
|
|
16
|
-
[key: string]: PossibleAssignmentMap;
|
|
17
|
-
}
|
|
12
|
+
export type PossibleAssignments = Record<string, string[]>;
|
|
13
|
+
export type MapPossibleAssignments = Record<string, PossibleAssignmentMap>;
|
|
18
14
|
export interface CreateMapPossibleAssignmentOptions {
|
|
19
15
|
restrictionByCS: RestrictionByCS;
|
|
20
16
|
predictions: PredictionsByAtomType;
|
|
@@ -31,17 +27,17 @@ export function createMapPossibleAssignment(
|
|
|
31
27
|
const atomTypes = Object.keys(predictions) as AtomTypes[];
|
|
32
28
|
|
|
33
29
|
for (const atomType of atomTypes) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
30
|
+
const errorAbs = toleranceCS[atomType];
|
|
31
|
+
const predictionByAtomType = predictions[atomType];
|
|
32
|
+
const targetByAtomType = targets[atomType];
|
|
37
33
|
if (!expandMap[atomType]) expandMap[atomType] = {};
|
|
38
34
|
for (const diaID in predictionByAtomType) {
|
|
39
|
-
|
|
35
|
+
const prediction = predictionByAtomType[diaID];
|
|
40
36
|
expandMap[atomType][diaID] = [];
|
|
41
37
|
|
|
42
38
|
if (targetByAtomType) {
|
|
43
39
|
for (const targetID in targetByAtomType) {
|
|
44
|
-
|
|
40
|
+
const target = targetByAtomType[targetID];
|
|
45
41
|
const { nbAtoms, protonsCount: protonsCountFromPrediction } =
|
|
46
42
|
prediction;
|
|
47
43
|
const { integration, protonsCount } = target;
|
|
@@ -63,11 +59,11 @@ export function createMapPossibleAssignment(
|
|
|
63
59
|
// Chemical shift is not a restriction
|
|
64
60
|
expandMap[atomType][diaID].push(targetID);
|
|
65
61
|
} else {
|
|
66
|
-
|
|
62
|
+
const targetDelta = getCorrelationDelta(target);
|
|
67
63
|
if (targetDelta === undefined) {
|
|
68
64
|
throw new Error(`Correlation has not delta`);
|
|
69
65
|
}
|
|
70
|
-
|
|
66
|
+
const distAfterLimit = Math.abs(
|
|
71
67
|
prediction.delta - targetDelta - errorAbs,
|
|
72
68
|
);
|
|
73
69
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { StoreAssignments } from '../buildAssignments';
|
|
1
|
+
import { StoreAssignments } from '../oneDimensionalAssignment/buildAssignments';
|
|
2
2
|
|
|
3
3
|
import {
|
|
4
4
|
RestrictionByCS,
|
|
@@ -73,10 +73,10 @@ export function exploreTree(
|
|
|
73
73
|
const diaID = diaIDPeerPossibleAssignment[atomType][currentIndex];
|
|
74
74
|
const possibleAssignments = possibleAssignmentMap[atomType][diaID];
|
|
75
75
|
|
|
76
|
-
for (
|
|
76
|
+
for (const targetID of possibleAssignments) {
|
|
77
77
|
partial[atomType][currentIndex] = targetID;
|
|
78
78
|
|
|
79
|
-
|
|
79
|
+
const score = partialScore(partial, {
|
|
80
80
|
diaIDPeerPossibleAssignment,
|
|
81
81
|
infoByAtomTypes,
|
|
82
82
|
restrictionByCS,
|
|
@@ -126,11 +126,10 @@ export interface AssignmentSolution {
|
|
|
126
126
|
}
|
|
127
127
|
|
|
128
128
|
function addSolution(store: StoreAssignments, props: AddSolutionOptions) {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
let solution: AssignmentSolution = {
|
|
129
|
+
const { score, maxSolutions, partial, predictions } = props;
|
|
130
|
+
const solution: AssignmentSolution = {
|
|
132
131
|
assignment: JSON.parse(JSON.stringify(partial)),
|
|
133
|
-
score,
|
|
132
|
+
score: score / doubleAssignmentPenalty(partial, predictions),
|
|
134
133
|
};
|
|
135
134
|
|
|
136
135
|
if (store.nSolutions >= maxSolutions) {
|
|
@@ -163,7 +162,7 @@ function doubleAssignmentPenalty(
|
|
|
163
162
|
let nbDoubleAssignment = 0;
|
|
164
163
|
for (const atomType in predictions) {
|
|
165
164
|
const nbSources = Object.keys(predictions[atomType]).length;
|
|
166
|
-
|
|
165
|
+
const assignments = new Set(partial[atomType]);
|
|
167
166
|
nbDoubleAssignment += nbSources - assignments.size;
|
|
168
167
|
}
|
|
169
168
|
return nbDoubleAssignment > 0 ? 2 * nbDoubleAssignment : 1;
|
|
@@ -22,8 +22,8 @@ export type SpectraDataFormatted =
|
|
|
22
22
|
export function formatData(
|
|
23
23
|
input: SpectraDataWithIds[] = [],
|
|
24
24
|
): SpectraDataFormatted[] {
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
const inputClone = JSON.parse(JSON.stringify(input)) as SpectraDataWithIds[];
|
|
26
|
+
const spectra: SpectraDataFormatted[] = [];
|
|
27
27
|
for (const spectraData of inputClone) {
|
|
28
28
|
const { id, info } = spectraData;
|
|
29
29
|
if (isSpectraData1D(spectraData)) {
|
|
@@ -43,12 +43,12 @@ export function formatData(
|
|
|
43
43
|
function rescaleIntegration(spectrum: SpectraData1DWithIds): NMRRangeWithIds[] {
|
|
44
44
|
if (spectrum.info.nucleus !== '1H') return spectrum.ranges;
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
const totalIntegration = spectrum.ranges.reduce(
|
|
47
47
|
(total, range) => (range.integration ? total + range.integration : total),
|
|
48
48
|
0,
|
|
49
49
|
);
|
|
50
50
|
|
|
51
|
-
for (
|
|
51
|
+
for (const range of spectrum.ranges) {
|
|
52
52
|
if (range.integration) {
|
|
53
53
|
range.integration *= 100 / totalIntegration;
|
|
54
54
|
if (range.signals) {
|
|
@@ -57,7 +57,7 @@ function rescaleIntegration(spectrum: SpectraData1DWithIds): NMRRangeWithIds[] {
|
|
|
57
57
|
signal.integration ? total + signal.integration : total,
|
|
58
58
|
0,
|
|
59
59
|
);
|
|
60
|
-
for (
|
|
60
|
+
for (const signal of range.signals) {
|
|
61
61
|
if (signal.integration) {
|
|
62
62
|
signal.integration *= range.integration / totalSignalIntegration;
|
|
63
63
|
} else {
|
package/src/assignment/utils/{getAssignment → generalAssignment}/getTargetsAndCorrelations.ts
RENAMED
|
@@ -12,11 +12,9 @@ export interface CorrelationWithIntegration
|
|
|
12
12
|
'link' | 'atomType' | 'label' | 'attachment' | 'protonsCount'
|
|
13
13
|
> {
|
|
14
14
|
integration: number;
|
|
15
|
-
indirectLinks:
|
|
16
|
-
}
|
|
17
|
-
export interface Targets {
|
|
18
|
-
[key: string]: CorrelationWithIntegration;
|
|
15
|
+
indirectLinks: Link[];
|
|
19
16
|
}
|
|
17
|
+
export type Targets = Record<string, CorrelationWithIntegration>;
|
|
20
18
|
export interface TargetsByAtomType {
|
|
21
19
|
H: Targets;
|
|
22
20
|
C: Targets;
|
|
@@ -40,7 +38,7 @@ export function getTargetsAndCorrelations(
|
|
|
40
38
|
tolerance,
|
|
41
39
|
});
|
|
42
40
|
|
|
43
|
-
|
|
41
|
+
const targets: any = {};
|
|
44
42
|
for (const correlation of correlations) {
|
|
45
43
|
if (correlation.pseudo) continue;
|
|
46
44
|
const { id: targetID, atomType } = correlation;
|
|
@@ -8,10 +8,7 @@ import { AtomTypes } from './buildAssignments';
|
|
|
8
8
|
* @param {*} justAssign
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
function getWorkFlow(
|
|
12
|
-
correlations: Values,
|
|
13
|
-
justAssign: Array<AtomTypes[]> = [],
|
|
14
|
-
) {
|
|
11
|
+
function getWorkFlow(correlations: Values, justAssign: AtomTypes[][] = []) {
|
|
15
12
|
const experimentTypes = extractExperimentType(correlations);
|
|
16
13
|
|
|
17
14
|
const { hasHSQC, types } = experimentTypes;
|
|
@@ -20,7 +17,7 @@ function getWorkFlow(
|
|
|
20
17
|
return { assignmentOrder: justAssign, experimentTypes };
|
|
21
18
|
}
|
|
22
19
|
|
|
23
|
-
const assignmentOrder:
|
|
20
|
+
const assignmentOrder: AtomTypes[][] = [];
|
|
24
21
|
|
|
25
22
|
if (hasHSQC) {
|
|
26
23
|
assignmentOrder.push(['C'], ['H']);
|
|
@@ -8,27 +8,27 @@ function groupCarbonTargetByIntegrationZone(
|
|
|
8
8
|
targets: Targets,
|
|
9
9
|
correlations: CorrelationWithIntegration[],
|
|
10
10
|
) {
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
const targetID = activeDomainOnTarget[0];
|
|
12
|
+
const { H: attachments = [] } = targets[targetID].attachment;
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
const targetByIntegral = [
|
|
15
15
|
{ targetIDs: [targetID], attachments: new Set<number>(attachments) },
|
|
16
16
|
];
|
|
17
17
|
|
|
18
18
|
for (let i = 1; i < activeDomainOnTarget.length; i++) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
const targetID = activeDomainOnTarget[i];
|
|
20
|
+
const target = targets[targetID];
|
|
21
|
+
const { H: attachments = [] } = target.attachment;
|
|
22
22
|
|
|
23
23
|
let alone = true;
|
|
24
|
-
for (
|
|
24
|
+
for (const group of targetByIntegral) {
|
|
25
25
|
const pertain = attachments.some((attachment: any) =>
|
|
26
26
|
group.attachments.has(attachment),
|
|
27
27
|
);
|
|
28
28
|
if (pertain) {
|
|
29
29
|
alone = false;
|
|
30
30
|
group.targetIDs.push(targetID);
|
|
31
|
-
for (
|
|
31
|
+
for (const attachment of attachments) {
|
|
32
32
|
group.attachments.add(attachment);
|
|
33
33
|
}
|
|
34
34
|
break;
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
import groupCarbonTargetByIntegrationZone from './groupCarbonTargetByIntegrationZone';
|
|
15
15
|
|
|
16
16
|
export interface PartialScoreOptions {
|
|
17
|
-
diaIDPeerPossibleAssignment:
|
|
17
|
+
diaIDPeerPossibleAssignment: Record<string, string[]>;
|
|
18
18
|
restrictionByCS: RestrictionByCS;
|
|
19
19
|
infoByAtomTypes: InfoByAtomType;
|
|
20
20
|
correlations: CorrelationWithIntegration[];
|
|
@@ -22,13 +22,9 @@ export interface PartialScoreOptions {
|
|
|
22
22
|
targets: TargetsByAtomType;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
[key: string]: string[];
|
|
27
|
-
}
|
|
25
|
+
type ObjectStringArray = Record<string, string[]>;
|
|
28
26
|
|
|
29
|
-
|
|
30
|
-
[key: string]: ObjectStringArray;
|
|
31
|
-
}
|
|
27
|
+
type ObjectObjectStringArray = Record<string, ObjectStringArray>;
|
|
32
28
|
|
|
33
29
|
export function partialScore(partial: Partial, props: PartialScoreOptions) {
|
|
34
30
|
const {
|
|
@@ -43,8 +39,8 @@ export function partialScore(partial: Partial, props: PartialScoreOptions) {
|
|
|
43
39
|
const { tolerance: toleranceCS, useChemicalShiftScore } = restrictionByCS;
|
|
44
40
|
let totalStarts = 0;
|
|
45
41
|
let totalPartial = 0;
|
|
46
|
-
|
|
47
|
-
|
|
42
|
+
const partialInverse: ObjectObjectStringArray = {};
|
|
43
|
+
const activeDomainOnPrediction: Record<string, number[]> = {};
|
|
48
44
|
const atomTypes = Object.keys(partial) as AtomTypes[];
|
|
49
45
|
for (const atomType of atomTypes) {
|
|
50
46
|
let countStars = 0;
|
|
@@ -89,11 +85,11 @@ export function partialScore(partial: Partial, props: PartialScoreOptions) {
|
|
|
89
85
|
|
|
90
86
|
const getPredictionByDiaID = getPrediction.bind({}, predictions);
|
|
91
87
|
// check the integration
|
|
92
|
-
const targetByIntegral: {
|
|
88
|
+
const targetByIntegral: Array<{
|
|
93
89
|
atomType: string;
|
|
94
90
|
targetIDs: string[];
|
|
95
91
|
integration: number;
|
|
96
|
-
}
|
|
92
|
+
}> = [];
|
|
97
93
|
|
|
98
94
|
for (const atomType in partial) {
|
|
99
95
|
if (atomType === 'C' && activeDomainOnTarget[atomType].length > 0) {
|
|
@@ -105,7 +101,7 @@ export function partialScore(partial: Partial, props: PartialScoreOptions) {
|
|
|
105
101
|
),
|
|
106
102
|
);
|
|
107
103
|
} else {
|
|
108
|
-
for (
|
|
104
|
+
for (const targetID of activeDomainOnTarget[atomType]) {
|
|
109
105
|
targetByIntegral.push({
|
|
110
106
|
atomType,
|
|
111
107
|
targetIDs: [targetID],
|
|
@@ -120,8 +116,8 @@ export function partialScore(partial: Partial, props: PartialScoreOptions) {
|
|
|
120
116
|
if (integration === undefined || isNaN(integration)) continue;
|
|
121
117
|
|
|
122
118
|
let total = 0;
|
|
123
|
-
for (
|
|
124
|
-
|
|
119
|
+
for (const targetID of group.targetIDs) {
|
|
120
|
+
const targetToSource = partialInverse[atomType][targetID];
|
|
125
121
|
for (const diaID of targetToSource) {
|
|
126
122
|
const { prediction, atomType: atomOfPrediction } =
|
|
127
123
|
getPredictionByDiaID(diaID);
|
|
@@ -146,10 +142,10 @@ export function partialScore(partial: Partial, props: PartialScoreOptions) {
|
|
|
146
142
|
const targetID = partialPeerAtomType[index];
|
|
147
143
|
if (targetID && targetID !== '*') {
|
|
148
144
|
count++;
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
145
|
+
const diaID = diaIDPeerPossibleAssignment[atomType][index];
|
|
146
|
+
const source = predictions[atomType][diaID];
|
|
147
|
+
const target = targetsPeerAtomType[targetID];
|
|
148
|
+
const error = toleranceCS[atomType];
|
|
153
149
|
// if (source.error) {
|
|
154
150
|
// error = Math.max(source.error, toleranceCS);
|
|
155
151
|
// }
|
|
@@ -183,7 +179,7 @@ export function partialScore(partial: Partial, props: PartialScoreOptions) {
|
|
|
183
179
|
let scoreOn2D = 0;
|
|
184
180
|
|
|
185
181
|
if (howManyActived(activeDomainOnTarget) > 1) {
|
|
186
|
-
|
|
182
|
+
const andConstrains: Record<string, number> = {};
|
|
187
183
|
let activeDomain: Array<{ index: number; atomType: AtomTypes }> = [];
|
|
188
184
|
|
|
189
185
|
for (const atomType of Object.keys(
|
|
@@ -204,20 +200,20 @@ export function partialScore(partial: Partial, props: PartialScoreOptions) {
|
|
|
204
200
|
predictions[atomTypeJ][
|
|
205
201
|
diaIDPeerPossibleAssignment[atomTypeJ][indexJ]
|
|
206
202
|
];
|
|
207
|
-
|
|
208
|
-
|
|
203
|
+
const pathLength = predictionI.pathLength[predictionJ.diaIDIndex];
|
|
204
|
+
const isPossible = pathLength < 5;
|
|
209
205
|
|
|
210
|
-
|
|
211
|
-
|
|
206
|
+
const partialI = partial[atomTypeI][indexI];
|
|
207
|
+
const partialJ = partial[atomTypeJ][indexJ];
|
|
212
208
|
|
|
213
209
|
if (!partialI || !partialJ) continue;
|
|
214
210
|
|
|
215
|
-
|
|
211
|
+
const keyOnTargertMap =
|
|
216
212
|
partialI > partialJ
|
|
217
213
|
? `${partialJ} ${partialI}`
|
|
218
214
|
: `${partialI} ${partialJ}`;
|
|
219
215
|
|
|
220
|
-
|
|
216
|
+
const areLinked = checkLinking(
|
|
221
217
|
{
|
|
222
218
|
from: {
|
|
223
219
|
targetID: partialI,
|
|
@@ -231,7 +227,7 @@ export function partialScore(partial: Partial, props: PartialScoreOptions) {
|
|
|
231
227
|
targets,
|
|
232
228
|
);
|
|
233
229
|
|
|
234
|
-
|
|
230
|
+
const partialScore2D = isPossible
|
|
235
231
|
? areLinked
|
|
236
232
|
? 1
|
|
237
233
|
: 0
|
|
@@ -246,7 +242,7 @@ export function partialScore(partial: Partial, props: PartialScoreOptions) {
|
|
|
246
242
|
}
|
|
247
243
|
|
|
248
244
|
let sumAnd = 0;
|
|
249
|
-
for (
|
|
245
|
+
for (const key in andConstrains) {
|
|
250
246
|
sumAnd += andConstrains[key];
|
|
251
247
|
}
|
|
252
248
|
|
|
@@ -277,8 +273,8 @@ function checkLinking(
|
|
|
277
273
|
) {
|
|
278
274
|
const { from, to } = partials;
|
|
279
275
|
if (from.targetID === to.targetID) return true;
|
|
280
|
-
|
|
281
|
-
|
|
276
|
+
const correlationI = correlations[from.atomType][from.targetID];
|
|
277
|
+
const correlationJ = correlations[to.atomType][to.targetID];
|
|
282
278
|
for (const linkJ of correlationJ.link) {
|
|
283
279
|
for (const link of correlationI.link) {
|
|
284
280
|
if (link.signal.id === linkJ.signal.id) return true;
|
package/src/assignment/utils/{buildAssignments.ts → oneDimensionalAssignment/buildAssignments.ts}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import TreeSet from 'ml-tree-set';
|
|
2
2
|
|
|
3
|
-
import { Targets, NMRSignal1DWithAtomsAndDiaIDs } from '
|
|
3
|
+
import { Targets, NMRSignal1DWithAtomsAndDiaIDs } from '../../get1HAssignments';
|
|
4
4
|
|
|
5
5
|
import { createMapPossibleAssignments } from './createMapPossibleAssignments';
|
|
6
6
|
import { exploreTreeRec } from './exploreTreeRec';
|
|
@@ -33,9 +33,7 @@ export interface Signals1DAssignment extends NMRSignal1DWithAtomsAndDiaIDs {
|
|
|
33
33
|
error?: number;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
export
|
|
37
|
-
[key: string]: Signals1DAssignment;
|
|
38
|
-
}
|
|
36
|
+
export type Predictions1Dassignments = Record<string, Signals1DAssignment>;
|
|
39
37
|
|
|
40
38
|
export interface StoreAssignments {
|
|
41
39
|
solutions: TreeSet;
|
|
@@ -65,10 +63,10 @@ export async function buildAssignments(props: BuildAssignmentsProps) {
|
|
|
65
63
|
nSolutions: 0,
|
|
66
64
|
};
|
|
67
65
|
|
|
68
|
-
|
|
66
|
+
const nSources = joinedSignals.length;
|
|
69
67
|
const predictions: Predictions1Dassignments = {};
|
|
70
68
|
|
|
71
|
-
for (
|
|
69
|
+
for (const prediction of joinedSignals) {
|
|
72
70
|
const diaID = prediction.diaIDs[0];
|
|
73
71
|
const index = prediction.atoms[0];
|
|
74
72
|
predictions[diaID] = {
|
|
@@ -91,7 +89,7 @@ export async function buildAssignments(props: BuildAssignmentsProps) {
|
|
|
91
89
|
|
|
92
90
|
const diaIDPeerPossibleAssignment = Object.keys(possibleAssignmentMap);
|
|
93
91
|
|
|
94
|
-
|
|
92
|
+
const partial = fillPartial(nSources);
|
|
95
93
|
|
|
96
94
|
store = {
|
|
97
95
|
solutions: new TreeSet(comparator),
|
|
@@ -129,7 +127,7 @@ export async function buildAssignments(props: BuildAssignmentsProps) {
|
|
|
129
127
|
const { assignment, score } = solution;
|
|
130
128
|
const currentAssignment = JSON.parse(JSON.stringify(targets));
|
|
131
129
|
for (let i = 0; i < assignment.length; i++) {
|
|
132
|
-
|
|
130
|
+
const range = currentAssignment[assignment[i]];
|
|
133
131
|
if (!range.diaIDs) range.diaIDs = [];
|
|
134
132
|
if (assignment[i]) range.diaIDs.push(diaIDPeerPossibleAssignment[i]);
|
|
135
133
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { MakeMandatory } from '
|
|
2
|
-
import type { Targets } from '
|
|
1
|
+
import { MakeMandatory } from '../../../utilities/MakeMandatory';
|
|
2
|
+
import type { Targets } from '../../get1HAssignments';
|
|
3
3
|
|
|
4
4
|
import type {
|
|
5
5
|
RestrictionByCS1D,
|
|
@@ -18,9 +18,7 @@ interface CreateMapPossibleAssignments {
|
|
|
18
18
|
useIntegrationRestriction: boolean;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
export
|
|
22
|
-
[key: string]: string[];
|
|
23
|
-
}
|
|
21
|
+
export type PossibleAssignmentMap = Record<string, string[]>;
|
|
24
22
|
export function createMapPossibleAssignments(
|
|
25
23
|
props: CreateMapPossibleAssignments,
|
|
26
24
|
) {
|
|
@@ -29,16 +27,16 @@ export function createMapPossibleAssignments(
|
|
|
29
27
|
|
|
30
28
|
const { tolerance: toleranceCS, chemicalShiftRestriction } = restrictionByCS;
|
|
31
29
|
|
|
32
|
-
|
|
30
|
+
const errorAbs = Math.abs(toleranceCS);
|
|
33
31
|
const expandMap: PossibleAssignmentMap = {};
|
|
34
32
|
for (const diaID in predictions) {
|
|
35
|
-
|
|
33
|
+
const prediction = predictions[diaID];
|
|
36
34
|
if (prediction.error) prediction.error = Math.abs(prediction.error);
|
|
37
35
|
expandMap[diaID] = [];
|
|
38
36
|
|
|
39
37
|
if (targets) {
|
|
40
38
|
for (const targetID in targets) {
|
|
41
|
-
|
|
39
|
+
const target = targets[targetID];
|
|
42
40
|
const { nbAtoms } = prediction;
|
|
43
41
|
const { integration } = target;
|
|
44
42
|
|
|
@@ -65,7 +63,9 @@ export function createMapPossibleAssignments(
|
|
|
65
63
|
? target.signals[0].delta
|
|
66
64
|
: (target.to + target.from) / 2;
|
|
67
65
|
|
|
68
|
-
|
|
66
|
+
const distAfterLimit = Math.abs(
|
|
67
|
+
prediction.delta - delta - errorAbs,
|
|
68
|
+
);
|
|
69
69
|
if (distAfterLimit < 4 * errorAbs) {
|
|
70
70
|
expandMap[diaID].push(targetID);
|
|
71
71
|
}
|
package/src/assignment/utils/{exploreTreeRec.ts → oneDimensionalAssignment/exploreTreeRec.ts}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Targets } from '
|
|
1
|
+
import type { Targets } from '../../get1HAssignments';
|
|
2
2
|
|
|
3
3
|
import type {
|
|
4
4
|
RestrictionByCS1D,
|
|
@@ -50,9 +50,9 @@ export function exploreTreeRec(
|
|
|
50
50
|
|
|
51
51
|
const diaID = diaIDPeerPossibleAssignment[currentIndex];
|
|
52
52
|
const possibleAssignments = possibleAssignmentMap[diaID];
|
|
53
|
-
for (
|
|
53
|
+
for (const targetID of possibleAssignments) {
|
|
54
54
|
partial[currentIndex] = targetID;
|
|
55
|
-
|
|
55
|
+
const score = partialScore(partial, {
|
|
56
56
|
useIntegrationRestriction,
|
|
57
57
|
diaIDPeerPossibleAssignment,
|
|
58
58
|
nbAllowedUnAssigned,
|
|
@@ -107,12 +107,11 @@ interface AddSolutionProps {
|
|
|
107
107
|
}
|
|
108
108
|
|
|
109
109
|
function addSolution(store: StoreAssignments, props: AddSolutionProps) {
|
|
110
|
-
|
|
111
|
-
score /= doubleAssignmentPenalty(partial, predictions);
|
|
110
|
+
const { score, maxSolutions, partial, predictions } = props;
|
|
112
111
|
store.nSolutions++;
|
|
113
|
-
|
|
112
|
+
const solution: SolutionAssignment = {
|
|
114
113
|
assignment: JSON.parse(JSON.stringify(partial)),
|
|
115
|
-
score,
|
|
114
|
+
score: score / doubleAssignmentPenalty(partial, predictions),
|
|
116
115
|
};
|
|
117
116
|
|
|
118
117
|
if (store.nSolutions >= maxSolutions) {
|
|
@@ -131,7 +130,7 @@ function doubleAssignmentPenalty(
|
|
|
131
130
|
predictions: Predictions1Dassignments,
|
|
132
131
|
) {
|
|
133
132
|
const nbSources = Object.keys(predictions).length;
|
|
134
|
-
|
|
135
|
-
|
|
133
|
+
const assignments = new Set(partial);
|
|
134
|
+
const nbDoubleAssignment = nbSources - assignments.size;
|
|
136
135
|
return nbDoubleAssignment > 0 ? 2 * nbDoubleAssignment : 1;
|
|
137
136
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Targets } from '
|
|
1
|
+
import { Targets } from '../../get1HAssignments';
|
|
2
2
|
|
|
3
3
|
import type {
|
|
4
4
|
Predictions1Dassignments,
|
|
@@ -32,11 +32,9 @@ export function partialScore(
|
|
|
32
32
|
} = options;
|
|
33
33
|
const { useChemicalShiftScore } = restrictionByCS;
|
|
34
34
|
let countStars = 0;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
} = {};
|
|
39
|
-
let activeDomainOnPrediction: number[] = [];
|
|
35
|
+
const totalPartial = partial.length;
|
|
36
|
+
const partialInverse: Record<string, string[]> = {};
|
|
37
|
+
const activeDomainOnPrediction: number[] = [];
|
|
40
38
|
|
|
41
39
|
for (let i = 0; i < partial.length; i++) {
|
|
42
40
|
const targetID = partial[i];
|
|
@@ -58,8 +56,8 @@ export function partialScore(
|
|
|
58
56
|
}
|
|
59
57
|
|
|
60
58
|
if (useIntegrationRestriction) {
|
|
61
|
-
for (
|
|
62
|
-
|
|
59
|
+
for (const targetID of activeDomainOnTarget) {
|
|
60
|
+
const targetToSource = partialInverse[targetID];
|
|
63
61
|
let total = 0;
|
|
64
62
|
for (const diaID of targetToSource) {
|
|
65
63
|
const prediction = predictions[diaID];
|
|
@@ -74,7 +72,7 @@ export function partialScore(
|
|
|
74
72
|
}
|
|
75
73
|
|
|
76
74
|
//chemical shift score
|
|
77
|
-
|
|
75
|
+
const chemicalShiftScore = useChemicalShiftScore
|
|
78
76
|
? chemicalShiftScoring(partial, options)
|
|
79
77
|
: 1;
|
|
80
78
|
|
|
@@ -96,9 +94,9 @@ function chemicalShiftScoring(
|
|
|
96
94
|
const targetID = partial[index];
|
|
97
95
|
if (targetID && targetID !== '*') {
|
|
98
96
|
count++;
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
97
|
+
const diaID = diaIDPeerPossibleAssignment[index];
|
|
98
|
+
const source = predictions[diaID];
|
|
99
|
+
const target = targets[targetID];
|
|
102
100
|
let error = tolerance;
|
|
103
101
|
if (source.error) {
|
|
104
102
|
error = Math.max(source.error, tolerance);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MultiplicityPatterns } from './MultiplicityPatterns';
|
|
2
2
|
|
|
3
|
-
const result:
|
|
3
|
+
const result: Record<string, number> = {};
|
|
4
4
|
for (const { value, multiplicity, names } of MultiplicityPatterns) {
|
|
5
5
|
if (multiplicity) result[value] = multiplicity - 1;
|
|
6
6
|
for (const name of names) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const degreeToRadians = Math.PI / 180;
|
|
@@ -1,19 +1,5 @@
|
|
|
1
|
-
export interface SolventImpurities {
|
|
2
|
-
[key: string]: Impurity;
|
|
3
|
-
}
|
|
4
|
-
|
|
5
|
-
export interface Impurity {
|
|
6
|
-
[key: string]: ImpuritySignal[];
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export interface ImpuritySignal {
|
|
10
|
-
proton: string;
|
|
11
|
-
coupling: number;
|
|
12
|
-
multiplicity: string;
|
|
13
|
-
shift: number;
|
|
14
|
-
}
|
|
15
1
|
/* eslint-disable camelcase */
|
|
16
|
-
|
|
2
|
+
const impuritiesContent = {
|
|
17
3
|
cdcl3: {
|
|
18
4
|
tms: [
|
|
19
5
|
{
|
|
@@ -3144,3 +3130,16 @@ export const impurities: SolventImpurities = {
|
|
|
3144
3130
|
],
|
|
3145
3131
|
},
|
|
3146
3132
|
};
|
|
3133
|
+
export type SolventImpurities = Record<Solvent, Impurity>;
|
|
3134
|
+
|
|
3135
|
+
export type Impurity = Record<string, ImpuritySignal[]>;
|
|
3136
|
+
|
|
3137
|
+
export type Solvent = keyof typeof impuritiesContent;
|
|
3138
|
+
|
|
3139
|
+
export interface ImpuritySignal {
|
|
3140
|
+
proton: string;
|
|
3141
|
+
coupling: number;
|
|
3142
|
+
multiplicity: string;
|
|
3143
|
+
shift: number;
|
|
3144
|
+
}
|
|
3145
|
+
export const impurities: SolventImpurities = impuritiesContent;
|
package/src/datum/Filters.ts
CHANGED
|
@@ -11,6 +11,8 @@ import * as signalProcessing from './data1d/filter1d/signalProcessing';
|
|
|
11
11
|
import * as zeroFilling from './data1d/filter1d/zeroFilling';
|
|
12
12
|
import * as shift2DX from './data2d/filter2d/shiftX';
|
|
13
13
|
import * as shift2DY from './data2d/filter2d/shiftY';
|
|
14
|
+
import * as fftDimension1 from './data2d/filter2d/fftDimension1';
|
|
15
|
+
import * as fftDimension2 from './data2d/filter2d/fftDimension2';
|
|
14
16
|
|
|
15
17
|
export type { ApodizationOptions } from './data1d/filter1d/apodization/apodization';
|
|
16
18
|
export type {
|
|
@@ -46,6 +48,8 @@ export const Filters: Record<
|
|
|
46
48
|
digitalFilter,
|
|
47
49
|
equallySpaced,
|
|
48
50
|
fft,
|
|
51
|
+
fftDimension1,
|
|
52
|
+
fftDimension2,
|
|
49
53
|
phaseCorrection,
|
|
50
54
|
shiftX,
|
|
51
55
|
zeroFilling,
|