agentsclimarketplace

Nmr peak json serialization

Skill HolobiomicsLab/asb-skill-collections/collections/metabolomics/v2/skills/nmr-peak-json-serialization

Use when you have proton (1H) and carbon-13 (13C) NMR peak measurements from a molecular sample and need to classify the molecule using the SMART 3 deep learning API. The peaks must be reformatted from their native instrument output into JSON before submission to the /api/smart3/search endpoint.From its SKILL.md

Install
npx -y skills add HolobiomicsLab/asb-skill-collections --skill nmr-peak-json-serialization

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 15 stars15 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its file declares

Copied from the file, not written here

The file declares its own license as CC-BY-4.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

6.1 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it

nmr-peak-json-serialization

License: restricted — no clear open-source license detected for the underlying tool; verify licensing before commercial use or redistribution. <!-- asb-license-banner -->

Summary

Serialize nuclear magnetic resonance peak data into JSON dictionary format with 1H and 13C headers for programmatic submission to the SMART 3 classification API. This skill bridges raw NMR spectroscopic measurements and machine learning-ready molecular classification requests.

When to use

You have proton (1H) and carbon-13 (13C) NMR peak measurements from a molecular sample and need to classify the molecule using the SMART 3 deep learning API. The peaks must be reformatted from their native instrument output into JSON before submission to the /api/smart3/search endpoint.

When NOT to use

  • Input peaks are already in a pre-computed feature table or embedding space — use direct model inference instead.
  • NMR data is malformed, missing 1H or 13C headers, or contains null/NaN values — validate and clean the data first.
  • Model input schema has changed without code update — check /model/metadata endpoint and update field names before serialization.

Inputs

  • 1H NMR peak list (chemical shift and intensity values)
  • 13C NMR peak list (chemical shift and intensity values)
  • JSON dictionary with '1H' and '13C' keys
  • TensorFlow Serving model metadata (from /model/metadata endpoint)

Outputs

  • JSON-formatted peak payload (list of dictionaries)
  • Classification response from /api/smart3/search endpoint
  • Molecular structure prediction(s) with confidence scores

How to apply

Extract or prepare lists of 1H and 13C chemical shift and intensity values from your NMR instrument output or processing software. Construct a JSON payload as a list of dictionaries, where each dictionary contains '1H' and '13C' keys with their respective peak data. Before submission, query the TensorFlow Serving /model/metadata endpoint to confirm the expected input schema and field names, since model input names may change and require code updates. Format the peaks as a JSON list of dicts and POST to the /api/smart3/search endpoint. Parse the returned JSON classification response to extract molecular structure predictions or confidence scores.

Related tools

  • TensorFlow Serving (Hosts the SMART 3 classification model and provides /model/metadata schema endpoint and /api/smart3/search inference endpoint for peak-based molecular classification)
  • DeepSAT (Source repository containing the SMART 3 deep learning architecture for NMR-based molecular classification) — github:mwang87__DeepSAT

Examples

import json; peaks = [{"1H": [1.2, 2.5, 7.3], "13C": [20.1, 45.6, 128.9]}]; requests.post('http://tensorflow-serving:8501/api/smart3/search', json=peaks, headers={'Content-Type': 'application/json'})

Evaluation signals

  • JSON payload passes schema validation against /model/metadata endpoint output names (no missing or misnamed keys)
  • 1H and 13C peak lists are non-empty and contain numeric chemical shift and intensity values within expected ranges (e.g., 1H: 0–14 ppm, 13C: 0–220 ppm)
  • /api/smart3/search endpoint returns HTTP 200 with a valid JSON response containing molecular classification results
  • Classification response includes molecular structure predictions with associated confidence scores or probability distributions
  • Round-trip serialization and deserialization preserve peak data fidelity (no loss of precision or truncation)

Limitations

  • Model input names may change across TensorFlow Serving deployments, requiring manual code updates and /model/metadata re-inspection
  • No changelog is available to track model schema or endpoint breaking changes
  • Peak data quality and format depend on upstream NMR preprocessing; malformed or incomplete peak lists will fail classification
  • The skill assumes TensorFlow Serving is accessible at the documented URL and /model/metadata endpoint is available

Evidence

  • [intro] You can put in your peaks as a json list of dicts, with 1H,13C as headers: "You can put in your peaks as a json list of dicts, with 1H,13C as headers"
  • [other] The SMART 3 API accepts peak data programmatically through the /api/smart3/search endpoint as a JSON list of dictionaries with proton (1H) and carbon-13 (13C) nuclear magnetic resonance headers for molecular classification.: "The SMART 3 API accepts peak data programmatically through the /api/smart3/search endpoint as a JSON list of dictionaries with proton (1H) and carbon-13 (13C) nuclear magnetic resonance headers"
  • [intro] We pass through tensorflow serving at this url: /model/metadata: "We pass through tensorflow serving at this url: /model/metadata"
  • [intro] If the model input names change, then we need to change it in the code: "If the model input names change, then we need to change it in the code"

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.