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
|
@@ -21,25 +21,28 @@ export function splitSpinSystem(
|
|
|
21
21
|
options: SplitSpinSystemOptions = {},
|
|
22
22
|
) {
|
|
23
23
|
const spinSystem = ensureSpinSystemProps(spinSystemInput);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
const { chemicalShifts, couplingConstants, connectivity } = spinSystem;
|
|
25
|
+
const { frequency = 400, maxClusterSize = 8 } = options;
|
|
26
|
+
const betas = calculateBetas(chemicalShifts, couplingConstants, frequency);
|
|
27
|
+
const initClusters = agnes(betas, {
|
|
28
|
+
method: 'single',
|
|
29
|
+
isDistanceMatrix: true,
|
|
30
|
+
});
|
|
31
|
+
const clusterList: Int16Array[] = [];
|
|
32
|
+
const nSpins = chemicalShifts.length;
|
|
30
33
|
splitCluster(initClusters, clusterList, {
|
|
31
34
|
maxClusterSize,
|
|
32
35
|
force: false,
|
|
33
36
|
nSpins,
|
|
34
37
|
connectivity,
|
|
35
38
|
});
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
+
const mergedClusters = mergeClusters(clusterList, maxClusterSize);
|
|
40
|
+
const nClusters = mergedClusters.length;
|
|
41
|
+
const clusters = new Array(nClusters);
|
|
39
42
|
for (let j = 0; j < nClusters; j++) {
|
|
40
43
|
clusters[j] = [];
|
|
41
44
|
for (let i = 0; i < nSpins; i++) {
|
|
42
|
-
|
|
45
|
+
const element = mergedClusters[j][i];
|
|
43
46
|
if (element === 0) continue;
|
|
44
47
|
clusters[j].push(element < 0 ? -(i + 1) : i);
|
|
45
48
|
}
|
|
@@ -57,16 +60,16 @@ interface SplitClusterOptions {
|
|
|
57
60
|
|
|
58
61
|
function splitCluster(
|
|
59
62
|
cluster: Cluster,
|
|
60
|
-
clusterList:
|
|
63
|
+
clusterList: Int16Array[],
|
|
61
64
|
options: SplitClusterOptions,
|
|
62
65
|
) {
|
|
63
|
-
|
|
66
|
+
const { maxClusterSize, force, nSpins, connectivity } = options;
|
|
64
67
|
if (!force && cluster.size <= maxClusterSize) {
|
|
65
68
|
clusterList.push(getMembers(cluster.indices(), nSpins));
|
|
66
69
|
} else {
|
|
67
|
-
for (
|
|
70
|
+
for (const child of cluster.children) {
|
|
68
71
|
if (child.size <= maxClusterSize) {
|
|
69
|
-
|
|
72
|
+
const members = getMembers(child.indices(), nSpins);
|
|
70
73
|
// Add the neighbors that shares at least 1 coupling with the given cluster
|
|
71
74
|
let count = 0;
|
|
72
75
|
for (let i = 0; i < nSpins; i++) {
|
|
@@ -111,15 +114,15 @@ function calculateBetas(
|
|
|
111
114
|
couplingConstants: Matrix,
|
|
112
115
|
frequency: number,
|
|
113
116
|
) {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
+
const nRows = couplingConstants.rows;
|
|
118
|
+
const nColumns = couplingConstants.columns;
|
|
119
|
+
const betas = Matrix.zeros(nRows, nRows);
|
|
117
120
|
// Before clustering, we must add hidden couplingConstants, we could use molecular information if available
|
|
118
121
|
for (let i = 0; i < nRows; i++) {
|
|
119
122
|
for (let j = i; j < nColumns; j++) {
|
|
120
|
-
|
|
123
|
+
const element = couplingConstants.get(i, j);
|
|
121
124
|
if (chemicalShifts[i] - chemicalShifts[j] !== 0) {
|
|
122
|
-
|
|
125
|
+
const value =
|
|
123
126
|
1 -
|
|
124
127
|
Math.abs(
|
|
125
128
|
element / ((chemicalShifts[i] - chemicalShifts[j]) * frequency),
|
|
@@ -135,10 +138,10 @@ function calculateBetas(
|
|
|
135
138
|
return betas.to2DArray();
|
|
136
139
|
}
|
|
137
140
|
|
|
138
|
-
function mergeClusters(list:
|
|
141
|
+
function mergeClusters(list: Int16Array[], maxClusterSize: number) {
|
|
139
142
|
for (let i = list.length - 1; i >= 0; i--) {
|
|
140
|
-
|
|
141
|
-
|
|
143
|
+
const clusterA = list[i];
|
|
144
|
+
const nElements = clusterA.length;
|
|
142
145
|
let index = 0;
|
|
143
146
|
|
|
144
147
|
// Is it a candidate to be merged?
|
|
@@ -146,7 +149,7 @@ function mergeClusters(list: Array<Int16Array>, maxClusterSize: number) {
|
|
|
146
149
|
if (index >= nElements) continue;
|
|
147
150
|
|
|
148
151
|
for (let j = list.length - 1; j >= i + 1; j--) {
|
|
149
|
-
|
|
152
|
+
const clusterB = list[j];
|
|
150
153
|
// Do they have common elements?
|
|
151
154
|
let count = 0;
|
|
152
155
|
let common = 0;
|
|
@@ -172,8 +175,8 @@ function mergeClusters(list: Array<Int16Array>, maxClusterSize: number) {
|
|
|
172
175
|
}
|
|
173
176
|
|
|
174
177
|
function getMembers(cluster: number[], nSpins: number) {
|
|
175
|
-
|
|
176
|
-
for (
|
|
178
|
+
const members = new Int16Array(nSpins);
|
|
179
|
+
for (const e of cluster) {
|
|
177
180
|
members[e] = 1;
|
|
178
181
|
}
|
|
179
182
|
return members;
|
|
@@ -7,16 +7,16 @@ import { Jcoupling } from '../Jcoupling';
|
|
|
7
7
|
* A two-stage approach to automatic determination of 1H NMR coupling constants
|
|
8
8
|
*/
|
|
9
9
|
const patterns = ['s', 'd', 't', 'q', 'quint', 'h', 'sept', 'o', 'n'];
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
const symRatio = 1.5;
|
|
11
|
+
const maxErrorIter1 = 2.5; // Hz
|
|
12
|
+
const maxErrorIter2 = 1; // Hz
|
|
13
13
|
|
|
14
14
|
export interface JAxisKeys {
|
|
15
15
|
[key: string]: string;
|
|
16
16
|
jAxis: string;
|
|
17
17
|
intensity: string;
|
|
18
18
|
}
|
|
19
|
-
|
|
19
|
+
const jAxisKeys: JAxisKeys = { jAxis: 'x', intensity: 'intensity' };
|
|
20
20
|
|
|
21
21
|
interface GetRanges {
|
|
22
22
|
values: number[][];
|
|
@@ -96,7 +96,7 @@ export default {
|
|
|
96
96
|
inputSignal: SignalFlexiblePeaks,
|
|
97
97
|
options: OpitonsCompilePatter = {},
|
|
98
98
|
) => {
|
|
99
|
-
|
|
99
|
+
const { jAxisKey = jAxisKeys } = options;
|
|
100
100
|
|
|
101
101
|
// checkForPeaks(inputSignal);
|
|
102
102
|
|
|
@@ -126,7 +126,7 @@ export default {
|
|
|
126
126
|
// Loop over the possible number of coupling contributing to the multiplet
|
|
127
127
|
for (let n = 0; n < 9; n++) {
|
|
128
128
|
// 1.2 Normalize. It makes a deep copy of the peaks before to modify them.
|
|
129
|
-
|
|
129
|
+
const peaks = normalize(signal, n);
|
|
130
130
|
let validPattern = false; // It will change to true, when we find the good patter
|
|
131
131
|
// Lets check if the signal could be a singulet.
|
|
132
132
|
if (peaks.length === 1 && n === 0) {
|
|
@@ -135,7 +135,7 @@ export default {
|
|
|
135
135
|
continue;
|
|
136
136
|
}
|
|
137
137
|
// 1.3 Establish a range for the Heights Hi [peaks.intensity*0.85,peaks.intensity*1.15];
|
|
138
|
-
|
|
138
|
+
const ranges = getRanges(peaks);
|
|
139
139
|
n2 = Math.pow(2, n);
|
|
140
140
|
|
|
141
141
|
// 1.4 Find a combination of integer heights Hi, one from each Si, that sums to 2^n.
|
|
@@ -148,7 +148,7 @@ export default {
|
|
|
148
148
|
) {
|
|
149
149
|
// 2.1 Number the components of the multiplet consecutively from 1 to 2n,
|
|
150
150
|
// starting at peak 1
|
|
151
|
-
|
|
151
|
+
const numbering = new Array(heights.length);
|
|
152
152
|
k = 1;
|
|
153
153
|
for (let i = 0; i < heights.length; i++) {
|
|
154
154
|
numbering[i] = new Array(heights[i]);
|
|
@@ -202,7 +202,7 @@ export default {
|
|
|
202
202
|
}
|
|
203
203
|
}
|
|
204
204
|
// Calculate the ideal patter by using the extracted j-couplings
|
|
205
|
-
|
|
205
|
+
const pattern = idealPattern(jCouplings);
|
|
206
206
|
// Compare the ideal pattern with the proposed intensities.
|
|
207
207
|
// All the intensities have to match to accept the multiplet
|
|
208
208
|
validPattern = true;
|
|
@@ -219,7 +219,7 @@ export default {
|
|
|
219
219
|
}
|
|
220
220
|
}
|
|
221
221
|
// Before to return, change the units of peaksComp from Hz to PPM again
|
|
222
|
-
for (
|
|
222
|
+
for (const peakComp of signal.peaksComp) {
|
|
223
223
|
peakComp.x /= signal.observe;
|
|
224
224
|
peakComp.width *= signal.observe;
|
|
225
225
|
}
|
|
@@ -235,8 +235,8 @@ export default {
|
|
|
235
235
|
*/
|
|
236
236
|
function updateSignal(signal: SignalInternMandatory, jCouplings: number[]) {
|
|
237
237
|
// Update the limits of the signal
|
|
238
|
-
|
|
239
|
-
|
|
238
|
+
const peaks = signal.peaksComp; // Always in Hz
|
|
239
|
+
const nbPeaks = peaks.length;
|
|
240
240
|
signal.startX = peaks[0].x / signal.observe - peaks[0].width;
|
|
241
241
|
signal.stopX =
|
|
242
242
|
peaks[nbPeaks - 1].x / signal.observe + peaks[nbPeaks - 1].width;
|
|
@@ -257,10 +257,10 @@ function updateSignal(signal: SignalInternMandatory, jCouplings: number[]) {
|
|
|
257
257
|
* @private
|
|
258
258
|
*/
|
|
259
259
|
function abstractPattern(signal: SignalInternMandatory, jCouplings: number[]) {
|
|
260
|
-
|
|
260
|
+
const tol = 0.05;
|
|
261
261
|
let pattern = '';
|
|
262
262
|
let cont = 1;
|
|
263
|
-
|
|
263
|
+
const newNmrJs: Jcoupling[] = [];
|
|
264
264
|
|
|
265
265
|
if (jCouplings && jCouplings.length > 0) {
|
|
266
266
|
jCouplings.sort((a, b) => {
|
|
@@ -279,7 +279,7 @@ function abstractPattern(signal: SignalInternMandatory, jCouplings: number[]) {
|
|
|
279
279
|
cont = 1;
|
|
280
280
|
}
|
|
281
281
|
}
|
|
282
|
-
|
|
282
|
+
const index = jCouplings.length - 1;
|
|
283
283
|
newNmrJs.push({
|
|
284
284
|
coupling: Math.abs(jCouplings[index]),
|
|
285
285
|
multiplicity: patterns[cont],
|
|
@@ -303,8 +303,8 @@ function abstractPattern(signal: SignalInternMandatory, jCouplings: number[]) {
|
|
|
303
303
|
* @private
|
|
304
304
|
*/
|
|
305
305
|
function idealPattern(jCouplings: number[]) {
|
|
306
|
-
|
|
307
|
-
|
|
306
|
+
const hsum = Math.pow(2, jCouplings.length);
|
|
307
|
+
const pattern = [{ x: 0, intensity: hsum }];
|
|
308
308
|
// To split the initial height
|
|
309
309
|
for (const jc of jCouplings) {
|
|
310
310
|
for (let j = pattern.length - 1; j >= 0; j--) {
|
|
@@ -337,8 +337,8 @@ function idealPattern(jCouplings: number[]) {
|
|
|
337
337
|
* @private
|
|
338
338
|
*/
|
|
339
339
|
function getNextCombination(ranges: GetRanges, value: number) {
|
|
340
|
-
|
|
341
|
-
|
|
340
|
+
const half = Math.ceil(ranges.values.length * 0.5);
|
|
341
|
+
const lng = ranges.values.length;
|
|
342
342
|
let sum = 0;
|
|
343
343
|
let ok;
|
|
344
344
|
while (sum !== value) {
|
|
@@ -375,7 +375,7 @@ function getNextCombination(ranges: GetRanges, value: number) {
|
|
|
375
375
|
}
|
|
376
376
|
// If the sum is equal to the expected value, fill the array to return
|
|
377
377
|
if (sum === value) {
|
|
378
|
-
|
|
378
|
+
const heights = new Array(lng);
|
|
379
379
|
for (let i = 0; i < half; i++) {
|
|
380
380
|
heights[i] = ranges.values[i][ranges.currentIndex[i]];
|
|
381
381
|
heights[lng - i - 1] = ranges.values[i][ranges.currentIndex[i]];
|
|
@@ -393,8 +393,8 @@ function getNextCombination(ranges: GetRanges, value: number) {
|
|
|
393
393
|
* @private
|
|
394
394
|
*/
|
|
395
395
|
function getRanges(peaks: Peak1DIntern[]): GetRanges {
|
|
396
|
-
|
|
397
|
-
|
|
396
|
+
const ranges: number[][] = new Array(peaks.length);
|
|
397
|
+
const currentIndex: number[] = new Array(peaks.length);
|
|
398
398
|
let min, max;
|
|
399
399
|
ranges[0] = [1];
|
|
400
400
|
ranges[peaks.length - 1] = [1];
|
|
@@ -428,20 +428,20 @@ function symmetrizeChoiseBest(
|
|
|
428
428
|
jAxisKey: JAxisKeys;
|
|
429
429
|
},
|
|
430
430
|
): SignalIntern {
|
|
431
|
-
|
|
431
|
+
const { maxError, iteration, jAxisKey = jAxisKeys } = options;
|
|
432
432
|
//make a clone of signal
|
|
433
|
-
|
|
433
|
+
const newSignal1 = symmetrize(signal, maxError, iteration, jAxisKey);
|
|
434
434
|
|
|
435
435
|
if (!newSignal1.peaksComp) {
|
|
436
436
|
throw new Error('internal peaksComp was not created');
|
|
437
437
|
}
|
|
438
438
|
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
439
|
+
const tmpPeaks = newSignal1.peaksComp;
|
|
440
|
+
const tmpMask = newSignal1.mask;
|
|
441
|
+
const cs = signal.delta;
|
|
442
442
|
signal.delta =
|
|
443
443
|
(signal.peaks[0].x + signal.peaks[signal.peaks.length - 1].x) / 2;
|
|
444
|
-
|
|
444
|
+
const newSignal2 = symmetrize(signal, maxError, iteration, jAxisKey);
|
|
445
445
|
|
|
446
446
|
if (!newSignal2.peaksComp) {
|
|
447
447
|
throw new Error('internal peaksComp was not created');
|
|
@@ -471,15 +471,15 @@ function symmetrize(
|
|
|
471
471
|
iteration: number,
|
|
472
472
|
key: JAxisKeys,
|
|
473
473
|
): SignalIntern {
|
|
474
|
-
|
|
474
|
+
const { jAxis, intensity } = key;
|
|
475
475
|
|
|
476
476
|
const newSignal = JSON.parse(JSON.stringify(signalInput));
|
|
477
477
|
// Before to symmetrize we need to keep only the peaks that possibly conforms the multiplete
|
|
478
478
|
let max, min, avg, ratio, avgWidth;
|
|
479
|
-
|
|
479
|
+
const peaks: Peak1DIntern[] = new Array(newSignal.peaks.length);
|
|
480
480
|
// Make a deep copy of the peaks and convert PPM ot HZ
|
|
481
481
|
for (let i = 0; i < peaks.length; i++) {
|
|
482
|
-
|
|
482
|
+
const peak = newSignal.peaks[i];
|
|
483
483
|
peaks[i] = {
|
|
484
484
|
x: peak[jAxis] * newSignal.observe,
|
|
485
485
|
intensity: peak[intensity],
|
|
@@ -500,8 +500,8 @@ function symmetrize(
|
|
|
500
500
|
}
|
|
501
501
|
}
|
|
502
502
|
newSignal.peaksComp = peaks;
|
|
503
|
-
|
|
504
|
-
|
|
503
|
+
const nbPeaks = peaks.length;
|
|
504
|
+
const mask = new Array(nbPeaks);
|
|
505
505
|
newSignal.mask = mask;
|
|
506
506
|
let left = 0;
|
|
507
507
|
let right = peaks.length - 1;
|
|
@@ -537,8 +537,8 @@ function symmetrize(
|
|
|
537
537
|
left--;
|
|
538
538
|
}
|
|
539
539
|
} else {
|
|
540
|
-
|
|
541
|
-
|
|
540
|
+
const diffL = Math.abs(peaks[left].x - cs);
|
|
541
|
+
const diffR = Math.abs(peaks[right].x - cs);
|
|
542
542
|
|
|
543
543
|
if (Math.abs(diffL - diffR) < maxError) {
|
|
544
544
|
avg = Math.min(peaks[left].intensity, peaks[right].intensity);
|
|
@@ -654,10 +654,10 @@ function error(value: number) {
|
|
|
654
654
|
*/
|
|
655
655
|
function normalize(signal: SignalInternMandatory, n: number) {
|
|
656
656
|
// Perhaps this is slow
|
|
657
|
-
|
|
657
|
+
const peaks: Peak1DIntern[] = JSON.parse(JSON.stringify(signal.peaksComp));
|
|
658
658
|
let norm = 0;
|
|
659
659
|
let norm2 = 0;
|
|
660
|
-
for (
|
|
660
|
+
for (const peak of peaks) {
|
|
661
661
|
norm += peak.intensity;
|
|
662
662
|
}
|
|
663
663
|
norm = Math.pow(2, n) / norm;
|
|
@@ -704,7 +704,7 @@ function chemicalShift(peaks: Peak1DIntern[], mask: boolean[] = []) {
|
|
|
704
704
|
}
|
|
705
705
|
}
|
|
706
706
|
} else {
|
|
707
|
-
for (
|
|
707
|
+
for (const peak of peaks) {
|
|
708
708
|
area = getArea(peak);
|
|
709
709
|
sum += area;
|
|
710
710
|
cs += area * peak.x;
|
package/src/types/Integrals.ts
CHANGED
package/src/types/Peaks/Peaks.ts
CHANGED
package/src/types/Zones/Zone.ts
CHANGED
package/src/types/Zones/Zones.ts
CHANGED
|
@@ -21,7 +21,7 @@ export function resurrectRange(part: string, options: any = {}) {
|
|
|
21
21
|
const from = Number(beforeMatch.groups.from);
|
|
22
22
|
const to = isARange ? Number(beforeMatch.groups.to) : from;
|
|
23
23
|
const insideParts = split.inside.split(/ *, */);
|
|
24
|
-
|
|
24
|
+
const signal: NMRSignal1D = { delta: NaN, js: [] };
|
|
25
25
|
let range: NMRRange = { from, to, signals: [signal] };
|
|
26
26
|
const integrationParts = insideParts.filter((part: any) =>
|
|
27
27
|
part.match(/^[0-9]+\s*H$/),
|
|
@@ -106,9 +106,9 @@ export function xyAutoPeaksPicking(
|
|
|
106
106
|
direction = 'positive',
|
|
107
107
|
} = options;
|
|
108
108
|
|
|
109
|
-
|
|
109
|
+
const pointsPerHz = 1 / frequency / (data.x[1] - data.x[0]);
|
|
110
110
|
// we can consider a peak with of 0.5 Hz for the windowSize
|
|
111
|
-
|
|
111
|
+
const ws = Math.max(Math.round(pointsPerHz / 2), 5);
|
|
112
112
|
|
|
113
113
|
const { windowSize = ws - (ws % 2) + 1, polynomial = 3 } = sgOptions;
|
|
114
114
|
|
|
@@ -134,7 +134,7 @@ export function xyAutoPeaksPicking(
|
|
|
134
134
|
|
|
135
135
|
const cutOff = getCutOff(data.y, { noiseLevel, useSanPlot, thresholdFactor });
|
|
136
136
|
|
|
137
|
-
|
|
137
|
+
const getPeakOptions: GetPeakListOptions = {
|
|
138
138
|
shape,
|
|
139
139
|
frequency,
|
|
140
140
|
broadWidth,
|
package/src/xyz/quadrature.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { NmrData2D, DoubleArray } from 'cheminfo-types';
|
|
2
|
-
import {
|
|
2
|
+
import { xMultiply } from 'ml-spectra-processing';
|
|
3
3
|
|
|
4
4
|
import { checkData2DFid, Data2DFidComplete } from '../utilities/checkData2DFid';
|
|
5
5
|
|
|
@@ -8,13 +8,11 @@ export function quadrature(data: NmrData2D, options: { fnMode: string }) {
|
|
|
8
8
|
|
|
9
9
|
const { fnMode } = options;
|
|
10
10
|
|
|
11
|
-
switch (fnMode) {
|
|
11
|
+
switch (fnMode.toLowerCase()) {
|
|
12
12
|
case 'ttpi':
|
|
13
13
|
return ttpiQuadrature(data);
|
|
14
14
|
case 'states':
|
|
15
15
|
return shrQuadrature(data);
|
|
16
|
-
case 'echo':
|
|
17
|
-
return echoQuadrature(data);
|
|
18
16
|
default:
|
|
19
17
|
return {
|
|
20
18
|
re: data.re.z,
|
|
@@ -23,29 +21,6 @@ export function quadrature(data: NmrData2D, options: { fnMode: string }) {
|
|
|
23
21
|
}
|
|
24
22
|
}
|
|
25
23
|
|
|
26
|
-
function echoQuadrature(data: Data2DFidComplete) {
|
|
27
|
-
const {
|
|
28
|
-
re: { z: reMatrix },
|
|
29
|
-
im: { z: imMatrix },
|
|
30
|
-
} = data;
|
|
31
|
-
|
|
32
|
-
const newRe: DoubleArray[] = [];
|
|
33
|
-
const newIm: DoubleArray[] = [];
|
|
34
|
-
for (let i = 0; i < reMatrix.length; i += 2) {
|
|
35
|
-
let reCosine = reMatrix[i];
|
|
36
|
-
let imCosine = imMatrix[i];
|
|
37
|
-
let reSine = reMatrix[i + 1];
|
|
38
|
-
let imSine = imMatrix[i + 1];
|
|
39
|
-
|
|
40
|
-
newRe.push(xSubtract(xMultiply(imSine, -1), imCosine));
|
|
41
|
-
newRe.push(xSubtract(reSine, reCosine));
|
|
42
|
-
newIm.push(xAdd(reSine, reCosine));
|
|
43
|
-
newIm.push(xSubtract(imSine, imCosine));
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
return { re: newRe, im: newIm };
|
|
47
|
-
}
|
|
48
|
-
|
|
49
24
|
function shrQuadrature(data: Data2DFidComplete) {
|
|
50
25
|
const { re, im } = data;
|
|
51
26
|
return { re: re.z, im: im.z };
|
|
@@ -4,9 +4,9 @@ export function digitalFilter(
|
|
|
4
4
|
data: DataReIm,
|
|
5
5
|
options: { digitalFilterValue: number },
|
|
6
6
|
) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
const { digitalFilterValue = 0 } = options;
|
|
8
|
+
const re = new Float64Array(data.re);
|
|
9
|
+
const im = new Float64Array(data.im);
|
|
10
10
|
|
|
11
11
|
let pointsToShift = Math.floor(digitalFilterValue);
|
|
12
12
|
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
import { DoubleArray } from 'cheminfo-types';
|
|
2
2
|
import Matrix from 'ml-matrix';
|
|
3
|
-
import {
|
|
4
|
-
reimAutoPhaseCorrection,
|
|
5
|
-
reimFFT,
|
|
6
|
-
reimPhaseCorrection,
|
|
7
|
-
} from 'ml-spectra-processing';
|
|
3
|
+
import { reimFFT, reimPhaseCorrection } from 'ml-spectra-processing';
|
|
8
4
|
|
|
9
5
|
import {
|
|
10
6
|
apodization,
|
|
@@ -31,7 +27,7 @@ export interface DirectDimensionOptions {
|
|
|
31
27
|
|
|
32
28
|
export function fftDirectDimension(
|
|
33
29
|
data: { re: DoubleArray[]; im: DoubleArray[] },
|
|
34
|
-
options: DirectDimensionOptions,
|
|
30
|
+
options: DirectDimensionOptions = {},
|
|
35
31
|
) {
|
|
36
32
|
const { re: reData, im: imData } = data;
|
|
37
33
|
const nbRows = reData.length;
|
|
@@ -46,12 +42,8 @@ export function fftDirectDimension(
|
|
|
46
42
|
const reFFT = new Matrix(nbRows, nbPointsF2);
|
|
47
43
|
const imFFT = new Matrix(nbRows, nbPointsF2);
|
|
48
44
|
|
|
49
|
-
const { apodization: apodizationF2 } = options;
|
|
50
|
-
|
|
51
|
-
ph0: ph0F2,
|
|
52
|
-
ph1: ph1F2,
|
|
53
|
-
mode: pcModeF2 = 'no',
|
|
54
|
-
} = options?.phaseCorrection || {};
|
|
45
|
+
const { apodization: apodizationF2, phaseCorrection = {} } = options;
|
|
46
|
+
const { ph0: ph0F2, ph1: ph1F2, mode: pcModeF2 = 'no' } = phaseCorrection;
|
|
55
47
|
|
|
56
48
|
for (let i = 0; i < nbRows; i++) {
|
|
57
49
|
const newData = digitalFilter(
|
|
@@ -78,17 +70,6 @@ export function fftDirectDimension(
|
|
|
78
70
|
if (dfResidual > 0) {
|
|
79
71
|
Object.assign(newData, reimPhaseCorrection(newData, 0, -dfResidual));
|
|
80
72
|
}
|
|
81
|
-
|
|
82
|
-
if (
|
|
83
|
-
i === 0 &&
|
|
84
|
-
pcModeF2 === 'pk' &&
|
|
85
|
-
ph0F2 === undefined &&
|
|
86
|
-
ph1F2 === undefined
|
|
87
|
-
) {
|
|
88
|
-
const phased = reimAutoPhaseCorrection(newData, { magnitudeMode: false });
|
|
89
|
-
ph0F2 = phased.ph0;
|
|
90
|
-
ph1F2 = phased.ph1;
|
|
91
|
-
}
|
|
92
73
|
if (pcModeF2 === 'pk' && ph0F2 !== undefined && ph1F2 !== undefined) {
|
|
93
74
|
Object.assign(
|
|
94
75
|
newData,
|