Full 1D NMR analysis of one spectrum file: processing, peaks, integrals,
multiplets, the publication NMR string, and, with `smiles`, structure
verification in the same call.
With `smiles`, pass `hrms` too (e.g. {"formula": "C9H8O4", "mz": 181.0495,
"adduct": "[M+H]+"}) and `verification` checks the HRMS formula and mass
(within `hrms_ppm_tolerance` ppm, default 10), the proton count from the
spectrum's integrals (1H) or the carbon line count (13C), and gives one
answer in `verification.verdict_combined` (see covnmr_verify).
Absorbs three retired tools:
* covnmr_format -> `output_format="nmr_string"` (or "acs").
* covnmr_export -> `output_format` "peaks_csv" (alias "csv"), "spectrum_csv",
"jcamp" or "nmredata" (pass `smiles` and `compound_name` for NMReData).
The file comes back INLINE as `content` with `filename` and `mime`;
nothing is written on the server. `content_truncated` says whether it was
capped at `max_content_chars` (2,000,000); curve formats are decimated to
fit rather than cut (`curve_reduced_to_fit`).
* covnmr_audit_report -> `audit=true` (and `operator`): adds `audit_record`
with input and output hashes taken over the complete output. The record
names your file: `display_name` if you give one, else the file name in
the URL you sent.
`output_format="asm"` returns an Allotrope-style ASM JSON document inline.
It is EXPERIMENTAL and UNVALIDATED: no NMR ASM schema was available to
check it against, and the response says so (`maturity: "experimental"`,
`maturity_note`, `asm_validation`). Do not hand it to a system that
expects a validated ASM file.
Nucleus and spectrometer frequency are read from the file; give them only
for a file that declares none. Without `smiles` the 1H entries of the NMR
string carry no integrals (there is no honest anchor to scale them
against); with it they do. With `smiles` the response also adds
`verification` and `impurities` -- read `verification.verdict` and its
`evidence`, not `match_score`. For a structure check alone, or one from a
peak list without a file, use covnmr_verify.