Agent skill

Chem Nmr Analysis

by learningmatter-mit in learningmatter-mit/AtomisticSkills

Scripts for Wasserstein deconvolution of 1H NMR mixture spectra against reference spectra, reaction product prediction, time-series kinetics, and spectral plotting.

MITAuto-check passedData & Analytics

Install Chem Nmr Analysis

skills CLI
$ npx skills add learningmatter-mit/AtomisticSkills --skill chem-nmr-analysis -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install learningmatter-mit/AtomisticSkills chem-nmr-analysis --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/learningmatter-mit/AtomisticSkills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/chem-nmr-analysis .claude/skills/chem-nmr-analysis && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
chem-nmr-analysis
GitHub stars
175
Token cost
~2.3k tokens
SKILL.md length
1,016 words
Files
18 (incl. scripts)
Skills in repo
129
Repo updated
First seen
Licence
MIT

At a glance

Scripts for Wasserstein deconvolution of 1H NMR mixture spectra against reference spectra, reaction product prediction, time-series kinetics, and spectral plotting.

  • Works in 4 steps: Check if a component is missing (compare… → Check if there is a ppm calibration… → Ask the user if there are additional… → …
  • Tasks that involve Data visualization
  • SKILL.md covers When to Use This Skill, When NOT to Use This Skill, Scripts Reference and Key Arguments for deconvolve.py, plus 5 more sections
  • Runs Python scripts from its folder; needs HF_TOKEN

What it does

Chem Nmr Analysis is an agent skill from learningmatter-mit/AtomisticSkills. Scripts for Wasserstein deconvolution of 1H NMR mixture spectra against reference spectra, reaction product prediction, time-series kinetics, and spectral plotting.

Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 22 other files, including scripts (for example `reference/named_reactions.json`, `scripts/deconvolve.py` and `scripts/kinetics.py`).

It sits in Data & Analytics, covering Data visualization and Forecasting and time series. The repository describes itself as: Integrating AtomisticSkills into Agentic IDEs (Cursor, Claude Code, Codex, Google Antigravity, Hermes Agent, etc). The licence is MIT.

When your agent uses it

  • Tasks that involve Data visualization
  • Tasks that involve Forecasting and time series

Example prompts

  • “Use the chem-nmr-analysis skill to script for Wasserstein deconvolution of 1H NMR mixture spectra against reference spectra, reaction product…”
  • “/chem-nmr-analysis”

Requirements

  • Python 3

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Check if a component is missing (compare overlay plot for unmatched peaks).
  2. Check if there is a ppm calibration offset between mixture and references.
  3. Ask the user if there are additional species in the mixture not accounted for.
  4. Not report proportions as reliable.

What it can do on your machine

Read from SKILL.md and the folder at commit 7f2d86d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 3 files in scripts/ (Python, from the files we listed), which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • HF_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Chem Nmr Analysis loads about 2.3k tokens when it runs. Until then it costs about 46 tokens; SKILL.md has 1,016 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~46
When it runs · the whole SKILL.md, loaded when a task matches
~2.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from learningmatter-mit/AtomisticSkills at commit 7f2d86d, republished under its MIT licence (© learningmatter-mit). 1,016 words, ~2,293 tokens.

Download SKILL.mdSave it as .claude/skills/chem-nmr-analysis/SKILL.md (or your agent's skills folder). This skill also uses 17 other files; get the full folder from GitHub.
name
chem-nmr-analysis
description
Scripts for Wasserstein deconvolution of 1H NMR mixture spectra against reference spectra, reaction product prediction, time-series kinetics, and spectral plotting.
metadata.category
chemistry
metadata.venv
cpu

NMR Mixture Analysis

When to Use This Skill

The agent should use this skill's scripts when:

  • A workflow (e.g., reaction-to-nmr-quantification.md or nmr-reaction-kinetics.md) calls for deconvolution, product prediction, kinetics analysis, or spectral plotting.
  • The user already has reference spectra and a mixture spectrum and wants to quantify component proportions directly.
  • The user has multiple time-point spectra and wants to track reaction progress via NMR.

For end-to-end workflows that chain this skill with other skills, see: .agents/workflows/reaction-to-nmr-quantification.md and .agents/workflows/nmr-reaction-kinetics.md.

When NOT to Use This Skill

  • 13C NMR, 2D NMR (COSY, HSQC, etc.), or solid-state NMR -- this skill handles 1H solution-state NMR only.
  • Structure elucidation of unknown compounds -- this skill requires knowing (or predicting) what compounds are in the mixture. It does not identify unknowns from scratch.
  • Pure compound characterization -- if the user has a single pure compound and just wants to assign peaks, this skill is not appropriate. The agent should interpret the spectrum directly.
  • Mass spectrometry data -- despite the Wasserstein algorithm's origins in mass spec, this skill operates on NMR chemical shift axes only.
  • Digitizing spectrum images -- the agent should use the general-plot-digitizer skill for that step.
  • Predicting NMR spectra from SMILES -- the agent should use the chem-nmr-predict skill for that step.
  • Resolving compound names to SMILES -- the agent should use the drug-db-pubchem skill for that step.

Scripts Reference

ScriptPurposeKey InputsKey Outputs
predict_products.pyPredict reaction products via ReactionT5 (HuggingFace API)--reactant_smiles, --reagent_smilesJSON with predicted product SMILES
deconvolve.pyWasserstein deconvolution of mixture against referencesmixture file + reference files + --protonsproportions, Wasserstein distance, plot
kinetics.pyTime-series deconvolution across multiple time points--refs, --timepoints, --timeskinetics.csv + kinetics_plot.png
plot.pyOverlay or stack NMR spectra for visual comparisonspectrum files + --labelsplot image
spectra.pyI/O utilities (imported by other scripts, not called directly)----
predict_products.py

The agent should use this script to predict reaction products from reactant and reagent SMILES via the ReactionT5 model.

bash
export HF_TOKEN=<token>
${CLAUDE_SKILL_DIR}/../../venv/run cpu python ${CLAUDE_SKILL_DIR}/scripts/predict_products.py \
  --reactant_smiles "C1CCC(=O)C1" \
  --reagent_smiles "[BH3-]" \
  --output <research_dir>/predicted_products.json
deconvolve.py

The agent should use this script to determine mole fractions of known components in a mixture spectrum via Wasserstein-distance deconvolution.

bash
${CLAUDE_SKILL_DIR}/../../venv/run cpu python ${CLAUDE_SKILL_DIR}/scripts/deconvolve.py \
  mixture.csv ref_borneol.xy ref_isoborneol.xy \
  --protons 18 18 \
  --names "borneol" "isoborneol" \
  --baseline-correct \
  --plot <research_dir>/deconvolution_result.png \
  --json
kinetics.py

The agent should use this script when the user has crude NMR spectra recorded at multiple time points during a reaction.

bash
${CLAUDE_SKILL_DIR}/../../venv/run cpu python ${CLAUDE_SKILL_DIR}/scripts/kinetics.py \
  --refs ref1.xy ref2.xy \
  --timepoints t0.csv t10.csv t20.csv \
  --times 0 10 20 \
  --time_unit min \
  --protons 18 18 \
  --names "reactant" "product" \
  --baseline_correct \
  --output_dir <research_dir>/kinetics/
plot.py

The agent should use this script to overlay or stack spectra for visual inspection before or after deconvolution.

bash
${CLAUDE_SKILL_DIR}/../../venv/run cpu python ${CLAUDE_SKILL_DIR}/scripts/plot.py \
  mixture.csv ref_borneol.xy ref_isoborneol.xy \
  --labels "Mixture" "borneol" "isoborneol" \
  --title "Mixture vs References" \
  --output <research_dir>/spectra_overview.png

Key Arguments for deconvolve.py

ArgumentRequiredDescription
--protonsYesNumber of 1H protons per molecule for each reference component. Critical for converting area fractions to mole fractions. The agent must look this up from the molecular formula or count from the SMILES.
--namesNoHuman-readable labels matching the order of reference files. The agent should always provide these for interpretable output.
--baseline-correctNoShifts each spectrum so minimum intensity = 0. The agent should use this for digitized spectra or SPINUS-predicted spectra.
--kappaNoDenoising penalty (default 0.25). The agent should not change this unless instructed.
--plotNoOutput plot path. The agent should always generate a plot.
--jsonNoEmit machine-readable JSON output. The agent should always use this.

Interpreting Results

The deconvolution output contains proportions and a Wasserstein distance (WD) indicating fit quality.

If/Then rules for Wasserstein distance:

  • If WD < 0.05 -- good fit. The agent should report proportions with confidence.
  • If 0.05 < WD < 0.15 -- acceptable fit. The agent should report proportions but note the fit quality and suggest possible causes (minor missing components, baseline noise).
  • If WD > 0.15 -- poor fit. The agent should:
    1. Check if a component is missing (compare overlay plot for unmatched peaks).
    2. Check if there is a ppm calibration offset between mixture and references.
    3. Ask the user if there are additional species in the mixture not accounted for.
    4. Not report proportions as reliable.

If proportions do not sum to ~1.0 -- the agent should note that the "noise" fraction represents unmatched signal and explain what it might be.

Verification: After deconvolution, the agent must inspect the deconvolution plot, check the residual panel for large residuals, and verify that proportions are chemically reasonable. If results contradict known chemistry, the agent should flag this to the user rather than silently accepting.


Show full SKILL.md (347 more words)Show less

Input Format Requirements

All spectrum files must be two-column numeric data (ppm, intensity):

  • .csv -- comma-delimited (auto-detected)
  • .xy -- tab-delimited (auto-detected)
  • .tsv -- tab-delimited
  • No header row required; delimiter is auto-detected from content.

If the user provides a Mnova export -- the agent should add --mnova flag to deconvolve.py.


Environment

All scripts in this skill use the cpu environment (created on first use by venv/run; no separate install).

Required packages: numpy, scipy (>= 1.7), matplotlib, rdkit, requests, nmrsim, scikit-learn.

HF_TOKEN (for ReactionT5 product prediction): the agent should check if HF_TOKEN is set before attempting product prediction. If not set, the agent should ask the user to provide it or provide product SMILES directly.


Failure Modes

FailureSymptomAgent Action
SPINUS returns no atomschem-nmr-predict prints FAILED for a compoundThe SMILES may be invalid or the molecule too large. The agent should verify the SMILES and retry, or ask the user for a measured reference spectrum.
ReactionT5 returns no productspredict_products.py returns empty products listThe agent should use its own chemistry knowledge to suggest products and ask the user to confirm.
Wasserstein distance very high (> 0.15)Deconvolution result unreliableMissing component, ppm offset, or baseline issue. The agent should investigate and not report proportions as reliable.
Proportions are all near zero except oneOne component dominatesMay be correct (e.g., >95% product), or may indicate missing starting material reference. The agent should check.
nmrsim simulation failsWarning in chem-nmr-predict outputFalls back to stick spectrum (shifts only, no multiplet structure). The agent should note reduced accuracy of that reference.
kinetics curves are non-monotonicComposition jumps up and down over timeLikely a mislabeled time point, phasing issue, or missing component. The agent should investigate individual spectra.

References

  • Ciach, M. et al., "Masserstein: linear resampling of mass spectra by optimal transport", Rapid Commun. Mass Spectrom., 2020.
  • Domzal, B. et al., "Magnetstein: Wasserstein-distance NMR mixture analysis", Anal. Chem., 2024.
  • Sagawa, Y. et al., "ReactionT5: a large-scale pretrained model towards chemical reaction prediction", arXiv, 2023.
  • Dhawan, N. et al., "Synthesis of Isoborneol", World J. Chem. Educ., 2022.

Author: Jesus Diaz Sanchez Contact: GitHub @jdsanc

© learningmatter-mit, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 17 other files (scripts) in skills/chem-nmr-analysis of learningmatter-mit/AtomisticSkills.

  • SKILL.md
  • examples/deconvolution/borneol.csv
  • examples/deconvolution/crude.csv
  • examples/deconvolution/isoborneol.csv
  • examples/kinetics/t000min.csv
  • examples/kinetics/t005min.csv
  • examples/kinetics/t010min.csv
  • examples/kinetics/t020min.csv
  • examples/kinetics/t030min.csv
  • examples/kinetics/t045min.csv
  • examples/kinetics/t060min.csv
  • examples/kinetics/t090min.csv
  • reference/named_reactions.json
  • scripts/deconvolve.py
  • scripts/kinetics.py
  • scripts/plot.py
  • … and 2 more

Open the folder on GitHubat commit 7f2d86d

Compare with similar skills

Chem Nmr Analysis next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Chem Nmr Analysis compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Chem Nmr Analysis this skilllearningmatter-mit/AtomisticSkills175—~2.3kAutomated safety check: PassMIT
Chart Imagezebbern/claude-code-guide4.6k—~2.7kAutomated safety check: PassMIT
Tuftearef-vc/tufte-claude-skill306—~1.3kAutomated safety check: PassMIT
Advanced Data VisualizationHack23/cia239—~1.5kAutomated safety check: PassApache-2.0
Scientific Toolkit SkillzLanqing/codex-claude-academic-skills4.6k—~1.2kAutomated safety check: PassMIT
D3js Visualizationaiskillstore/marketplace430—~2.9kAutomated safety check: PassNone

Similar skills

  • Chart Image

    zebbern/claude-code-guide

    Generate publication-quality PNG chart images from data, supporting line, bar, area, candlestick, pie, and heatmap charts.

    4.6k GitHub stars~2.7k tokensUpdated today
    Data & AnalyticsAuto-check passed
  • Tufte

    aref-vc/tufte-claude-skill

    Apply Edward Tufte's principles to any data visualization, chart, dashboard, or infographic.

    306 GitHub stars~1.3k tokensUpdated 3 mo ago
    Data & AnalyticsAuto-check passed
  • Advanced chart types, D3.js/Vaadin Charts patterns, political data visualization, time series analysis

    239 GitHub stars~1.5k tokensUpdated today
    Data & AnalyticsAuto-check passed
  • Scientific Toolkit Skill

    zLanqing/codex-claude-academic-skills

    Research computing toolkit for optoelectronic information science and engineering, MATLAB/Octave, Python scientific analysis, signal processing, image processing, statistics, simulation…

    4.6k GitHub stars~1.2k tokensUpdated 4 mo ago
    Data & AnalyticsAuto-check passed
  • D3js Visualization

    aiskillstore/marketplace

    Professional data visualization creation using D3.js with support for interactive charts, custom visualizations, animations, and responsive design.

    430 GitHub stars~2.9k tokensUpdated today
    Data & AnalyticsAuto-check passed
  • ML Pipeline

    hashgraph-online/awesome-codex-plugins

    MANDATORY whenever a task involves training, fine-tuning, tuning, or evaluating a machine-learning model on data (tabular, time series, text, images — any modality).

    1.2k GitHub stars~3.2k tokensUpdated today
    Data & AnalyticsAuto-check passed

More from learningmatter-mit/AtomisticSkills

All 129 skills in this repo
  • Drug Binding Site Definition

    learningmatter-mit/AtomisticSkills

    Define a docking search box (center coordinates + box dimensions in Angstroms) from a co-crystal ligand, binding-site residues, or a saved JSON specification.

    175 GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Drug Complex System Builder

    learningmatter-mit/AtomisticSkills

    Build a solvated, charge-neutralized protein-ligand complex for OpenMM molecular dynamics simulation.

    175 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Drug Pocket Detection

    learningmatter-mit/AtomisticSkills

    Identify and rank ligandable pockets on a protein structure or model using geometry (fpocket) or an ML predictor (P2Rank).

    175 GitHub stars~4k tokensUpdated today
    Auto-check passed
  • Chem Bond Dissociation

    learningmatter-mit/AtomisticSkills

    Calculate homolytic and heterolytic bond dissociation energies (BDEs) for all single bonds in a molecule using MLIPs with RDKit fragmentation.

    175 GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Chem Conformer Search

    learningmatter-mit/AtomisticSkills

    Generate molecular conformers with RDKit ETKDG, relax with MLIPs, and rank by energy with Boltzmann weighting.

    175 GitHub stars~1.3k tokensUpdated today
    Auto-check passed
  • Chem DB Mof

    learningmatter-mit/AtomisticSkills

    Query multiple MOF databases (QMOF via MPContribs; ARC-MOF DB7/Majumdar et al.

    175 GitHub stars~1.9k tokensUpdated today
    Auto-check passed

Questions about Chem Nmr Analysis

What does Chem Nmr Analysis do?

Scripts for Wasserstein deconvolution of 1H NMR mixture spectra against reference spectra, reaction product prediction, time-series kinetics, and spectral plotting. Chem Nmr Analysis is an agent skill from learningmatter-mit/AtomisticSkills. Scripts for Wasserstein deconvolution of 1H NMR mixture spectra against reference spectra, reaction product prediction, time-series kinetics, and spectral plotting.

When should I use Chem Nmr Analysis?

Chem Nmr Analysis fits situations like: tasks that involve Data visualization; tasks that involve Forecasting and time series.

How do I install Chem Nmr Analysis in Claude Code?

Run `npx skills add learningmatter-mit/AtomisticSkills --skill chem-nmr-analysis -a claude-code`. Or copy the skill folder (skills/chem-nmr-analysis in learningmatter-mit/AtomisticSkills) into .claude/skills/chem-nmr-analysis in your project. Claude Code loads it when a task matches its description.

How do I install Chem Nmr Analysis in Codex?

Run `npx skills add learningmatter-mit/AtomisticSkills --skill chem-nmr-analysis -a codex`. Or copy the skill folder (skills/chem-nmr-analysis in learningmatter-mit/AtomisticSkills) into .agents/skills/chem-nmr-analysis in your project. Codex loads it when a task matches its description.

Can I use Chem Nmr Analysis in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add learningmatter-mit/AtomisticSkills --skill chem-nmr-analysis -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/chem-nmr-analysis, .gemini/skills/chem-nmr-analysis, .github/skills/chem-nmr-analysis and .opencode/skills/chem-nmr-analysis in your project.

What does Chem Nmr Analysis need to run?

Going by SKILL.md and its folder, Chem Nmr Analysis needs Python for the scripts in its folder and credentials named HF_TOKEN. Our summary lists: Python 3.

Does Chem Nmr Analysis access the network?

SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.

Is Chem Nmr Analysis safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Chem Nmr Analysis use?

Chem Nmr Analysis is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Chem Nmr Analysis use?

About 2.3k tokens (SKILL.md is roughly 9.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Chem Nmr Analysis?

Skills that share tags, products or a category with Chem Nmr Analysis: Chart Image (zebbern/claude-code-guide, 4.6k stars), Tufte (aref-vc/tufte-claude-skill, 306 stars), Advanced Data Visualization (Hack23/cia, 239 stars) and Scientific Toolkit Skill (zLanqing/codex-claude-academic-skills, 4.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Chem Nmr Analysis?

learningmatter-mit (a GitHub organization) maintains it in learningmatter-mit/AtomisticSkills, which has 175 GitHub stars. The repository holds 129 skills in this directory. The repository was last updated on October 6, 2026.

Source: learningmatter-mit/AtomisticSkills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.