Class NMRCalculator

  • All Implemented Interfaces:
    chemaxon.calculator.Calculator<Molecule,​NMRSpectrum>, chemaxon.license.Licensable

    @PublicAPI
    public class NMRCalculator
    extends chemaxon.calculator.ProgressableCalculator<Molecule,​NMRSpectrum>
    Class for NMR spectrum calculation. API example for 1H NMR:
            // input molecule for 1H NMR prediction
            Molecule mol = MolImporter.importMol("c1c(Cl)cccc1C=O");
            // instantiate builder
            NMRCalculator.Builder builder = new NMRCalculator.Builder();
            // settings
            builder.setFrequency(400.0);
            builder.setUnit(NMRSpectrum.Unit.Hz);
            builder.setNucleus(NMRSpectrum.Nucleus.H1);
            builder.setCoupled(true);
            // instantiate calculator
            NMRCalculator nmrCalc = builder.build();
            // spectrum calculation
            NMRSpectrum spectrum = nmrCalc.calculate(mol);
            // explicit hydrogen mode
            spectrum.setImplicitHydrogenMode(false);
            // multiplets of the NMR spectrum
            Multiplet[] multiplets = spectrum.getMultiplets();
            for (Multiplet m: multiplets) {
                System.out.println(m.getShift()+"\t"+m.getNetIntensity());
                    for (int i=0; i < m.getNumberOfLines(); i++) {
                        System.out.println(m.getPosition(i)+"\t"+m.getIntensity(i));
                    }
                }
            // exporting the NMR spectrum into JCAMP-DX format
            String jcamp = NMRExporter.exportToJcampDX(spectrum);
            // exporting the NMR spectrum into Molecule with an NMR property
            String propertyName = "1H NMR shifts";
            Molecule molWithNMR = NMRExporter.exportToMol(spectrum, propertyName);
    
     
    API example for 1H NMR:
            // input molecule for 13C NMR prediction
            Molecule mol = MolImporter.importMol("c1c(Cl)cccc1C=O");
            // instantiate NMRCalculator, the default settings are used
            NMRCalculator nmrCalc = new NMRCalculator.Builder().build();
            // spectrum calculation
            NMRSpectrum spectrum = nmrCalc.calculate(mol);
            // chemical shifts with atom indexes
            Shift[] shifts = spectrum.getShifts();
            for (Shift s: shifts) {
                System.out.println(s.getAtomIndex()+"\t"+s.getShift());
            }
            // sampling the NMR spectrum and integrated NMR spectrum functions 
            double domainMin = spectrum.getDomainMin();
            double domainMax = spectrum.getDomainMax();
            double resolution = 0.1;
            for (double x = domainMin; x <= domainMax; x += resolution) {
                System.out.println(x+"\t"+spectrum.getValueAt(x)+"\t"+spectrum.getIntegralValueAt(x));
            }
            // or exporting the x and y values of the NMR spectrum function directly
            double[][] xy = NMRExporter.export(spectrum, domainMin, domainMax, resolution);
     
    Since:
    5.8