Boron NMR Predict
Use the bundled scripts for deterministic local inference.
Workflow
- Create and activate a fresh conda environment for this skill.
- Install Python dependencies from
requirements-core.txtandrequirements-pyg.txt. - Ensure model files exist locally by running
scripts/ensure_model.py. - Run
scripts/predict_boron_nmr.pywith a SMILES string and solvent. - Return the predicted chemical shift for each boron atom in text form.
- Generate the labeled PNG image into the user's tmp directory so each ppm value can be matched to
B(index)in the structure image.
Input contract
Prefer SMILES input.
Required:
- Molecule SMILES containing at least one boron atom
Optional:
- Solvent name. Supported solvents are:
- CDCl3 - C6D6 - d6-DMSO - CD3COCD3 - CD3CN - CD3OD - CD2Cl2 - d8-THF - d8-Toluene - D2O
Commands
Create a fresh conda environment and install deps:
bash scripts/setup_env.shThe setup script is portable: it does not assume any machine-specific conda path. It first tries the current shell's conda, then common user-local installs such as ~/miniconda3, ~/anaconda3, and ~/conda.
Manual alternative:
conda create -n boron-nmr-predict python=3.11 -y
conda activate boron-nmr-predict
python -m pip install -r requirements-core.txt
python -m pip install -r requirements-pyg.txtDownload model weights:
python scripts/ensure_model.pyRun prediction:
python scripts/predict_boron_nmr.py \
--smiles "OB(O)c1ccccc1" \
--solvent CDCl3 \
--output-image /tmp/boron_nmr_result.pngRun an example:
bash scripts/run_example.shEnvironment variables
BORON_NMR_MODEL_REPO: Hugging Face repo id holding the model filesBORON_NMR_MODEL_DIR: local cache directory for downloaded model files
Defaults:
- model repo:
SII-AI4Chem/boron-nmr-predict-model - model dir:
~/.cache/boron-nmr-predict/models - image output: user tmp directory such as
/tmp/boron_nmr_<id>.png - device: CPU only
Output contract
Return:
- a text summary for the user
- canonical SMILES
- solvent
- number of boron atoms
- per-boron predictions with:
- atom_index - element - ppm
- image path in the user's tmp directory when generated
- image error message when text prediction succeeds but image rendering fails
When replying to the user:
- explicitly tell the user where the image file was saved
- include the concrete
image_pathin the reply - if the runtime/channel supports file sending, send the generated image file to the user as an attachment
- if file sending is unavailable, still tell the user the exact saved path so they can retrieve it
Notes
- Keep inference on CPU.
- Use the bundled source files in
src/instead of the original web app. - The labeled image uses
B(index)so users can map ppm values to specific boron atoms. - By default, model files are downloaded from
SII-AI4Chem/boron-nmr-predict-model. Override only when a different repo is explicitly required. - Image rendering failure should not block the text prediction result; return the text result and include an image error when needed.
- After successful image generation, do not only mention that an image exists; tell the user the saved location and send the image when channel capabilities allow it.