Skip to main content

ParaNMR-Synth

ParaNMR-Synth generates deterministic, replayable synthetic pNMR datasets for supervised learning and validation of ParaNMR fitting workflows.

Each synthetic case follows the layout of a ParaNMR example. The dataset root also contains one paired ML table:

dataset.csv
manifest.json
cases/<sample_id>/
  DATA/
    PARA/generated_shifts.csv
    HFC/geometry.xyz
    DIA/diamagnetic.csv
    CHI/susceptibility.csv
    LABELS/labels.csv              # optional
  SIMULATIONS/
    FITTING/config.yml

dataset.csv is the canonical supervised-learning artifact. One row contains m1..mN as features and six Cartesian susceptibility components plus p1,p2 as targets. The selected susceptibility unit is recorded in manifest.json.

DATA/DIA/diamagnetic.csv is always atom-resolved and normalized to atom_label,shift, including when the source input was DFT plus a reference. DATA/CHI/susceptibility.csv contains susceptibility truth only; linewidth truth remains exclusively in the root dataset.csv.

Requirements

The dataset pipeline requires ParaNMR with atom-labelled diamagnetic CSV input, fixed-assignment linewidth: estimate: p1_p2, and ParaNMR experiment CSV round-tripping.

python3 -m pip install paranmr
python3 -m pip install -e .[dev]

Dataset YAML

project:
  name: ybl8_moments_v1
  n_cases: 1000
  seed: 42
hyperfine:
  method: pdip
  file: geometries/YbL8.xyz
  paramagnetic_centre: [0.0, 0.0, 0.0]
  spin: 0.5
  orbit: 3
  total_momentum_J: 3.5
nuclei:
  include: H
diamagnetic:
  method: csv
  file: inputs/diamagnetic.csv
signal_labels:                 # optional
  file: inputs/labels.csv
experiment:
  temperature_k: 302.15
  magnetic_field_t: 4.7
moments:
  number_of_moments: 10
linewidth:
  method: r6
susceptibility:
  model: isoaxrho_euler

chi_iso is calculated through ParaNMR's spin-only Curie-law implementation. Synth samples rho_over_ax in [0, 1/3], derives physical bounds for chi_ax, and samples Euler angles in standard ZYZ domains. All χ targets are exported in canonical ParaNMR units of ų.

For linewidth.method: r6, Synth derives p1 from ParaNMR's point-dipole Guéron Curie R2 calculation with the fixed generation policy tau_R = 1 ns. It samples the distance-independent p2 uniformly in [0, 50] Hz, then converts it to the ppm convention required by ParaNMR's R6 forward model. Neither coefficient is a user-facing configuration parameter.

CLI

paranmr-synth dataset generate ybl8.yml --output datasets/yb_v1
cd datasets/yb_v1/cases/<sample_id>/SIMULATIONS/FITTING
MPLBACKEND=Agg paranmr --hide fit_susc config.yml
paranmr-synth dataset validate ../..

validation_report.json records truth, fitted values and errors. It does not silently reject a sample based on rank, condition number or score.

Validation stages

The replay profile uses ParaNMR fixed assignment. It validates the forward data contract and separately recovers R6 p1,p2 from labelled linewidths. Assignment-free GMM moments validation belongs to ParaNMR's own synthetic test suite and is intentionally a later stage.

Development

python3 -m pytest -m 'not integration'
python3 -m pytest -m integration

The integration suite launches the real paranmr executable and must run against the compatible ParaNMR version. Every generated CSV records ParaNMR-Synth version provenance in its comment header.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

paranmr_synth-0.3.0.tar.gz (18.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

paranmr_synth-0.3.0-py3-none-any.whl (27.3 kB view details)

Uploaded Python 3

File details

Details for the file paranmr_synth-0.3.0.tar.gz.

File metadata

  • Download URL: paranmr_synth-0.3.0.tar.gz
  • Upload date:
  • Size: 18.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for paranmr_synth-0.3.0.tar.gz
Algorithm Hash digest
SHA256 3123427a7433eb74f2946b97938aeb6b78167d7a55ff9b5a94df479ae71cd065
MD5 d7603652295c4772c683717698307a4b
BLAKE2b-256 5f629036d972082456ae71ccff8135a1321428d1f737b8e72eb62acefbdee1ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for paranmr_synth-0.3.0.tar.gz:

Publisher: release.yml on Mephistos-ML/ParaNMR-Synth

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file paranmr_synth-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: paranmr_synth-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 27.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for paranmr_synth-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 eb77ef9d3e1174165493fa463a65aa65f22085a981eb1b7f385f895207bd321c
MD5 b8b6670e50cb6ca89618b4bbce3ca49e
BLAKE2b-256 6ba9e0db697c6c2139fc1743e640533429494fcd394ae6cb3cee650ec8c138b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for paranmr_synth-0.3.0-py3-none-any.whl:

Publisher: release.yml on Mephistos-ML/ParaNMR-Synth

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page