nmr-cli Service

The nmr-cli container (nmr-converter) packages the nmr-load-save toolchain and related NMR processing utilities. NMRKit invokes it via docker exec for spectra parsing, format conversion, and structure-based prediction.

Docker image

RegistryImageTags
Docker Hubnfdi4chem/nmr-clidev-latest, latest

In docker-compose.yml the service is named nmr-load-save with container name nmr-converter.

Commands used by NMRKit

nmr-cli commandAPI endpointDescription
parse-spectraPOST /spectra/parse/url, POST /spectra/parse/fileParse Bruker, JCAMP-DX, zipped archives into NMRium JSON
parse-publication-stringPOST /spectra/parse/publication-stringReconstruct spectrum from ACS publication string
peaks-to-nmriumPOST /spectra/parse/peaksGenerate spectrum from a peak list
predictPOST /predict/, POST /predict/filePredict spectra via nmrdb.org or nmrshift
-u <url>GET /convert/spectraLegacy URL-based conversion

parse-spectra flags

FlagAPI parameterDescription
-uurlRemote URL to spectra file
-pfile / auto_processingFile path or enable FID → FT processing
-scapture_snapshotCapture spectra image snapshot
-dauto_detectionAutomatic range/zone detection
-rraw_dataInclude raw data in output

Manual testing

Build and run the container locally:

bash
docker pull nfdi4chem/nmr-cli:dev-latest
docker run -it --name nmr-converter nfdi4chem/nmr-cli:dev-latest bash

Inside the container:

bash
nmr-cli parse-spectra -u https://cheminfo.github.io/bruker-data-test/data/zipped/aspirin-1h.zip
nmr-cli predict -s "<mol block>" --engine nmrshift --spectra proton

Shared volume

The /shared volume is mounted in both nmrkit-api and nmr-converter so uploaded MOL files can be passed to nmr-cli predict without docker cp.

Timeouts

OperationTimeout
Spectra parsing120 s
nmrshift prediction120 s
nmrdb.org prediction300 s
  • #56 — NodeJS Docker image with nmr-load-save
  • #57 — Docker connection between nmrkit and nmr-load-save